This session looked at software development methodology known as Agile Software Development, with the major focus the technique of Scrum.
To give a bit of background most people think of software development like a factory with resources going in and a finshed product coming out. Or the Nike method of software development (ie “Just Do It!”) The problem is that 50-80% of all software projects fail (ie are never completed), and the process is more like Research & Development.
Scrum comes from this background, where the goal is to produce something that works, even if it does have a limited set of features. More features are added with each sprint of the scrum cycle. Only those features that are needed are developed, so that evnergy is not wasted on less relevant features. The presenter mentioned a term from Toyota in Japan, Kaizen, which is the idea of continuous improvement in a daily sense, or aiming to make what you do in the business easier.
Scrum teams are usually 4-8 people, and will involve a daily meeting of the members. At this meeting they’ll mention what hey did yesterday, what they plan for today and anything blocking them. The cycle of sprint will run for 2-4 weeks with a planning day, a display with the customer, and a sprint retrospective. And this process shows some of the features of scrum;
- Accountability for the team members, because your telling people what you’ve been doing each day.
- Regular contact with the customer, making it a more customer focused product
- Regular reflection on the processes happening
But it’s not all clear sailing with scrum. There is a development overhead, because of the regular meetings, and may be wasteful in some situations.
It’s even possible to have a scrum of scrums for larger teams, where a member of each scrum would go to the scrum of scrums on a weekly basis.
Also see the pragmatic programmer (Amazon) (Quick reference), and if coding is not your thing then don’t look at it!