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
- Continues 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.
- Morgan Ericsson (ME), ext 6075, room J423, [email protected] (examiner and lecturer)
- Emil Alégroth (EA), [email protected], (teaching assistant)
- Cockburn, A., (2009) Agile Software Development, 2ed (ISBN: 0321482751)
- Papers (available from lecture list)
Below you can see the date, time, room and themes for the lectures and workshops. There is also a detailed schedule in TimeEdit. NOTE! We have booked extra time in the project rooms where you should work on the project but when there will not always be assistants on site for support.
In the column marked Readings you you will parts of the main course book (Cockburn09) relevant for that lecture as well as relevant research papers. You are expected to read these chapters and papers around the time of that lecture (preferably before attending the lecture!). Lectures will not be directly based on the books and papers but will add additional material.
Acceptance tests will always be on Fridays at 13:00-15:00.
Date & Time | Room(s) | Theme | Who | Slides | Videos | Readings |
---|---|---|---|---|---|---|
19/3 13:15-16:00 | J121 | Course Introduction, overview of Agile | ME | 1 | 1, 2, 3 | Cohen04 (pp. 1-17, 25-26, 27- 28), Schwaber95, Cockburn09 (ch. 1, 4) |
19/3 16:15-17:00 | J024, J025, J321, J322, J317 | Agile and Course Q&A | ME, EA | |||
21/3 13:15-15:00 | J243 | Developing for Android | ME | 2 | 1, 2 | Android |
21/3 15:15-17:00 | J024, J025, J321, J322, J317 | Getting started and Tech Q&A (bring computer!) | ME, EA | |||
9/4 13:15-16:00 | J121 | Agile Software Development Crash Course | ME | 3 | ||
9/4 16:15-17:00 | J024, J025, J321, J322, J317 | Final preparation (Q&A) before project | ME, EA | |||
11/4 13:15-17:00 | J243 | Project Startup | ME, EA | |||
12/4 13:15-15:00 | J243 | Automated testing and pair programming | EA | |||
16/4 13:15-17:00 | J121 | Second meeting with customer (proxy) | EA/ME | |||
18/4 13:15-17:00 | J243 | Fault Classification Follow-up | ME | |||
19/4 13:15-15:00 | J243 | Acceptance Tests | EA | |||
23/4 13:15-17:00 | J121 | TBA | ?? | |||
25/4 13:15-17:00 | J243 | Guest Lecture: Spotify (Mario Jelica) | ?? | |||
26/4 13:15-15:00 | J243 | Acceptance Tests | EA | |||
30/4 13:15-17:00 | J121 | TBA | ?? | |||
2/5 13:15-15:00 | J243 | Guest Lecture: OmegaPoint (Nicklas Åkerman) | ME | |||
3/5 13:15-15:00 | J243 | Acceptance Tests | EA | |||
7/5 13:15-15:00 | J121 | Guest Lecture: Ericsson (Thomas Luvö) | ME | |||
9/5 13:15-17:00 | J243 | TBA | ?? | |||
10/5 13:15-15:00 | J243 | Acceptance Tests | EA | |||
14/5 13:15-17:00 | J121 | Live Debate : Criticism to and Missing from Agile | ME/EA | |||
16/5 13:15-17:00 | J243 | TBA | ?? | |||
17/5 13:15-15:00 | J243 | Acceptance Tests | EA | |||
21/5 13:15-15:00 | J121 | TBA | ?? | |||
23/5 13:15-17:00 | J024, J025, J321, J322, J317 | Final hand-off to customer | ME/EA | |||
23/5 24:00 | Post-mortem report due | |||||
27/5 8:30-12:30 | Lindholmen, Hall L | Written Exam | ME |
Note that JXXX refers to Jupiter XXX
The examination consists of three parts:
-
A Software Development project where you work in groups to develop an Android or iOS app using agile practices.
-
A Post-mortem Report that outlines your experience with agile practices during the software development project. (individual)
-
A Written exam based on the main course book, the papers listed in the table above and the material presented in lectures as well as on your project.
To pass the course it is extremely important that you read all the course material, participate in lectures and are active in and finish your project. If you do not you will fail! Remember that this is a master level course and requires considerably more than most bachelor level courses.