I feel eminently qualified to write something coherent and useful on this subject given that I am a baby boomer and by definition a computer dummy.
Rather fortuitously as a boomer, I have the opportunity to work with the brilliant young minds at EmpireOne – so I now know a little bit about this mysterious thing called ‘Agile’ and can share it with you.
The “old” world had waterfalls
In the old world we used a project management approach called the waterfall method. Projects were broken down into phases and tasks; and project managers and their software development teams attempted to guess at defining in detail all the requirements, tasks, dependencies and task durations for a whole project in advance – this is sometimes referred to as the monolithic approach.
Shows how each task in a project happens sequentially (waterfall) or in smaller, almost parallel activities (agile). Source sdlc.ws
For larger projects especially this proved to be vastly inadequate, most projects took double the time to complete and cost double the estimate. Worse still in many cases they produced failed outcomes either because the initial guesses were wrong or because the world had changed in the meantime.
Writing software is inherently complex and for most of us the process is like a black box – it’s simply dark and mysterious.
Agile does not make software development less complex but it does as its name suggests surface issues quickly so that they can be corrected before too much damage has been done – and in the end this is the essence of Agile.
The key agile concepts defined
So, as promised here is some Agile jargon explained, hopefully it makes at least a little sense.
User Stories are the containers used to capture and describe the customer’s needs or requirements (as we used to say). User Stories are initially loosely defined and relatively high level, and do not contain really detailed information until an Iteration begins.
Illustrates how each iteration handles a number of activities together, in a smaller scale.
A Sprint is a short period of software development, which typically lasts from 1 to 4 weeks (an EmpireOne sprint lasts for two weeks). During a Sprint the development team identifies a number of higher priority User Stories, which it estimates it will complete during the Sprint.
An Iteration and a Sprint are identical things. In my opinion Iteration is a better name because it tells more of the tale. Sprint is meaningful because it talks to the short and focused period of development effort, however one of the absolutely key concepts of Agile is the notion that a project is a series of short iterations of development, which include review and meaningful feedback from the customer. In the old world you didn’t find out about problems until the end of the project, in the Agile world issues are uncovered and dealt with every few weeks. No surprises!!
A Scrum as some will know is a rugby term, which defines a moment in which a bunch of boofy blokes get together to contest possession of the football. In Agile, a Scrum occurs when the development team meets briefly (usually once a day) to review progress and discus issues related to their Sprint. Again the focus is on regular review and feedback and on rapidity. Typically Agile Scrums contain less boofy blokes than Rugby scrums.
Velocity. In the world of Agile, velocity is a measure of the software development team’s productivity (how much work it can get done in a Sprint). Once a software team has been working together for a while its Velocity will become well understood and hence its ability to estimate how many User Stories may be completed during a Sprint.
The burn-down is a measure of development progress during a Sprint and is usually tracked on a daily basis. So for a 2 week Sprint the team would expect to have a 50% Burn-down after 1 week meaning that 50% of the work is complete and therefore on schedule for completion by the end of the Sprint.
So in summary, the reason that this approach to software development is called Agile is because, well it is! Rapid, short periods of work are transparent and the subject of constant review and feedback. It all sounds a lot better than waiting 12 months to find out if the thing works!
If like me you like the topic and now feel like you are ready to take it to the next step, have a look at the topic from a different angle in Agile, iterative, lean, what does it all mean posted recently.