Recently I had the pleasure to meet two developers with very different “styles” of software development. The first have never heard of SCRUM and never practiced any of the agile methodologies while the second is a certified SCRUM master and has used SCRUM to manage his team.
Both were given a problem to solve in one hour, although both haven’t finished writing when time was up I learnt quite a lot from the bits they did finish.
Both finished about 50% of the required functionality but while one had one working feature the other only managed to finish the “infrastructure” needed to solve the problem. Although it can be argued who done a better job, it is clear which of the solutions is “more agile” (hint – the one that provide value).
The weird thing is that the developer without any “formal” agile experience choose to implement the solution vertically one feature at a time while the agile savvy developer got stuck implementing “architecture” showing zero value when his time was up.
So what do you think – which one knows more about what agile means?
More agile – the first. But who did right? The second, because he knew the requirements and chose the most efficient route for all of them together. I am saying nothing against early delivery of value though. Those two principles are not mutually exclusive in non-toy projects.
I have to disagree, creating an “infrastructure” without actual end to end implementation does not provide value to the customer, and is hard to do again without actually using it.
As it turned out the infrastructure did not solve the problem and needed to be replaced – but by then it was too late.
And if the first guy managed to provide value without writing complex framework – I prefer his solution as being simpler, easier to maintain and most importantly he could show the customer (me) that he's on the right track.
Infrastructure does provide value. It lowers the cost of future development.
I do not think I can discuss further about this particular case because the scenario is very abstract from my point of view.
Excellent post about how much simple is to be agile, You don't have to be certified to perform agility. Agile is a state of mind an attitude on how you develop software. Great example! 🙂 Obiously, mIt is obsolete to answer who is more agile 😉