TrainingConferencesAbout UsContact UsAdvertiseSQE.comRSS Feed

StickyMinds.com: brain food for building better software

Log In
 Clarify Your Search Criteria

Tips on Using Our Search Feature(s)
 
StickyMinds.com Home
ResourcesTopicsCommunityPowerPassBlogs
Home  >  Detail: Done and DONE-done



A StickyMinds.com Original
Article Picture
Done and DONE-done
The Magic of Completion Criteria

By Payson Hall

Send This Content to a FriendGet a Short Link to This ContentPrint This ContentSee User Comments About This Content

Summary: As a professional project manager and amateur magician, Payson Hall assures us that effective project management isn't magic. A magician should never reveal how a magical effect is accomplished, but good managers do share the rationale behind their actions to help others become more self-sufficient. Demystifying effective management actions improves our ability to get results, allowing us to move on to new and different challenges. In this column, Payson explains the strongest management "trick" in his repertoire--the pursuit of unambiguous completion criteria. He also tells us that perfecting this trick takes a lot of practice, but it can serve us immediately and throughout our careers.


Sonata Software
Barbara was a programmer on my team responsible for building a utility for our project. This utility displayed a scanned image on a screen, allowed users to define regions on the image, captured the corresponding coordinates, manipulated the regions, and stored the new image in a special format. An adjacent project needed an early version of the utility and we agreed to provide them with a "prototype", which was expected to be functional, ugly, Spartan, and have minimal error checking.

On a Monday, I asked Barbara when the prototype would be finished, and she told me it would be done on Friday. At the end of the week, I went to Barbara and asked, "Are you done with the prototype?"

“I'm done,” she replied.

“Great!” I said, extending my hand. “Give it to me.”

“Well…” demurred Barbara sheepishly, “I'm not DONE-done.”

“DONE-done?” I inquired. I'd never heard that one before.

“I built the prototype and tested it using simple test data,” she said, “but I haven't yet integrated the more complex transforms. Integrating those and testing will take another two days.”

“I'll see you Tuesday then,” I said. DONE-done. Ha! What a kidder.

On Tuesday, I stopped by Barbara’s cube. With an almost straight face, I inquired, “Hey Barb, are you … DONE-done?” I couldn't help but chuckle.

“I'm DONE-done,” she beamed. “It works great.”

“Wonderful!” I said, extending my hand. “Give me the disk.”

“Well,” Barbara hesitated, “I'm not DONE-done-done.”

The humor drained from the situation. In my mind, I began hearing Beethoven’s “Fifth Symphony”: DONE-DONE-DONE, DONE. DONE-DONE-DONE, DONE.

I got grumpy. “What do you mean you're not DONE-done-done?”

“Well,” she replied earnestly, “I built the prototype and tested it successfully with the transforms. But I haven't built the readme file that explains the subdirectory structure, or copied the pieces and parts to a diskette. I won't be DONE-done-done until tomorrow.”

I was angry and disappointed. “What time tomorrow?” I grumbled. We agreed that I would stop by at 4:00 p.m. to pick up the diskette.

I went to complain to the senior project manager, Pat, about what an unreliable and equivocating person Barbara was--to whine about Done, DONE-done, and DONE-done-done and explain why I was surprised by the delay. I expected sympathy and strategies for disciplining Barbara, but Pat gently interrupted me and said, “Why are you frustrated with Barbara? You screwed up.”

“Me?” I said. “What did I do?”

“Unclear completion criteria,” Pat said. “If you had been clearer about what ‘done’ meant, you likely would have gotten a clearer answer to your original request for an estimate and probably even a straight answer when you asked about progress.”

“What do you mean?” I asked. “Isn't ‘Done with the prototype’ clear enough?”

“Apparently not,” smiled Pat. “You say she wasn't done Friday--how could you tell?”

“Because if she had been done, she would have been able to provide me with a diskette of the code and information that I needed for the other project to run the utility,” I said, still not getting it.

“Then that’s what you should have asked for when you defined the task,” Pat said. “You might have said, ‘Barbara, I need to send a diskette to the other team so that they can use the prototype. What will it take for you to build and test the utility and put it and any necessary files and instructions on a diskette for me so that I can pass it to them?’ It might not have gotten you what you wanted, but it would have clarified your goals earlier and improved communication.”

