Here’s the fourth in my series of notes taken from keynotes at CUSEC 2010, the 2010 edition of the Canadian University Software Engineering Conference. These are from Bits of Evidence: What we actually know about software development and why we believe it's true, a keynote given by my friend Greg Wilson, the computer science prof we all wish we had. He’s also the guy who gave me my shot at my first article for a developer magazine, a review of a couple of Ajax books in Software Development.
My notes from his keynote appear below; he’s posted his slides online.
Who’s right? If we find out, we can build methodologies on facts rather than best-sellers\
Increase the problem complexity 25%, and you double the solution complexity. (Woodfield, 1979)
The two biggest causes of project failure (van Genuchten et al, 1991):
If more than 20 - 25% of a component has to be revised, it's better to rewrite it from scratch. (Thomas et al, 1997)
Rigorous inspections can remove 60 – 90% of errors before the first test is run (Fagan, 1975)
Cohen 2006: All the value in a code review comes from the first reader in the first hour
Shouldn't our development practices be built around these facts?
Conway's Law – often paraphrased as “A system reflects the organizational structure that built it” -- was meant to be a joke
Nagappan et al (2007) and Bird et al (2009) got their hands on data collected during the development of Windows Vista and learned:
[This article also appears in Global Nerdy.]