Exam review 2 will be held on Oct 8, 12:00-13:00 in Jupiter 400 (where you had the customer proxy meetings).
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)
- Luis Arce González, [email protected]
- Magaly Anjom, [email protected]
- Andreas Andersson, [email protected]
- Fredrik Axelsson, [email protected]
- Maciej Krzysztof Makarewicz, [email protected]
- 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.
See wiki for reading instructions.
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 | |
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 | 1, 2 | |
9/4 16:15-17:00 | J024, J025, J321, J322, J317 | Final preparation (Q&A) before project | ME, EA | |||
11/4 13:15-13:30 | J243 | Project Startup | ME, EA | Presentation | Project Description | |
11/4 13:30-14:30 | J243 | Groups 1,2, and 3 | ME, EA | Interview | ||
11/4 14:30-15:30 | J243 | Groups 1,2, and 3 | ME, EA | Interview | ||
11/4 15:30-16:30 | J243 | Groups 1,2, and 3 | ME, EA | Interview | ||
12/4 13:15-15:00 | J243 | Automated testing and pair programming | EA | 1 | ||
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 | J024, J025, J321, J322, J317 | No lecture, available for Q/A (my office) | ME | |||
25/4 13:15-17:00 | J243 | Guest Lecture: Spotify (Mario Jelica) | ME | 12 | ||
26/4 13:15-15:00 | J243 | Acceptance Tests | EA | |||
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 | J243 | Guest Lecture: Ericsson (Thomas Luvö) | ME | |||
13/5 9:00-11:00 | J243 | Acceptance Tests | EA | |||
14/5 13:15-17:00 | J121 | Connecting the Dots | ME | 4 | ||
16/5 13:15-17:00 | J243 | Discussion | ME/EA | 5 | ||
17/5 13:15-15:00 | J243 | Acceptance Tests | EA | |||
21/5 13:15-15:00 | J121 | Q/A Exam | ME/EA | |||
23/5 13:15-17:00 | J024, J025, J321, J322, J317 | Final hand-off to customer | ME/EA | |||
27/5 8:30-12:30 | Lindholmen, Hall L | Written Exam | ME | |||
31/5 24:00 | Post-mortem report due | |||||
29/8 | Lindholmen, Hall L | August Exam | ME |
Note that JXXX refers to Jupiter XXX
- Kanban (video)
- Pair programming (video)
- Why is it difficult to implement Scrum? (video)
- Product Owners in a nutshell (video)
- Unit testing (Part 1, Part 2)
- Automated acceptance testing (video)
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.
Your final grade will be set according to the Grading Policy