There are times where it helps to state the obvious. The most glaring truths can be lost in the details when we forget to focus or reset. Working software as our goal is one of those truths that we need to remember. There is so much that goes into creating a solution that can distract us from this primary goal. However, keeping this in mind can help us sift through what is productive and what is busywork.
Working software is the primary measure of progress.
Keep The End in MindFirst and foremost, we still want to satisfy the customer. That is the "why" of any project. It is our measure of success for the solution. Likewise, working software is our "how" of the project. A perfectly designed solution has almost no value until it is implemented. Our final deliverable is software plus items that help satisfy the customer. Thus, we know the software is the key deliverable. Everything else is useful or a nice-to-have.
Working Software In StepsYou may know someone who never completes a task. They can be frustrating to deal with and often are not considered successful. Follow through, and completion are critical measures for any action or responsibility. It is like running a race. Nothing matters if you cannot cross the finish line. Software is the same in that respect. We have to deliver working software for a customer to begin assessing it. Therefore, we cannot measure customer satisfaction until we have provided a functioning product.
The Cost Of DeploymentsI have heard it argued that the steps required to deliver working software could be "too costly." While there are often costs associated with providing access to working software, those are worthwhile investments. We need to only turn back to our primary consideration. How do you measure customer satisfaction of a product that does not function? Smoke and mirrors can be used to build a prototype for initial feedback. However, an accurate measure is not available until we have a functioning product.