As part of your introduction to current practice in Software Engineering, you will form a programming team to build a somewhat large and open-ended software system. We will use this project as an opportunity to apply the techniques covered in the class.
We will divide you into project teams early in the course and will meet with you each Friday starting the second week of class (lab #2). Your team will be largely self-organizing; we will meet with you as “customers” or “advocates” but will expect you to make good use of your time (and ours) by focusing on the project and making demonstrable progress each week.
Be flexible and patient and to do your fair share of the team's work. At the end of the semester, we will assign a project grade to the team as a whole, but will then adjust each individual score based on our own observations and on confidential comments each of you make concerning the relative work done by each team member. We will ask you for these comments throughout the semester.
The project for this course will implement the following components:
All of the defaults tools listed above are installed and running on the Windows partition of the lab. We are willing to consider alternate platforms that implement the same architectural elements, but you must have a compelling reason to switch and we may not be able to provide as much support.
Each team will choose its own project. Here are some suggestions:
You’ll note that there isn’t much of a specification here; coming up with the project idea is part of software development process — a pretty important part, actually.
As you are developing your system, your development and management tools will maintain records of the nature and amount of the work you do, including:
You’ll develop the project using an iterative and incremental process with three-week time-boxed iterations that produces the deliverables specified on the course schedule. These deliverables will be published your project deliverables as demonstrated on the sample GitHub master project.
Some of the group projects over the years have lived beyond the class, and have thus earned a place in the Calvin Software Engineering Hall of Fame.