I have been asked for the status of various projects, and I have asked other people about the status of their work. Sometimes there were discrepancies between the reported status and the actual progress.
To be clear, the inconsistency represents miscommunication and/or misunderstanding rather than dishonesty. I consider all the discussions about what “DONE” means.
This motivated me to search for a better way. How will I know if my team or myself are on schedule? Or even early? Consider how the success of the project will be measured, the customer will use it and decide for themselves. Here’s some of the subconscious questions being answered:
- Did it run?
- Does it look good?
- Does it do what I want?(Note the question is not “Does it do what we agreed it should do?”)
- Was it easy to do what I wanted?
Other possibilities exist, but you get the idea. One notably absent question is “What’s the status of this?”. The customer asks the software these questions rather than its creator.
Consider the last time you test drove a car.
Did you ask the engineer, designer or mechanic how the car handled? Of course not, you knew exactly how it handled, because you drove it. How can a user “drive” software?
The user must install and use the software(yes, the install counts). The next time someone requests status, give them a build or install the latest build on a clean environment for them.
The next time you want to know the status, ask for a build. Yes, this takes more time than asking “Is it done yet?” or “Where are we on X?”, but it saves time and embarrassment with the final product.