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:
- The readings are sequential, the work is parallel. You will
have to develop some work products before the instructor has
lectured about them.
- Some details matter, some don't.
- You have to champion your own job.
- Individual habits don't scale up. The strategies that worked
for you in other programming classes may not work for you in
this course.
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:
- You may designate specific pages in the front or back of a
bound lab notebook.
- Binder pages in a loose leaf binder.
- A specific page on the team wiki.
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