Some argue that an agile development approach is right for any project. Others argue that agile is a hoax 🙂
Of course the reality is somewhere in between.
I’m sure you can apply agile principles, or a more traditional approach, to any project. The best way to approach anything is often the way you know.
Although I’m sure that some projects definitely suit agile more than others.
Personally I think agile suits more projects than not – due to human nature and the evolutionary nature of software development.
But how do you know whether you should use agile for your project? Or whether or not your typical projects suit agile? How do you know if agile is right for you?
DSDM (Dynamic Systems Development Method) is one of the earliest development methodologies based on agile philosophies. The DSDM methodology includes a project suitability filter.
This filter is a simple questionnaire that attempts to highlight the key characteristics of a project that is well suited to DSDM, or more generally to an agile approach. Here are questions:
- Does the sponsor/senior management understand and accept the iterative philosophy?
- Is there senior user commitment to provide active user (or user representative) involvement?
- Can the organisation accommodate the frequent delivery of increments?
- Will it be possible for the developers to have access to users (user representatives) throughout the project?
- Will the development team remain the same throughout the project?
- Will the development team have the appropriate skills?
- Is there a supportive commercial relationship?
- Will the project use technologies suitable for prototyping?
- Is there a highly demonstrable user interface?
- Is there clear ownership?
- Will the development be computationally non-complex? (agile can be used on complex projects but complex computation lends itself less well to frequent change, prototyping and visibility)
- Can the solution be delivered in small increments?
- Does the development have a fixed timescale?
- Can the requirements be prioritised (can’t all be must-haves)
- Will users be able to define requirements interactively?
Of course some of these questions are important in a non-agile approach too. But these questions are even more important for agile projects.
If you’re thinking of using an agile approach, YES to the above questions is good 🙂
If you have a few NO’s, this doesn’t mean agile is inappropriate, although you should consider how you might mitigate these risks.
If you have lots of NO’s, you should think seriously about whether your project is really suitable, or ask yourself honestly, is your organisation really ready for agile?