Team Project Overview

Challenges of Team Projects
This course covers the design and engineering of computer software systems. As a student you have done many computing assignments that were likely small problems or single programs. You have not had to face the problems encountered in designing and implementing a larger system. The problems of large software systems are much different than the problems of small systems. Management of the effort and communication becomes more difficult than the programming. It's a big challenge to be sure all team members share the same understanding of the problem and it's solution. It's not enough to just solve your part of the problem, but your solution must integrate with the work of others.  Documentation grows exponentially with the size of the project. Configuration and version control arise as major project problems. Importantly, undisciplined and individualistic styles of software development won't work in a team setting and must mature into a process-oriented approach.

The result is a whole new set of problems that go far beyond the pure technical computer science issues.  The reality is that the most difficult aspects of any real-world software development effort are NOT the technical issues, but the "people" issues.  For 95% of software projects, we KNOW how to solve the technical problems, but projects fail because we haven't mastered the "people" problems. CSC 307 is about that new set of problems.

Most students enrolling in CSc 307 have had no experience of any systematic approach to software development.  Their concept of software development is usually vague and poorly defined.  One of the main goals of this class is for students to learn what are the elements of a disciplined, process-centered approach to software development.  Since there are many different kinds of software projects, no single process works for all of them.  However there are clearly recognized ingredients that a successful process will incorporate. The textbook explains these essential components to successful projects. The course web site has specific examples.  Your challenge will be to identify what ideas and methods will be useful to your specific project.  

Read this great advice from former students and examples of thrashing.

Other Challenges:

Software Development Process

The process model your team will follow this quarter is a modified Waterfall process that incorporates prototyping.  The required deliverables and due dates are assigned by the instructor. 

Team Effectiveness
    One of the course goals is to learn how to work cooperatively as an effective team. There are many factors contributing to effectiveness, including: achieving milestones on schedule, organizing effective technical reviews, submitting status reports, running organized team meetings, exhibiting professional attitude and behavior, equitable distribution of tasks, good communication, clear expectations and responsiblities, cooperation in resolving conflicts, and so on.

Since this may be your first experience working in a team, it is not expected that your team will operate ideally the first try. However, problems in team dynamics and functioning are part of the course, and you are expected to work toward resolving them. You are encouraged to consult with the instructor about strategies for overcoming difficulties. (The "Student Survival Guide" reference has many helpful hints.) If your team is struggling, it is crucial that you obtain instructor guidance early while there is still time to apply corrective strategies.



Mandatory Project Requirements

Your team is given a lot of flexibility to determine the best way to carry out the project.  The instructor assigns the required deliverables and due dates, and assigns roles and some general responsibilities.   Your team must determine the detailed tasks to complete, who works on them, and when they are due. You are expected to read the textbooks, the course web site and other resources and apply the principles appropriately for the specific demands of your project.  However, there are a few requirements the instructor mandates.

Group Name, Logo, Name Tags
Research has shown that teams with a strong identity are often more successful than those without.  One way to begin to establish an identity is by having a team name, logo, and (optionally) a motto. You will be given a specific lab activity to create your team name. Your team name should be prominently displayed on your web page and on all submissions.  When you submit individual assignments, like homework, also include which team you belong to.  Each person will have a name tag that includes the team name that will be worn at each team meeting.

Trac / wiki
The instructor will create for each team a Trac website that you are expected to use for all aspects of project control and tracking.   Use the ticket system for tracking tasks (action items).  Use the wiki for collaborative document preparation.  Use the Discussion/forum  for asynchronous discussion.   Please use this Trac wiki formatted home page template. The template serves to organize your teams work in a standard layout that makes it easy for the instructor to find documents you've created. This template is a skeleton that you will add more links to as your team creates the necessary documents for your project. Follow the SiteSetup and Custom Trac reports directions. Set up the anonymous feedback link. Complete the "About Our Team" section as a group activity.

Ticket guidelines:  Create a ticket for any task that is estimated will require more than 15 minutes to complete.  If a task is estimated to take more than a single work session (e.g., 90 minutes), decompose the task and create multiple tickets.

Time tracking
Each individual must record all time spent on the project (not lectures or assigned homework) using the format shown in this time log. There are several options for recording this data:

Your time log must be accurate and current at all times.  Keeping your time log with you at all time will enable you to update it every time you work on a project-related task.

Work Products / Deliverables 
View the list of required project deliverables.

Tools List
Unless otherwise negotiated, it is assumed your team will use the tools on this list and source code will conform to the class coding standard.

Progress Report
The team manager submits a weekly team progress report electronically (or verbally - by arrangement) to the instructor.



Document History
2015.3.29 JD Revised for Spring 2015
2014.3.31 JD Revised for CPE 307  
1/2/2012 JD  Revised for Winter 2012
9/20/2011  JD  Prepared for Fall 2011