- Lecture 8 (Information flows) online
- Combined lecture on Agile Architecture with guest lecture (Patrizio Pelliccione) and moved it to May-24
Last update: 2016-05-03
Agile software development aims at setting up an environment to develop software based on the following principles from the agile manifesto:
- Individuals and interactions is valued more than processes and tools
- Working software is valued more than comprehensive documentation
- Customer collaboration is valued more than contract negotiation
- Responding to change is valued more than following a plan
At the core of these principles it the realization that changes are inevitable and the conclusion that change management needs to be integrated into the development process. Agile approaches promotes iterative and incremental development by using a very tight design-code-test cycle.
In this interactive course we will explore together how to apply these agile principles to develop software and manage projects.
After passing the course, you will be able to lead agile projects, use test driven development, refactor programs, be part of a programming pair, and much more.
- Eric Knauss (EK), ext 1080, room J480, [email protected] (examiner and lecturer)
- Terese Besker (TB), [email protected] (teaching assistant)
- Magnus Ågren (MA), [email protected] (teaching assistant)
We will select student representatives when the course starts. Please consider volunteering. We will share information about student representatives and our meetings on the following wiki page: https://github.com/oerich/EDA397/wiki/course-representatives
- Cockburn, A., (2009) Agile Software Development, 2ed (ISBN: 0321482751)
- Papers (available from lecture list)
This lecture is organized in three sprints.
- Sprint 1 (focus on getting started): We will focus on getting you started and discuss agile principles and actionable practices. Also, we will set up the project work.
- Sprint 2 (focus on getting work done): We will focus on working in teams, applying agile practices, and collecting experience.
- Sprint 3 (focus on theory and advanced concepts): Based on your experience in project work, we will explore more theoretical and advanced topics of agile software development.
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 generally be on Thursdays, 13:00-17:00. We aim for two week sprints and will share a schedule, once project groups are established.
NOTE! We plan one sprint ahead in detail and will add information as we go. The reason is that some of the planning depends on availability of (industry) guest speakers, and their lectures are to be confirmed.
Date & Time | Room(s) | Theme | Who | Slides | Videos | Readings |
---|---|---|---|---|---|---|
Mar-22 15:15-17:00 | Alfa | Course Introduction, overview of Agile, course Q&A, assigning groups | EK | L1 | [Cockburn2009, Ch. 4], Cohen04 | |
Mar-24 13:15-17:00 | Beta | Get started with groups; working environment; Project Startup, incl. 1st customer meeting | TB, MA, | L2 | Android, AndroidExamples | |
Easter Break | ||||||
Apr-12 13:15-15:00 | Styrbord (near Äran) | Miniature on Agile Software Development Principles | EK | L3 | [Cockburn 2009, Appendix A] | |
Apr-14 13:15-17:00 | indiv. announcement | Acceptance test, Sprint retrospective, Sprint planning | TB, MA | |||
Apr-15 13:15-15:00 | Gamma | Agile Software Development: Principles and Practices | EK | L4 | Schwaber95, Scrum guide |
| Date & Time | Room(s) | Theme | Who | Slides | Readings |
| ------ | :----: | ------ | :------: | :------: | :------: | :------ |
| Apr-19 13:15 - 15:00 | Delta | Lean Software Development | EK | L5 | |
| Apr-19 15:15 - 17:00 | J321, J317, J322 | Open Q/A and Coaching | TB, MA, EK | | |
| Apr-21 13:15 - 15:00 | J322 | Optional workshop: Android and Github | MA | | git, Android |
| Apr-21 13:15 - 17:00 | J321, J317, J322 | In parallel to workshop: Open Q/A and Coaching | TB, (MA), EK | | |
| Apr-22 13:15 - 15:00 | Alfa | Test-driven Development | EK | L6 | |
| Apr-26 13:15 - 15:00 | Alfa | Agile vs. Plan-driven | EK | L7 | Optional reading: [Cockburn 2009, Ch. 0 & 1] |
| Apr-26 15:15 - 17:00 | J321, J317, J322 | Open Q/A and Coaching | TB, MA, EK | | |
| Apr-28 15:15 - 17:00 | J321, J322 | Acceptance test, Sprint planning | TB, MA | | |
| Apr-29 13:15 - 15:00 | J321, J322 | Sprint retrospective | TB, MA | | |
Current state of planning, changes might happen.
| Date & Time | Room(s) | Theme |Who | Slides | Readings |
| ------ | :----: | ------ | :------: | :------: | :------: | :------ |
| May-3 13:15 - 15:00 | Beta | Information Flow in Agile Development | EK | L8 | [Cockburn 2009, Ch. 3]|
| May-3 15:15 - 17:00 | J321, J317, J322 | Open Q/A and Coaching | TB, MA, EK | | |
| May-10 13:15 - 15:00 | Delta | Continuous Integration and Deployment | EK | | [Cockburn 2009, Ch. 5] |
| May-10 15:15 - 17:00 | J321, J317, J322 | Open Q/A and Coaching | TB, MA, EK | | |
| May-12 13:15 - 17:00 | indiv. announcement | Acceptance test, Sprint retrospective, Sprint planning | TB, MA | | |
| May-13 13:15 - 15:00 | indiv. announcement | Acceptance test, Sprint retrospective, Sprint planning | TB, MA | | |
| May-17 13:15 - 15:00 | Omega | Slot for guest lecture or Open Q/A and Coaching | | | [Cockburn 2009, Ch. 2] |
| May-19 13:15 - 15:00 | Delta | Guest Lecture: Mats Eriksson and Jimmy Nilsson (Ericsson AB) | MA | | |
| May-20 13:15 - 17:00 | Individual announcement | final Acceptance testing | TB, MA | | |
| May-24 13:15 - 15:00 | Delta | Guest Lecture: Patrizio Pelliccione (GU & Chalmers): Agile architecting | | |
| May-26 13:15 - 17:00 | Alfa | Presentation of Results| Project teams | | |
| May-27 13:15 - 15:00 | Alfa | Alternative slot for guest lecture | | | [Cockburn 2009, Ch. 6] |
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 group's experience with agile practices during the software development project.
-
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