Course Structure
This is a project course. You will work in teams of 3-5 (just one
team given the 2008 enrollment). In the first week, you will
choose among several potential projects proposed by clients here at
CMU. You will gather requirements from your client, plan
your efforts, and then architect and design your project. You will
build the project using an iterative process, gathering feedback from
your client after each iteration. You will be responsible for
ensuring your project is of high quality and meets the user's needs. At
the end of the course you will deliver the project to the client, along
with all necessary documentation. You will also reflect on your
experience and what you have learned through the project.
You can write code in any project course. The goal of
this course, therefore, is to give
you a chance to follow software engineering process
right. This is a luxury you
may never get in industry, where pressures to deliver are so great that
corners get cut, often with disasterous long-term results. With
the experience of this course under your belt, you will be able to
choose the elements of process that are essential for an effectively
working team, and the background to effectively resist pressures to
meet a short-term deadline at high long-term cost.
In this course you will follow a modified
Scrum process. You will
meet with your team twice weekly and with the instructor once
weekly. There will be very few lectures, and only when necessary
to introduce a new process element you will be using in your course.
Project and Process Requirements
- All code and all documents must be under source control
- You must track and categorize defects using Orthogonal Defect
Classification
- You must meet weekly with clients
- Over the course of the semester, you must formally inspect a
requirements document, formally inspect a design document, and formally
inspect a critical section of code. You may front-load these
inspections (e.g. do them all in iteration 1), but you may not
back-load them--each iteration must have at least one inspection until
you've done all three. Other than this, you are free to choose
any inspection process you like.
- You must have a set of regression tests, automated if possible,
and the tests must run at or near 100% at all times.
Lecture Topics
Course Schedule
This schedule is subject to modification as needed to accomodate the
project, as negotiated by each team and the instructor. Note that
Sprint 1 is a week longer (Sept 4-Oct 9) because of the need to define
architecture, while Sprint 3 is slightly shorter due to the
Thanksgiving break. Planned dates are as follows:
August 26
|
Project
list available
|
August 28
|
Project choice due
|
September 4
|
Overall project plan due
|
September 11
|
Refined project plan due
Sprint 1 requirements and plan
due
|
September 18
|
Architecture and high-level
design document due, including an inspection report
Also turn in the first weekly
progress report
|
October 2 |
Sprint 1 test plan due |
October 9 |
Sprint 1 complete
|
October 16 |
Sprint 2 requirements and plan
due
Sprint 1 report due
|
October 23 |
Initial feedback received from
clients
|
October 30 |
Sprint 2 test plan due |
November 6 |
Sprint 2 complete
|
November 13
|
Sprint 3 requirements and plan
due
Sprint 2 report due
|
November 20
|
Sprint 3 test plan due |
December 4
|
Sprint 3 complete |
Finals week
|
Final project presentation
360o peer evaluations due
Individual reflection due
Project report due
Project artifacts delivered to client
|
Evaluation
- 1/2 of your grade will be project deliverables and presentations.
- 1/3 of your grade will be determined by your client--are they
satisfied with the product you deliver, and the way you interact with
them? The instructor will gather feedback directly from your
client halfway through the course (1/3), and at the end of the course
(2/3).
- 1/6 of your grade will be based on how well you follow software
engineering process. This grade will be the average of a grade
for each week, based on your weekly meeting with the instructor.
- Thresholds are:
- 90-100: A
- 80-89: B
- 70-79: C
- 60-69: D
- 0-59: F
- Grades will be given as a team, except for the individual
reflection
- In the event that individual contributions within the team
differ substantially, as determined by peer evaluations and the
instructor's perception, the instructor reserves the right to make
grade corrections to reflect individual contributions. These
corrections will not be greater, percentage-wise, than the differences
in contribution as measured by the peer evaluations; they may be less
if the instructor believes the peer evaluations are exaggerated.
So keep a good working relationship with your team-mates if at all
possible.