Pat had made her point.

Since then, with practice, I've gotten better at defining completion criteria and recognizing when “done” is not clearly specified. I've also discovered that poor communication about completion criteria is often the root cause of disagreements related to task definition, project definition, and whether or not requirements have been satisfied. Take a moment and think about a current task you are doing or someone is doing for you. Now answer these questions:

  • How will you know the task is done?
  • What work products will the task create?
  • What standards apply to the work products to assure they meet requirements?
  • Where will those work products be when the task is complete?
If you and someone else familiar with the task answered those questions independently, would you come up with similar answers? If not, prepare to discuss DONE-done.

Getting good at defining completion criteria isn't magic, though it sometimes seems that way. Pulling a rabbit from a hat is applause-worthy, but asking, “How will we know this is complete?” can save a project.


About the Author
Payson Hall is a consulting systems engineer and project manager from Catalysis Group, Inc. in Sacramento. Formally trained as a software engineer, Payson has performed and consulted on a variety of hardware and software systems integration projects in both the public and private sectors throughout North America and Europe during his twenty-year professional career. He is a regular columnist on StickyMinds.com.

Back to Top
 

StickyMinds.com Weekly Column From 03/13/2006 

Member Comments
Add Your CommentExpand Comments
 
Comment:    
by james ward 3/27/2006

I have found that specifying a deliverable output with a sample or template for each assigned task usually addresses this problem. In the case cited in your article, the task had multiple outputs, all of which should have been specified.

 
 
Comment:    
by Bahadur G. Asher 3/22/2006

Great Article, we work as an 3rd party Testing Team for an E-Learning company, and as we are the last man standing between the product and the client, we come across this issue many times, especially when the going is really tough. We are given a time of when the product will come for testing, and that desired time we go and for the product for testing they say the product is ready but installation files are still to be made, or if it's a cross platform product then that is still to be integrated. I have tried many times to find a solution for the same but they always come up with one more new way of delaying the product. I can understand...Read On

 
 
Comment:    
by Bill Middlebrook 3/15/2006

You wrote a thought provoking article. I cannot count how many times I've heard a development team saying, "done-done-done-done," and the qa team saying "no, no, no, no." I definately agree that the less ambiguity in exit criteria and project plans, the better. One of the challenges is that it is not uncommon for end-state requirements or specifications to be significantly different from beginning-state requirements and specifications. Whether this is due to time-to-market pressures and/or technological challenges is not as important as the fact that these changes occur and are to be expected. It may well be wise to...Read On

Author's Response:
3/15/2006    
Key idea as the thoughts about what you are doing evolve is to have some mechanism of change management, by which I mean a process to document and seek conscious agreements about changes in goals or approach. This is VERY important at the project level. Nothing worse than having verbal agreements about changes and then having a lawyer come and beat you senseless with the (unchanged) written agreements after the fact. Evolving understanding of goals is a fine thing... but the audit trail of expectations must be carefully managed. This is at least as challenging as describing completion criteria in the first place.

 
 
Comment:    
by Natarajan Ramanathan 3/15/2006

Thanks for the article. One does not realize how vital is communication is and the point of view from which the communication is perceived from. For one of the early projects, what I did was as a user after I gave the specs, I asked the developer team to make a joint presentation to me and their Team leads - which would tell us have they understood what we wanted. It eliminated lot of confusion in the 1st pass itself. Am not sure, though, whether this is possible in many situations.

Author's Response:
3/15/2006    
I've never heard of doing that before, but it sounds like a brilliant idea. Gives people a chance to construct a common view and would be a gentle way of surfacing ambiguity. I'll add that one to MY kit bag. Cheers.

 
 
Comment:    
by Parvinder Ghotra 3/15/2006

Great job. Defining a completion criteria seems trivial, but in practice it is very tricky.

Author's Response:
3/15/2006    
It IS tricky and takes practice. Here's a hint to get you started: Complete the sentence, "This task will be complete when..." Then review the answer with someone else asking them to look for ambiguity. After a few attempts, you will get it. By the way... if the tasks are squishy, completion criteria are very difficult. You may have to redefine the task a bit. For example, the task "consult with users about requirements" does not imply completion criteria or a deliverable. You might want to reframe as "Consult with users to capture requirements", "Document requirements from user meetings", "Review requirements with users to identify variances" and "Correct variances in requirements document and provide to users for approval". It's a little more work in the project plan, but it reminds us of all the work and each step implies a deliverable/completion critieria.

 
 
