There is always a discussion around how hard it is for software projects to measure progress.
They're not like construction or building ships or airplanes
I'm calling BS on any approach like that. The notion of measuring physical percent complete is at the very core of every project management method starting with eXtreme Programming and ending with full DoD Earned Value based IMP/IMS (Integrated Master Plan / Integrated Master Schedule).
In fact if you're not measuring physical progress to plan with tangible evidentiary materials, then you are working on a Level of Effort project - where the passage of time means progress.
So What Does Evidentiary Material Look Like?
The real question is "What Does Done Look Like?" That is the question that needs to be answered at all times.
- What does done look like for today?
- What does done look like for the week?
- What does done look like for this iteration?
- What does done look like for the delivery cycle?
You get the idea. If you not speaking about "what do done look like" you can not recognize done when - or if - it arrives.
So what does done look like?
- A running piece of software that does something that the customer actually wants it to do.
- A functioning piece of hardware that passes a predefined set of tests.
- Dried concrete in the piece your wife wanted it to be - between the garden and the grass
Something tangible. Something that was described BEFORE you started. The idea that emerged code or emergent concrete walkways is quaint for projects that have no important purpose. But if you are spending other peoples money - or your home improvement budget - when you are done, you want the person who gave you the money to agree that you did what they asked you to do.
So predefine what done looks like for this increment of the project. The Plan of the Day, the Plan of the Hour, the Plan of the Week, ... Then check that you actually did what you said you were going to do.
That's how you measure physical percent complete. If you can not measure Physical Percent Complete, than only one of two things has happened. You are working on a Level of Effort project, or you chould not start work.