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 30th 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.
In chapter 11 of the text (p. 453), there is 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 can. 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.
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 three or four 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 throughout 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 at the beginning of each iteration who will be the leader of your team. That person will be my contact for any team business. However, any of you can talk with me about your project.
You should meet frequently as a group. I will set aside some classtime for this activity, but it won't 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, presentations, 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. Note that each iteration has an individual contribution portion. 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.