I saw the phrase “I’m paid to write software, not tests” recently, and it drove me up the wall crazy. I hate this phrase and all of the misleading, misinformation that it spews. This phrase is not only false, it’s fallacy. To suggest that we pit software against tests in terms of what we are paid to do… there is no logical path for this dichotomy to exist.
We, as software developers, are not paid to write software or tests. We’re paid to solve problems and provide solutions that either reduce cost or increase value/revenue for a business. We happen to do it through software, and writing tests is part of writing sustainable software.
Consistent And Reliable
I’m paid to solve problems consistently and reliably, and either implement the solutions through software or recommend a solution that doesn’t involve software. If I solve a problem once, but the solution breaks or is not repeatable after that one time, I have not done my job. If I solve a problem 100 times, add more code to try and solve a second problem and end up breaking the first solution, I have not done my job. My job is done when I can consistently and reliably solve the problem in a manner that either adds value or reduces cost.
Writing software is the simple, mechanical part of what we do. A machine can write software. In fact, that is what we end up doing most of the time – a compiler or interpreter is used to take abstraction and code that a human can understand and produce the software that the computer can understand.
Go, Solve Problems
You are not paid to write software or tests. You are paid to solve problems and you happen to do it through software (and tests).