Comment:    
by Mike Whittaker 3/15/2006

I have learnt awareness of completion criteria through my time working as an independent consultant - what do I need to achieve in order to get that [stage] payment from the client ?! Did I define it clearly and unambiguously enough (and do a verify at the definition stage, "this is what I think you want - do you agree"), so there could be no argument when the time came ?

Author's Response:
3/15/2006    
You might find the book "Flawless Consulting" by Peter Block has some insights for you. As a consultant, I find that there is a combination of things I need to do; first - I need clear completion criteria; second - I need to constantly remind the client what we agreed to manage expectations. The second part is what Block discusses. I frankly didn't much care for his book, but he points out an important idea... each interaction with a client is a renegotiation and recommitment to the work. It is worth reading his book for that point alone.

 
 
Comment:    
by phil kirkham 3/14/2006

Excellent article very well written And an easy way to rememeber the advice is to hum Beethovens 5th !!

Author's Response:
3/14/2006    
Or the William Tell Overture (Lone Ranger song).

 
 
Comment:    
by Tanmay Vora 3/14/2006

Managing expectations of team and clients through clear, precise and point-to-point instructions helps a long way in ensuring that the given task, when announced "done" is really done. Thanks for writing.

Author's Response:
3/14/2006    
While I agree, be gentle or you may scare them away. More detailed for: high risk tasks, external dependencies, tasks done by unfamiliar or less experienced staff, complex tasks, tasks your team hasns't done before.

 
 
Comment:    
by Maaret Pyhäjärvi 3/13/2006

Thanks for the article - this came as a thought provoker just when I needed one on the topic. It is too easy to skip test materials from defition of being done when moving to Scrum-type of approach.

Author's Response:
3/13/2006    
Testing is a particularly thorny issue. In my experience, this is because many people combine testing and repair, or get a little lazy and assume that testing and repair are parallel efforts and schedule the "tasks" as long duration things that run in parallel. A different way to approach this, which might serve some people, is to make an assumption about how many testing cycles you will perform (on a single program for example), treat each testing round as an independent task. Let's imagine you assume three cycles, this would be three testing tasks. Imagine a cycle consists of running through a checklist of things you wanted to test and writing up three possible outcomes of the checklist item: Worked as expected, did not work as expected, or I couldn't test this (to show blocking faults). Now a test cycle is going through the list and recording a result for each item. You can define "testing cycle complete" when the checklist and notes have been passed to the person responsible fore rework. I acknowledge that this is simplistic and won't work in all cases, but in many cases this makes a testing cycle a discrete event that can now be estimated and executed. This also gives visibility to error prone code that needs to go beyond three testing cycles before it gets a clean test run... it isn't that the tester is "taking too long" is can be tied back to the assumption that three cycles was enough to find (and subsequently remove) the faults in the routine.

 
 
Comment:    
by Smriti Metikurke 3/13/2006

Excellent Article. This article describes the scenario that we come across in our day-to-day tasks.Thanks for highlighting on how important defining a completion criteria is in any project.

Author's Response:
3/13/2006    
The thing that constantly surprises me is that the insight about completion criteria scales up from tasks to whole projects. Get good at a task level and you will realize that many projects have poorly defined completion criteria as well.

 
 
Comment:    
by Santisantosh Mahapatra 3/13/2006

Really a realistics scenario in every software project life cycle. Manager need to be more clearer about what they are asking, because communication gap may ruin the dead lines and loose customer base.I really agree with the point made in the article.Excellent practical example.Cheers.

Author's Response:
3/13/2006    
Thanks for the comment Santisantosh. Although the story gets a little better every time I tell it, this is fundamentally what really happened and was a great lesson for me. Glad to have the chance to share it. - Payson

 
Back to Top



 
Ads By Google
What's This?
 
 



Home   |   Resources   |   Topics   |   Community   |   PowerPass



© 2010 StickyMinds.com. All rights reserved.
StickyMinds.com is a division of Software Quality Engineering.
Privacy Policy    Terms & Conditions    Link to StickyMinds.com    Feedback


MicroFocus




STAREAST 2010 


Better Software Conference