OK, so if we’re going to base our profession on a more sound foundation, we should probably have a set of principles to work from. Here’s my proposal for the first:
Writing code that works isn’t enough. We have to be able to prove it. The necessary corollary is that it’s unprofessional to take offense when someone asks us to. I think anybody on the team ought to be able to walk into my cube and say “You know that code you wrote last week? I’m not convinced it works. Prove it.”. And not in some hypothetical kind of way. It should actually happen once in a while.
Like most developers, I work for a for-profit company. That company continues to stay in business by selling a product for a dollar that’s worth two dollars. And nobody has any problem with our clients keeping us honest. When we make a release available to them they don’t install it right away. They test it first. And they’d be nuts not to.
Why should my relationship with the company be any different? After all, there’s a lot at stake when I check code in. If nothing else, people’s jobs. People with mortgages and kids. And increasingly, software is taking on critical jobs– like the code I write in the medical field– where people can get killed.
“Prove it” is the least we can provide.