The Cabinet Office’s decision to endorse Agile methods means that nifty developers are growing in popularity in every sector. Get the low-down on agile development and how to acquire the skills.
What is the philosophy behind Agile?
Agile development recognises that the world around us constantly changes, and so the software we create also needs to change. Being as responsive as possible is the main difference compared to other development methods. In fact, the Agile development approach is much closer to the way human beings solve problems, that is, iteratively.
We see a problem, come up with an idea of how to solve it, try it out and then improve our approach based on the feedback until the task is completed.
This approach is the core of Agile development. How do Agile teams work? Teams need to get into the habit of splitting work into small chunks – or stories - of complete functionality and finishing each chunk before proceeding to the next.
Each story needs to add some feature to the product that the end user can use.This is different from traditional projects, which work from a large specification document, building entire layers of infrastructure at a time.
Agile teams should:
- Be highly collaborative
- Work closely with the customer
- Deploy early to enable amendments
- Prioritise customer requirements regularly
How must developers adapt?
Developers have to work closely with requirements analysts, testers, and also the customer whereas many may be used to working on their own. When moving from waterfall development styles, one of the biggest changes developers have to make is letting go of the idea that individuals 'own' pieces of code.
The idea that a developer works on a feature in isolation for several weeks has to change. They must also be prepared to work much more closely with customers to understand their requirements on an ongoing basis.
The other big change is that teams need to deliver working code on a regular basis. In a traditional project, only once the project is finished is code delivered to the users or business. In an Agile project a working product is delivered at the end of every iteration.
When can Agile be applied?
To almost all software projects, as the regular feedback and demonstrations help identify and overcome risk early, manage the inevitable changes, and ensure that customer priorities are delivered. Agile can be applied to system integrations, package implementations, custom software solutions, management information systems, safety-critical systems.
Agile techniques have been used to deliver a real-time credit derivative pricing system for an investment bank, and an electronic point of sale retail system for a retailer.
When is Agile not appropriate?
In circumstances where the customer has contractual controls that enforce a more linear or waterfall approach it can be difficult to gain these benefits. It can also be very difficult to be Agile when the customer is not willing or able to regularly interact with the project team. However this lack of involvement can be overcome by nominating a proxy to represent the customer.
What is the best way to acquire skills?
The best tip for first timers on Agile is just try it; nothing will get the ideas across faster than trying them out and making mistakes The best situation to apply the skills is either an activity-based learning course or by joining an existing Agile team. Read the books, by all means, but don't make the mistake of applying exactly what the books say.
Adapting the process to what makes sense for your organisation is more important. Furthermore, look in your local area for user groups and communities where you can share war stories and ideas.The Agile movement has been driven by such user groups, and they are a valuable source of real-world knowledge.
The product owner is responsible for the product being developed, keeping an eye on what is being built and what features – or stories - need to be developed next. This is different from the traditional project manager role, in that he doesn't manage people.
The PO often has to work as an interface between the stakeholders and the development team. Sometimes, different stakeholders will have very different views on how a product should work, and whom it should serve, so this can be a politically sensitive role.
Developers also need to expand their skill-set to be able to support and help other project roles. This is becoming known as a ‘generalising specialist’.
How is Agile development costed?
Just because Agile development makes us faster at web development doesn’t mean we are immune to inaccurate estimates and scope creep. Having estimated over 300 projects in the last 10 years, we strongly believe in the ‘predict, track and learn’ cycle of estimating projects.
We can estimate a project to within 10% of its final outcome but could not have done this if we did not track our time. Disciplining developers to track their time gives your business a much higher probability of accurately estimating future projects and takes the guess work out of flat bidding.
With thanks to:Sam Newman, John Reeve, Pelage Design principal consultant at ThoughtWorks Dr Laurie Young, scrum masterNew Bamboo Dave Fletcher, founder, White October Julian Holmes, founder, UPM
Search CWJobs for Agile vacancies and 1000s of IT jobs