|
-
July 27th, 2007, 10:11 PM
#1
Apgar score for software?
In the 1950s, the Apgar test for newborn infants was introduced. It allowed doctors to evaluate the health of a newborn baby in seconds using only a few simple criteria, like heartrate, the color of the baby's skin, etc.
Can we do the same thing for software? Are there simple criteria that a person could quickly use to evaluate the technical quality of a software project? I am looking for suggestions for these technical criteria.
Let me set some ground rules.
1) If possible, they should be binary, either yes or no. If not, they should be as easy to determine as possible. We are looking for a quick estimate of quality, not a deep evaluation.
2) They should be purely technical. We don't want to know if the software is on schedule. We don't want to know if it is following a process. We don't want to know if they are using configuration management. We want to look solely at the source code, and determine its technical quality, regardless of how it was developed.
3) I will mostly apply these to C and C++, but if possible they should be applicable to any language, Python, Ruby, Matlab, Java, etc.
Here's some examples I am considering to get the ball rolling:
1) Does the software successfully compile with -WALL -WERROR?
2) What is the ratio of comments to code?
3) Is there error handling?
4) Is there error logging?
5) Is there a coding standard/meaningful variable names?
6) Are there automated tests written for it?
7) Are any functions over 500 lines?
8) Is there any dead (uncallable) code?
I am interested in opinions, comments and of course, question suggestions. And I will mention that this idea is certainly not originally my own, I came across this in Daniel Read's blog. We are thinking of actually implementing this at work and I was looking to this community for suggestions.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|