The Common Sense Approach to Project Management
- For information on IndigoBlue's industry leading skills please see IndigoBlue’s Agile Expertise.
Agile Management (or just Agile) is an umbrella term for a set of ideas, principles and methodologies for developing software, that share a common philosophy. Examples of Agile methodologies include Extreme Programming (XP), Scrum, Adaptive Software Development, Crystal, Feature-Driven Development, and Pragmatic Programming.
So what is Agile? Agile is different things to different people. To some, Agile is simply an iterative process, to others it is an approach to quality, continuous integration or the application of numerous other principles and techniques. Simply, the core aim of Agile is to continuously and incrementally deliver value to the customer, and any project that aspires to this goal can be regarded as having some degree of Agility.
In order to maximise the potential of Agile and realise the full value of the incremental process, there are 5 key areas that should be addressed.
These are as follows:
- Iterative, Incremental Process. At its core an Agile approach requires an iterative process, one which provides suitable feedback and review cycles. A typical Agile project will deliver in short (2 to 4 week), timeboxed iterations.
- Incremental Analysis and Prioritisation and Planning. To deliver incrementally the project needs to be described in a way that allows measureable value to be continually added within each iteration. The mindset change required for incremental analysis should not be underestimated and experience shows that this is one of the key challenges to an Agile team. Both Scrum and Extreme Programming imply a need for this approach, but neither provide much detail on achieving it.
- Team Organisation. An optimal Agile process relied upon high levels of direct communication. Scrum, in particular, provides a toolkit for ensuring collaborative teams.
- Quality. The incremental nature of the Agile approach requires that the system will continue to evolve and be “maintained” throughout the development lifecycle and therefore the quality must be of a sufficient level to support this. Production quality is interesting, but not enough. Traditionally production quality implies that the system meets the acceptance criteria and is performant, there is no requirement for the system to remain maintainable, although perhaps there should be. The engineering techniques of XP provide this level of quality.
- Governance. Having set out with a set of objectives, budget and high-level of scope it is essential to understand progress against the original plan and the effect of ongoing change. Put simply, it is necessary to ensure that the stakeholders remain confident that the project remains on track and that the objectives will be met for the available budget. Equally, sufficient information must be available to allow informed decisions to be made when significant changes are required or if the project is not progressing as planned. Governance is where most “Agile” organisations fail. It is essential to have some level of control but this should not constrain the team.
It is possible to successfully implement Agile without addressing these areas however the resultant process is likely to be sub-optimal.