In development-speak, done means a “code freeze” or “code delivered.”

So, when is a software development project really done? The answer is not as obvious as it seems…but it should be.

Several years ago, I visited a company who happened to be celebrating hitting their release target date. The company seemed to be in party-mode, at least for 30 minutes. There was cake, a few party hats, and beer to lighten the mood.

While I was speaking with one of the lead developers about their success, a consultant from the services arm joined the conversation and asked when he could obtain the release CD so that he could upgrade a client that was eagerly awaiting a bug-fix in the release.

The reply was, “Oh. We still need to update the documentation, fix a compatibility issue, and complete our testing. The CD should be available in several weeks.” The consultant was not pleased.

It seems that the people most excited about the success was the development department. But were they really done? Clearly there was a disconnect in expectations within the company about what done meant.

In development-speak, done means a “code freeze” or “code delivered.” I have found those terms to roughly translate to “not functionally complete” and “not tested,” respectively. This doesn’t mean that the development group intentionally miscommunicates the information to cause strife. Instead, the disconnect can be attributed to trying to please the customer by giving him a satisfying answer, or to poor time estimation.

While I agree that a successful software project is never truly done (there can always be another iteration or quarterly release), at a minimum a phase is done when:

  • The product is deployed in production. What good is the product if it isn’t ready to deploy?
  • There are users benefiting from the system. What good is the system if no one is using it?
  • The product is achieving the business objectives of the project. The business should begin receiving a return on their investment. The benefit could be financial or otherwise.

Note that done doesn’t mean perfect or that there won’t be additional development phases. But, there should be some tangible evidence that value is being gained from the phase or project.