Sunday 17 July 2016

Arguments Against Agile



Whenever any philosophy or school of thought gains traction and reaches a critical mass of adopters a dissenting voice will start to develop against the new perceived wisdom.
This voice should never be ignored as while sometimes this can be simply a need to differentiate sometimes the points being made are genuine problems that need to be addressed.
Agile also has this opposition where some question its effectiveness.
I would never presume to say that Agile has all the answers but I do believe its as good a theory as we have yet devised. 
I also believe that most of the arguments put forward against are related to the flawed implementation of Scrum as opposed to criticism of an Agile mind set.
Too Many Meetings
A core principle of agile is face to face communication, this communication does not have to be regimented with an agenda, a duration or a fixed meeting place.
Simply put, the point Agile is making is that you'd be surprised how many problems get solved when those involved just talk to each other whether that be at their desks, at the coffee machine or over lunch.
A daily catch up with the team to ensure people are progressing and fortnightly opportunities to review progress and plan the next iteration do not seem onerous.
If you find yourself in an unending cycle of meetings, often about the same subjects, then you should question why there is so much uncertainty in the work your team are trying to get through or why there is so much disagreement on the way forward.
These problems are unlikely to be related to Agile, instead they are likely to indicate a lack of preparation, direction and vision.
No Commitment to Deadlines
A common frustration with Agile is an apparent inability to commit to a deadline.
Actually Agile teams commit to deadlines on a regular basis, every other week the team will commit to a certain amount of work being achieved in the next two weeks.
The team will also regularly discuss how they can improve there operating process so that they can commit to even more work in the next iteration.
Agile teams have a certain budget represented by their velocity, and this allows a certain scope of work to be completed in a certain time frame.
Agile is simply re-iterating the maths of this situation, that you cant fix time and scope because that involves you creating more effort. If you base your plan on the team creating more and more effort you will miss your deadline because thats not how teams or people can work sustainably.
Instead a deadline needs to be a compromise between timescale, scope and what the team think they can achieve, its possible for everyone to win.
Rigid Process
Some will say that they don't feel they can achieve as much with all the red tape and bureaucracy that Agile places on them.
Its critical in this situation to draw a distinction between Agile and the system we use to try and achieve.
Agile is not a system, a framework or a structure. Agile is a mind set and a philosophy.
Agile is nothing more than the principles laid out in the manifesto listing certain aspects of software development and team interaction that should be encouraged.
Scrum, and others like it, are attempts to organise teams to promote these principles. What they shouldn't become are rules and procedure that hang around the teams neck.
There is no one Agile to rule them all, each team needs to find their own way the only things they need to believe in and follow are listed in the manifesto the rest is implementation detail that while important is not the aim of the game.
Feel free to find your own way, adopting an Agile mindset will ensure you take the right path, even if your path is different from others you'll still be on track to reach your destination. 

No comments:

Post a Comment