Recently I attended a lecture given by Greg Wilson (Chief Scientist of Software Carpentry). From the abstract:
The idea that claims about software development practices should be based on evidence is still foreign to software developers, but this is finally starting to change: any academic who claims that a particular tool or practice makes software development faster, cheaper, or more reliable is now expected to back up that claim with some sort of empirical study.
Overall, the lecture was very informative and left me thinking quite deeply about my approach to development. In particular, I now find myself looking for citations to back up a lot of statements. Previously, I had slipped into the habit of simply repeating offered truths, with perhaps a mental note to go check up on it later.
Putting it bluntly, I was being gullible.
Here's an example taken from the lecture:
"If more than 25% of the code needs refactoring, it's quicker to rewrite it".
Sounds plausible, but is it true? Where's the study backing this up? Is it true for all languages? And so on.
OK, it's quite possible to take this to an extreme and not believe anything by anyone unless you have derived it yourself from first principles. That way lies madness (or maybe mathematics ;-) ). But, if someone comes up to you with a statement along the lines of "Hey, by doing this in [pick language of moment] we'll be able to boost productivity by [pick multiple of 10]%" are you inclined to just accept it, or are you going to ask for proven evidence?
If it's the latter (and I hope it is) then
- where would you go to find this evidence?
- how stringent would you be?
In short, if someone offers you an unverified statement, will you respond with "citation needed"?