15-413: Software Engineering Practicum

Spring 2011
T/Th 9-10:30
GHC 4102
12 units
Jonathan Aldrich, co-instructor
Travis Breaux, co-instructor

Course Structure

This is a project course.  You will work in teams of 2-4.  In the first week, you will choose among several potential projects proposed by clients here at CMU and at open source organizations (more information for open source clients is available).   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 client'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 it is recommended that you follow a Scrum process, which you may adapt to your needs (with instructor approval).  You will meet weekly with the instructor, sometimes with your team and sometimes with the entire class for presentation sessions.  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

Lecture Topics

Course Schedule

This schedule is subject to modification as needed to accomodate the project, as negotiated by each team and the instructor.  Planned dates are as follows:

January 11
Project list available
January 13 (9am)
Project and team preferences due
January 19
Email status report is due; Aldrich holds office hours at 2:30pm in Wean 4128
January 26
Project and Sprint 1 plan due
February 2
Turn in the first weekly progress report (progress report required every subsequent week also)
February 9
Architecture and high-level design document due.  Do an inspection of your requirements, architecture, and design docments.
February 23
Sprint 1 report due
March 16
Test plan due
March 30
Sprint 2 complete
April 27
Sprint 3 complete
Finals week
Final project presentation
360o peer evaluations due
Individual reflection due
Project report due
Project artifacts delivered to client

Evaluation