Which flavour of Agile tastes best?
Agile is an umbrella term for several software development methodologies that share a common philosophy defined in the Agile Manifesto, but have their own ideas on its implementation. This post takes a brief look at a few of those flavours.
I wanted to briefly investigate the family of agile methodologies to identify
which one we should attempt to adopt at my work.
The following table lists some of the flavours with brief descriptions of
their unique approaches.
| Adaptive Software Development (ASD) | ASD takes an iterative approach to improving an organisations process not just the software they’re developing. You take key learnings from mistakes made due to false assumptions in the previous iteration and adapt the process for the next iteration. |
| Crystal Methods | Crystal is a family of methodologies including Crystal Orange, Crystal Light which purports that since each team has different skills and each project has different requirements, they should follow a different process tailored to it. |
| Dynamic Systems Development Model (DSDM) | Similar to RUP it is a flexible framework rather than a precriptive approach emphasizing continuous User Involvement and employing techniques such as MoSCoW Prioritisation, Timeboxing, Facilitation, prototyping. the framework is owned by the DSDM consortium and there is a public version that individuals can use but reselling requires membership. DSDM consists of 3 phases: pre-project phase, project life-cycle phase, and post-project phase. The project life-cycle phase is subdivided into 5 stages: feasibility study, business study, functional model iteration, design and build iteration, and implementation. |
| Extreme Programming (XP) | XP places more focus on actual programming techniques than other mainstream Agile methodologies. Practices include
|
| Feature Driven Development (FDD) | FDD follows a more traditional waterfall software development approach in the initial phases of the project with distinct overall modelling and feature list building and planning phases followed by iterations of feature design and build phases. Features are functionality of business value expressed in the form <action> <result> <object>, e.g.: “Calculate the total of a sale”. More suitable for projects with stable requirements. |
| Lean Software Development (LD) | Borrows principles from manufacturing processes developed by Toyota which focus on eliminating waste and bureaucracy. |
| Rational Unified Process (RUP) | RUP is a collection of many practices from which organisations select elements that match their common and individual project needs, consequently it is more a process framework rather than a process. |
| Scrum | Scrum concentrates on the management aspects of software development, placing much less emphasis on engineering practices. Its relatively easy to learn and implement with little documentation. The development team is self-organising and works closely with the client who is ideally available as often as possible. Tasks are listed in the product backlog in priority order, and the team selects which stories to do in the iteration (sprint). |
So, which one tastes best? It depends what you’re looking for I guess. What does
your organisation want to do? How do they want to change? For us, its our
general approach to running projects first and foremost. Consequently my flavour
of choice, for now, is Scrum. Its focus on the management of projects correlates
with what we want to fix right now in our organisation. Look out for another
blog post coming soon about the intricacies of Scrum.
That being said, once you’ve sorted the way you develop your projects, you’ve
gotta seriously consider all the practices advocated by XP and sort out your
engineering side things too. All in good time… all in good time.


One Response so far
October 20th, 2008
6:18 pm
Is this another way of saying, “which we will eventually adopt”, or “which we should adopt but management keeps getting in the way”?
Leave a comment