1. Class coupling - amount of time it takes to grok the code
2. Build time (full, typical partial etc) - amount of time developer is twiddling his tumbs
3. Time between checkin, integration tests and end-user tests - amount of time code spent being created but not used, aka "waste" per The Toyota Way
4. Referential loops in layering diagram - amount of problems that need to be overcome to start refactoring
BTW, number of bugs should probably be weighted with number of incidents for each bug and its impact. The mere thought of this makes me rethink my design - how will know the number of incidents? Should I instrument my code to download "bug signatures" and report back the findings? For a web app it seem a straightforward thing to do. How would I do this for desktop/iphone app? I could proably send down some script code to walk over the local storage to look for problems. How about UX bugs though? Should I log UX interactions into a local database and send down queries as well? Hm...