Goals
- to get acquainted with your group
- to develop a project plan
- to get started on the team project
Overview
You're going to be working on a team project throughout this term.
Team organization, collaboration, and communication will be
major factors in your success.
Your first task as a team is to decide on a project plan and
especially a schedule.
You will use iterative enhancement to develop the project in at least three full iterations through the project life cycle. The first iteration will be somewhat informal as we will not have covered particular software development techniques. However, the later iterations will involve appropriate formalisms.
Project Plan Document
The project plan you turn in on January 29th should contain firm dates
you plan to
deliver specifications, high-level-design, low-level design, and
the remainder of the deliverables for the first iteration.
It should also contain proposed dates for some of those items for the
second and third iterations.
Because you are learning how to do such planning,
you'll have an opportunity later in the term to revise this project plan
document for those iterations.
Below find a list of the items that should be included in the project plan. We will study some of these, such as the cost estimates, later. For now, include as many portions as you deem relevant. Use the creation of this document as a tool for guiding your discussion within your team of what you're developing and how.
This document, as all documents for this course, should be an editable document available to all team members. Turn in a printed copy and retain a printed copy for your team records.
For all document in this course, I may ask you to revise them before I give them a final grade.
Other Project Documents
Remember that the documents should be helping you communicate with each
other as well as with me.
For each iteration, you will deliver at least the following documents.
Teams
I've divided you into teams of four or five members.
Each member is expected to contribute substantially to the team effort.
See me as soon as problems arise.
Each team member should be the team leader through at least half of one iteration. The team leader is responsible for setting meeting times, settling disputes, asking for clarification of requirements, and enforcing deadlines agreed upon by the team. Otherwise, the team should be a democracy (egoless teams) with each person's opinion considered. Let me know in the project plan who will be the leader of your team during each half-iteration. That person will be my contact for any team business. However, any of you can talk with me about your project. You do not need to do that as a group.
You should meet frequently as a group. I will set aside some classtime for this activity, but it won't be often. It will not be frequently enough to complete all your discussions and collaborative work. This project will take time. I've tried to keep the problem complexity manageable, but you will need to work outside class as a whole team, in pairs, and individually.
Although this is a team project, I will consider individual efforts (including facilitating team interactions, cooperation, irresponsibility, and violation of team agreements) in assigning grades. Doing the project yourself rather than as part of the team will lower your grade. Normally, everyone in the team will receive the same grade on a delivered portion of the project.
Remember that you are team members sharing a project. Treat it as a job. Be professional. Don't let your ego get caught up in the programming. Criticisms of your code are criticisms of the code, not you. Be open to new ways of viewing the problem. Respect other people's egos, opinions, and feelings. You have to work with each other.
Be responsible.
Attend team meetings and be ready to work on the project.
Pull your fair share and let others pull theirs.
This project should take priority over elective activities;
it is classwork.
See me early if you have problems with team members not sharing the work.