For project development knowing where you are in (in terms of the plan) and when you are going to finish are the two key indicators and also the two questions the project manager will be asked the most.
In order to answer the second question you have to be able to answer the first, and that’s where the problems start.
The project plan must track the time take on a task as well as the actual progress. Having spent 5 hours on a 10 hour task implies it’s 50% complete, but is it? Assumption can be a bad thing, and assuming the allocated time is always going to be correct is a mistake. Personally I like to have tasks broken down so each one is scheduled to take a day or less, two days at the most. By scheduling this way, the impact of inaccuracies with collecting actual progress are minimised.
In order to say where you are with a task it’s important to define complete. This is much easier earlier on when producing specifications and coding, but when the various stages of testing are under way this becomes harder. Note that whilst defining “done”, knowing how far away from “done” a developer is harder to determine, hence the one day scheduled tasks. Depending on the application you may have a zero defect target before releasing the software, or it may be no severity 1 or 2 defects and a maximum of 20 severity 3. Defining this early on means that the customer (whether it’s an external customer or an internal department) knows what will be delivered.
Once testing outside the development team commences, a defect tracking tool is essential. We’ll cover this topic in more detail in a few posts time, but metrics from this tool, particularly the active defect count will give a useful insight into the status of testing. The active defect count tends to rise very quickly when testing starts and then tail off slowly. Another useful metric is the number of new defects raised. Again this will initially be quite high, but as the quality of the application improves this metric will reduce.
Formula 1 teams capture a massive amount of data from their cars to establish how they are running and the effect of changes. There is a saying “if you can’t measure it you can’t improve it”, which I don’t entirely agree with as it should be “if you can’t measure it you can’t measure the effect of change” that applies here. Software development should have a number of metrics that are constantly being collected, as automatically as possible, for the same reasons as the Formula 1 team. The metrics may indicate changes required to the schedule or more attention is required in these areas. The effect is the same, total control of the project.