Yesterday while hiking I listened to BBC Discovery and they were talking about the first controlled experiments on humans done by a British Navy Surgeon, James Lind, with people suffering from scurvy. The closing comments about the difficulty of people to keep scientific (basing decisions on hard good data and not popular belief, religious belief, anecdotes etc) struck home with me.
Often I have had a discussions about which technology paths to take and usually end up using the following criteria for my recommendations:
- Number of lines of code to produce (lower is better) intended results
- Application performance – how fast is it going to run
- Application scalability – can we handle bigger load
- Expected time to completion: Expected in a mathematical sense:
- Estimated Time x Probability of being correct.
- Maintainability of code base, which breaks down into:
- Availability on the market of people skilled enough to do maintenance and development
- Trends on the market (growing or decreasing PERCENTAGE of people with those skill sets on the market).
- Ramp-up time for learning needed skills
Often I find that the other side will not address these issues in our discussion. The discussion can go religious (or power play) “This is the way we should do it…”, or everyone that I talked to says it’s a problem (all of your friends are JAVA/ORACLE developers) i.e. anecdotes.
A lot of bad software decision comes from not being scientific. QUANTIFY the criteria and then make the decision. Get the SCIENCE back into Computer Science.