Sunday, March 13, 2011

AGILE! My old nemesis.


Ahhhhh... that felt good to get off my chest. To be honest, Agile development is a great idea. I don't hate it, just the way its implemented. It becomes an excuse for doing less 'fluff' and more coding.

 :| Oh no, this will end badly.
In one organization I witnessed the implementation of Agile methodologies with this kickoff:
 "Ok we're going to be doing Agile now. The good news is we have been doing it all along! Yay."
They were doing the bare minimum to get by on a large scale project and now they wanted to implement Agile. What they really wanted to do was to justify their 'effort' to the client and they did! They had some daily processes in place, team structures yet documentation of the system prevented knowledge transfer. We would see, and all to often, production systems being effected by updates that did not receive full testing and updates effecting other systems because dependencies were not documented. Changing their development methodology was not going to fix their problems, especially if the information needed is never recorded let alone access.

This is a prime example of why I loath AGILE - the implementation.

DO AS MUCH OF WHAT YOU CAN… to move the project forward
This usually doesn't mean comments, documentation or planning. When done right, progress can be made and quickly. The scrums allow for progress to be track, controlled and perhaps documented. Problems can be quickly resolved and a small team can accomplish amazing results. However; if you are thinking about implementing AGILE or any other development methodology you have to think to your self - what are we looking to get out of this, what's the ROI?

Development methodologies, and I am going to generalize, are a set of steps followed during development to produce a result. This result is not, in my opinion just the final output but the surrounding documentation that supports it. If there is a problem and the developer is MIA, where do you go? In my first development job, the methodology was developed in-house and was flexible. Depending on the size of the project, certain steps would be included (ie feasibility steps were omitted when changing report formatting)

If you can answer this, then you have a better chance at picking the solution/approach that best fits your organization. There are so many models to follow during the Software Development Lifecycle (SDLC) such as recursive, waterfall etc., that you should gather a good understating of each rather than implementing what's hot: AGILE.

The benefit of using the AGILE methodology is primarily the speed of development. With clear objectives and a team leader that can stay focused on the target, the results will be shorter development time (cost savings) and concise documentation. This is key - clear goals that are not moving targets are great candidates for this approach. If you find that the goal shifts frequently, then you may have other project management issues to contend with in addition to development problems; however, this too can be resolved with AGILE - provided the team understands that with shifting goals the end may never be reached. The constant contact with the customer will provide for a deeper relationship and develop customer loyalty - provided the team leader can manage scope creep.

At a later date we will have to review AGILE and its components in more detail. For today - hopefully you now know what you're getting yourself into and why.

Hope this helps and not hinders, Enjoy!

No comments:

Post a Comment