Number of lines of code per programmer, code reviews, project reviews, function points, etc. all seem to be used here and there but there doesn’t seem to be an organized set of metrics for measuring how an outsourced software development project is proceeding! We have often received calls from vice-presidents of quality,especially of companies that provide outsourced software development services, seemingly at a loss for techniques, approaches and software solutions that can help keep track of how a project is going!
The typical reaction to such a question is to whip out a spreadsheet-based solution or a project management software product, but they capture only parts of the mechanics of the project. They do not keep track of a myriad of other aspects of outsourced software development such as communication, personnel turnover, usability of the software and other qualitative aspects. You may be using project management tools, GANTT charts and Excel spreadsheets and they may all be indicating excellent progress while your project is failing overall!
Many of these missed aspects of software development relate to the "effectiveness" of the progress rather than the "efficiency" aspects. The effectiveness aspects are the ones that cause failure of these projects and also ones that point the way to the real culprits of software outsourcing failure: Many of these place large portions of the responsibility at the outsourcing buyer’s doorstep! If you need a donkey from the vendor, you better specify all the aspects of the donkey — from having four legs to the decibel level of the braying needed. If you get back a donkey that has only two legs and lacks vocal chords, this could always be traced back to a lack of proper communication on the part of the buyer!
Based on the lessons from succcessful outsourcing projects, these metrics could be synthesized and used in most other software development efforts!
Be precise. A lack of precision is dangerous when the margin of error is small– Donald Rumsfeld.