FULL DISCLOSURE: This article pokes fun at my development friends.
Are you a developer? If so, this post isn’t for you. This is for all of my fellow non-developers who have to work with talent who speak geek-anise and need a translator. So, if you’ve found yourself working on a project with a development team and have ever been in need of a thesaurus, read on — you’re not alone.
Think back to the last project you worked on with a development team involved. Was it a good experience?
If you’ve been involved with enough development or web-oriented projects in your career, you’ve probably experienced a sporadic string of hair loss.
Managing these kinds of projects is hard — in fact it can be down right painful. Especially when you’re not sure exactly what the jargon is that these letter salad wizards called developers are throwing around. If you’re working with an agency, you should have someone on the inside — an account executive, a project manager or someone else — playing translator and shielding you from the eventual hair loss phenomenon that comes from working too closely with developers. If not, give us a ring.
Let’s pretend for a moment that you have to work directly with the development talent to get the project done.
If I were to ask you what the most important thing is to clearly identify to your technical or development talent at the beginning of the project, what would it be? The timeline? The budget? Important milestones along the way?
Nope.
That may sound absurd. “Of course,” you say. “Done means that it’s finished.” Six years ago, I would have agreed with you. Not anymore.
In the development world, there are variations of the word “done.” When we first started Oodle, Jon Rhoads, one of my business partners and the only developer on our team at that point in time, drove me CRAZY with these definitions. So crazy, in fact, that I’m convinced that I’m a bald 30-something all because I didn’t have these important insights into the wonderful world of development and its definitions of “done.”
I’m now in the hair restoration business. Well, not so much, but go with me on this really cheesy metaphor. I’ve compiled a short list of important definitions to the word “done” that might just help you keep your sanity (and just maybe your hair).
Ok, this is a developer trolling you a little. He/she has made the shiny thing do what it’s supposed to do. In geek speak, the function is working properly and it’s programmatically correct. But is it done? Probably not.
Let’s look closer.
The shiny thing the developer did might be programmatically solid, but it probably looks absolutely awful. Users of the new shiny feature will be so confused by the random bright purple button the developer thought looked good that they’ll run away in horror never to return again. And designers will cringe when they look at what the developer did to their masterpiece of a user interface.
If a developer uses “it works” to describe something as being finished, take a closer look. It’s probably NOT done.
Don’t panic. The developer probably knows it isn’t done yet too.
This is my favorite definition of the word done. It’s the one that I nearly lost my sanity to during the first three years of building a digital agency. When a developer tells you that something is nearly, almost, virtually or any other word that describes “I’m not quite done yet,” throw up the red flag and get ready for a subnuclear launch of questions in your future.
Whenever developers tell me they’re “almost” done without some sort of clarifier (i.e., a percent, a done-by date or anything else), I start down a path that looks a little bit like this:
Usually about this stage in the barrage of questions is where we uncover the REAL status of “how done” it is. This is a great place in the process to clarify definitions and realign expectations.
Is this a trick? How can something that is ready to be tested be done? Great question. To developers, something could be done when they’ve completed all of the code they’ve planned to write for the project and legitimately feel like it’s in a place where it’s ready to roll out the door. The extra step to remember is that there’s one more round of testing that should be done before the shiny new feature is ready to rock.
That round of testing could result in some revisions to the code, and the cycle rinses and repeats until things are truly ready for the next definition of the word done (see next bullet).
This is the crème de la crème of definitions of the word done. It’s the ONLY way that you should define done with your development team. Until a feature is “shippable,” it isn’t “done.”
I know what you’re thinking: Ok, so what the heck does “shippable” mean? Are we going to define the entire English dictionary here?
Put simply, “shippable” means the shiny thing that your developer has been working on is ready to go out into the wild. It’s ready to be unmasked to the world. It doesn’t have a single line of code to be completed. It doesn’t have one last thing to be done to it. At all.
I call this “done done.”
“Done done” has become a term of endearment around the Oodle office, where people will ask, “Is it done, or done done?” It’s a direct way of poking a little fun at me for sounding like a stuttering high school student when saying it — and I LOVE IT.
It means that my team now has a unified definition of when something is ready to be shipped. When that level of alignment happens, all of a sudden managing technical projects isn’t so painful. In fact, it can be fun! And fun (and more hair?) are the direct results of “done done.”