Having mulled the problem of measuring software development over for a week and having performed extensive literature searches (that's Google and Wikipedia) I think I've got one - a million dollar idea that is!
Maybe I shouldn't tell .... hey ho - won't be the first time.
So the best the extensive research could come up with was essentially you need to define some 'Metrics' that you then monitor, for example;
- metric - number of lines of code written - issue, doesn't this just measure the efficiency of the coding team?
- metric - number of bug's corrected - issue, same as 1 above?
- metric - structured processes in place - issue, is anyone following them?
- metric - verification and validation testing - issue, not bad but does it measure progress?
- metric - timelines project planning - issue, will you (or maybe you will) plateaux at 90% complete?
- metric [for 'agile' development processes such as RAD, DSDM, and other HP (Hackers Paradise;) processes] - small programme elements, and the novel concept of speaking the projects team! - issue - again not bad but am I going to tell you I have a stuck bolt and its going to take me at least a week to fix it?
Note to self: must remember the 'agile' terminology for future reference and use on Spreadsheet development projects!
All this is still pretty intangible for the 'manager' who just wants to know if its going OK and will things be finished on time. Not an unreasonable question. So - there must be something better and more user friendly that all this metric stuff (which is useful/essential don't get me wrong). Being software geeks surely there is some software available that does this for you? I've not come across anything more than app's that mechanise the above 'metrics' which is not the right answer in my view.
So I started thinking about how a civil engineering project goes about doing this - not that I am a civil engineer - but that's the point! Say the project was construction of a house, even I could walk along to the site and have a look. Is it still a hole in the ground, have the foundations been put in place is the roof on? These are all tangible milestones that can be viewed by anyone. You could look at the project plan and progress charts, measure time on the job, ensure the contractor has processes in place for delivery - all metrics like the software ones. However, there is no substitute for going and having a look at the site! So what is the software equivalent of 'viewing the site' then?
Taking the civil engineering analogy a step further, and probably stretching it a bit. Could we not present things a little differently, say;
- hole in the ground - SW equivalent, project plan and development team in place,
- foundations in place - SW equivalent, detailed design completed,
- topping out - party time - SW equivalent, major functional components completed and VnV'd,
- final fitout - all input output routines completed.
what would then be needed is a slick piece of software that puts this into some 'house build' type view of the project. The metrics will then be linked to something more tangible, something that anyone can understand. If you don't have the roof on, for example, then you could have major delays if the main functional requirements have not been coded. There is no point in fiddling about with the fitout if the roof still needs completing (critical path analogy).
Et voila - you have a visualisation that anyone can view and understand.
Well something like that anyway. Now, where do I collect my money .....