Timing
This course consists of various topics on agile development, plus a 5 to 6 week development project. The timing of the project depends on which quarter of EECS 394 is involved.
- Fall: the project takes up the final 5 weeks of the quarter
- Spring: the project runs approximately from week 2 to week 8
In either case, before the project starts, your team will need to "jell" (more on this in the course) and you will need to set up your development infrastructure, including source control, development tools, testing regime, and so on.
Project tasks and deliverables
I try to only require project deliverables needed in real world projects.
- Development set up report
- Zero-feature release
- Twice-weekly "standup" reports
- Weekly burn-down and burn-up charts
These will be submitted via email, one per team.
Always put EECS 394: in the Subject line
of any email related to this course. Failure to do so may lead to
material being lost and not counted.
Non-project homework
In addition to the project deliverables, there will individual assignments. Some will require analyzing and responding to scenarios involving common software development problems. Others will require analyzing and responding to situations that arose in your team's project.
Topics
This course covers quite a few topics. Below is the rough order in which they will be introduced. Because you have to get going immediately, a lot happens early on.
- Getting started
- Development essentials: IDE, source control, test scripts
- Project charter: product box, project inception deck, minimum viable product
- Zero feature release
- Quality development
- Scenario backlogs, user stories, acceptance tests
- Unit testing, test-driven development
- Story points, burn-down and burn-up charts, velocity
- Getting better
- Refactoring
- Mock objects
- Continuous integration
- Process improvement, 5 whys root cause analysis