Software Engineering Project - HT13
Course Description
Software remains malleable, often illogical, and incomplete forever. Sequential approaches to software development, such as the waterfall model, assumes that it is possible to take every single variable that could affect a project into account beforehand. Considerable effort is spent to identify risks, plan mitigation, and what consequences these may have. From a traditional product perspective, this can be compared to creating an assembly line to produce software.
Given the nature of software, is it really feasible to identify all variables beforehand? Iterative and incremental approaches accepts that changes are inevitable and integrates change management into the development process. Agile approaches promotes iterative and incremental development by using a very tight design-code-test cycle. If we again use a traditional product perspective, this can be compared to new product development.
In this course you will teach you how to design and develop software, and to manage projects, using these agile principles:
- The customer is a part of the development team Incremental development
- The developer should not be hindered by the process
- Embrace changes
- Continuous refactoring (restructuring) of the design
After passing the course, you will be able to lead agile projects, work without a detail schedule, use test driven development, refactor programs, be part of a programming pair, and much more.
Teachers
- Morgan Ericsson (ME), ext 6075, room 423, morgan.ericsson@chalmers.se (lecturer)
- Thomas Luvö (TL), tom@samoht.se (lecturer)
TAs
- Erik Axelsson erikax@student.chalmers.se
- Rasmus Egerö egero@student.chalmers.se
- Andreas Berggren andbergg@student.chalmers.se
- Tomas Urdell urdell@student.chalmers.se
- Erik Ivarsson erikduvet@gmail.com
- Robert Edström edstromr@student.chalmers.se
- Jessica Andersson jesandeit@gmail.com
Student Representatives
- Jonas Berglund (jonbergl@student.chalmers.se)
- Patrik Fritzner (fritzner@student.chalmers.se)
- Gustav Simonsson (gussim@student.chalmers.se)
- Anders Hallgren (andehall@student.chalmers.se)
- Lucas Persson (lucasp@student.chalmers.se)
Fast questions?
- Join #SEProject @ irc.chalmers.it
Course Litteratur / Recommended reading
- Pro Git
- Writing a product vision: 1, 2.
- A successful Git branching model
Lectures and Tutorials (In progress…)
Below you can see the date, time, room and themes for the lectures. There is also a detailed schedule in TimeEdit.
Date & Time | Room(s) | Theme | Who | Slides |
---|---|---|---|---|
2/9 10:00-11:45 | HC4 | Introduction | ME | 1 |
4/9 10:00-11:45 | HC4 | Software Engineering and XP | ME | 2 |
9/9 10:00-11:45 | HC4 | SCRUM | TL | 3 |
11/9 10:00-11:45 | HC4 | Git and Android | ME | 4 Video |
16/9 10:00-11:45 | HC4 | Quality and Testing | ME | 5 Video: 1,2 |
18/9 10:00-11:45 | HC4 | Technical Assistance Session | ||
23/9 10:00-11:45 | HC4 | Project Management | TL | 6 |
25/9 10:00-11:45 | HC4 | Technical Assistance Session | ||
30/9 10:00-11:45 | HC4 | Design and Architecture | ME | 7 |
2/10 10:00-11:45 | HC4 | Technical Assistance Session | ||
7/10 10:00-11:45 | HC4 | Scaling Agile | TL | |
9/10 10:00-11:45 | HC4 | Technical Assistance Session | ||
14/10 10:00-11:45 | HC4 | Lean and Flow | TL | |
16/10 10:00-11:45 | HC4 | Technical Assistance Session | ||
21/10 9:00-11:45 | EC | Project handoff (Schedule) | ME | |
22/10 9:00-11:45 | EC | Project handoff (Schedule) | ME | |
23/10 9:00-11:45 | EC | Project handoff (Schedule) | ME |
There will be a tech lab in HC4 every Wednesday at 10:00-11:45 from Sept 19 to Oct 17. Tutorials/supervision sessions with be either Tuesdays or Wednesday at 10:00-11:45. Your supervisor will assign you a time slot and a room (please discuss any changes to this with your supervisor).
Pitch Sessions (Tue Sept 10) for Ideas
Please check the groups list to find your group number. Contact Morgan ASAP if you cannot find your group in the list! Note that we use three parallel sessions and that your slot is 15 mins.
Hand-ins
You will release a version of your project every Friday. For each release we will introduce additional critera that are used to "judge" the release.
Course Week | What to include / what will be checked |
---|---|
1 | Form a group and submit three app ideas |
2 | Submit a vision (with features) for your selected app |
3 | Release 1: Your should have a Git repo with an initial version of your app |
4 | Release 2: focus on testing |
5 | Release 3: focus on code quality* |
6 | Release 4: Final release, focus on product quality |
7 | Release 5: Bug fixes and polish |
8 | Post-mortem report |
*Among others: readability, consistency, stability, correctness, conciseness, documentation in the form of comments and good naming conventions.
Examination
Every group should submit the following at the end of the course:
- Working Android app (APK)
- Documentation (produced during the project):
- Vision
- A few user stories
- Developer documentation (information relevant to people who work on the project)
- How does the build process work
- What major parts / components are there in the application
- Design decisions (such as API level, etc.)
- ...
- User manual
- Post-mortem Report
Each group will be given 10 + 5 mins to present their application. The presentation should introduce the app (including the major features), interesting design decisions, the process, and a brief reflection.
Every person should submit a brief evaluation of the group. Imagine that you have a budget of $10 per group member, not including yourself (so, $60 for a group of 7). How would you distribute this "pay" among your group members, based on their value and contribution? Note that you are not allowed to pay everyone the same amount! Email your evaluation (name and amount for each group member not including yourself) to morgan@cse.gu.se no later than Oct 27 24:00. (The evaluation will not affect the group grade, it will only be used to determine individual variation within a group. However, if you do not submit this evaluation, you will not pass the course).
You can find more information about the grading policy in the wiki.
Sample project
To give you an idea of what a project might look like in the end, we've been authorized to publish this project which was made during the fall semester (2012).