Many of us have come to love Scrum, including me. Scrum has been a huge success overall and has turned many a development team around and for the better. Yet in my opinion, I think Scrum falls short in at least one area.
Concept to Cash
Firstly, it's commonly accepted that Scrum does not consider the whole life-cycle i.e. it's a great framework for helping development teams tame the development life cycle but it does not tackle all areas from "concept to cash". Lean and Lean with Kanban certainly appears to be an alternative to Scrum or at least coupled with Scrum to provide and all round concept to cash highly effective framework for producing software products.
Definition of Done
Secondly, and more in particular, where I believe Scrum falls short has to do with it's definition of Done. Well, truthfully, the definition of Done is not really even a part of Scrum but once again, it's commonly accepted that defining what Done means on Scrum projects is an important part of it.
Potential Shippable code - what does this really mean?
Most Agile thought leaders define the output of an iteration as an increment of potentially shippable code. And more often than not, it appears to be acceptable (please tell me if I perceive this incorrectly) that this potentially shippable increment of code is not actually live production code. And therein lies my beef with Scrum.
I think the Lean folks have this right - they are very interested in the value stream and minimizing the cycle time of this value stream from concept to cash. So my feeling is that this definition should be changed from "potentially shippable code" to "shipped code".
Iteration Output = Live on Production Servers
On out project teams, every iteration represents a new increment of code LIVE ON PRODUCTION servers - no discussion, no arguments.
This takes serious discipline and focus. And most of all it requires very careful planning. If you get too much work-in-progress you will never turn this in to a reality.
Way too many companies fall short
I find way too many companies after each iteration still trying to close things down in order to get this potentially shippable code shipped. More often than not there's on-going QA etc. long after the iteration is over. This is not a healthy state of affairs.
Take the hard line, change the definition, you won't look back.
Written by Jack Milunksy - COO at Brightspark, certified ScrumMaster and Co-founder of Agilebuddy (Agile project management software that lets you easily Create, Estimate, Plan and Track your software development projects). For great Agile tips follow Jack at: www.twitter.com/agilebuddy. To get more info on Agilebuddy please visit: www.agilebuddy.com
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)