Thursday, July 01, 2010

The "Dev Complete" Fallacy

Has your manager ever walked over to you and asked when the story you're working on will be "dev complete"? Or have you ever overheard someone ask in a planning meeting "When will the product be dev complete?". Yes, I'm sure it sounds familiar. It's also one of my least favourite managementspeak phrases because it nonsensical.


Let's stop for a moment and consider what's being asked. What is "development complete"?


Many managers are stuck in a waterfall, sequential way of thinking. Requirements are thrown over the Chinese wall to developers, who throw it over the wall to QA and then, somehow, magically, working software appears out of the end. To them "dev complete" usually means ready to pass to QA. However the tacit implication is that it is not expected to come back again….that, well, development is complete…. The problem is that unless it's been tested, who can know whether this is the case? And if it there is a problem, then more development is required, so it's not complete.


So here's my alternative definition for this bizarre phrase:

"Dev Complete" means Done. As in Complete. Finished. Tested. Ready to ship.

Any other definition is simply "Dev incomplete".


3 comments:

bob said...

Remember being baffled, even though this was on a waterfall project, that there was a 'coding complete' state, which was pre-compile. Like someone would get anywhere near a whole module coded without even compiling once, let alone having done some (even informal) unit testing.

Dennis Ehle said...

Hi Chris - I completely agree with your point regarding the actual "completeness" of freshly developed code. However, we do need a term to describe work passing from the development phase into the delivery phase as often these are two completely different process flows (development/delivery). I often find myself using the term "dev-complete", as in ready for build/integrate/test/assure/etc - assuming everyone understands additional work/re-work will often be required.

Any suggested alternatives to describe code sitting between develop and delivery?

Dennis Ehle - dennis.ehle@cloudsidekick.com

Chris said...

Hi Dennis

I don't normally reply to comments, but that seems to be an odd comment from someone claiming to work for a company specialising in delivery pipelines. The whole point is that work is not “dev-complete” until it has been through build, integration, test, and yes, even deployment. Until then, there may be further development to do - i.e. it is most certainly not “dev-complete”.

However, may I suggest the following terms:

Ready to build (“I have typed but I have no idea whether it is right”)
Ready to test (“I have typed, and it compiles, but I have no idea whether it is right”)
Ready to deliver (“I have typed, and it seems OK-ish since it passes some tests, but the important people haven’t seen it yet, so I still don’t really know if it’s right”)
Deployed (“Yay! It works! People like it! I have completed development for that story”)

HTH