Sunday 7 June 2015

The Best Laid Plans


Should we be saying we DO Agile or that we ARE Agile?
I fear that many of us go with the first option, it may seem like pedantry but I think there is an important distinction between these two phrasings.
To say you DO Agile indicates a mind-set that Agile is a process, a set of rules that can be used to run a project that will deliver a favourable outcome.
To say you ARE Agile indicates that Agile is a state of mind, a practical outlook on the world, a realistic view of the trials and tribulations of software development.
A Dose Of Realism
In 2001 17 software developers produced the Manifesto For Agile Software Development.
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over Processes and tools
Working software over Comprehensive documentation
Customer collaboration over Contract negotiation
Responding to change over Following a plan
That is, while there is value in the items on the right, we value the items on the left more.
No mention of sprints, stand-ups or Scrum Masters, instead four view points on what we should value when developing software.
Many looking at this for the first time may get quite scared about the apparent disregard for the items on the right, but in my opinion this is not the aim of these statements.
Instead this is about realism, we would all prefer to have a rock-solid plan built on extensive and complete documentation and be delivering to a customer who is in no doubt about what they want, but has anyone reading this ever worked on a project like that?
To say you ARE Agile is to admit the world isn't like that, to move on and not be frightened to deliver something imperfect but instead to concentrate on continually delivering something viable with the expectation that it will need to change with every iteration.
All The Right Notes But Not The Right Tune
Mostly when we say we DO Agile we mean we use the terminology of Scrum. We have a Scrum Master, a Product Owner and our developers work in sprints, but is that Agile?
Scrum is a methodology designed to help the adoption of an Agile state of mind but its possible and all too common for Scrum to become just another project management technique where we still cling to all the items on the right hand side of the manifesto either through fear or through force of habit.
The word Agile is defined as being quick in movement; nimble, it could also equally be defined as anticipating and being ready for change, embracing the imprecise nature of requirements and having a desire to ship a quality if minimal product.
When we decide to adopt Scrum we have to be prepared to embrace these ways of thinking, other wise I fear were just discovering new ways to repeat the same mistakes. 
It is better to have written code and got some features slightly wrong than to never have shipped at all, the best laid plans of analysts and developers often go awry.




No comments:

Post a Comment