April 7, 2016

...Learn TDD with Codemanship

"Business Value" - Software Develpoment's Own 'Godwin's Law'

It should go without saying - though we seem to need frequent reminders - that business value (in its many forms, not just "profit") is the ultimate driver of commercial software development.

In that sense, it's the Top Trump card that developers can play when the way we create software comes up for debate.

My own experience has been that, most of the time, when a developer brings up "business value", they're doing it to shut down the discussion. Like that perennial classic "what's the point in writing clean code if we're building the wrong thing?"

Indeed. What is the point? In anything? If we're building the wrong thing, let's pack up and go home. Anything we do would be a waste of time. But if we're not building the wrong thing, then the code will need to be maintainable. So, either we write clean code, or let's not write any code at all.

Throwing the Business Value card on to the table has an effect similar to bringing up the Nazis in Internet debates. Nazism was about as bad as things get. Ergo, I WIN!!! End of discussion. drops the mic.

So I've seen business value raised in the most meaningless of contexts: whether or not we should write unit tests, whether or not we should use Ant or a batch file for builds, whether or not to use FOR loops or WHILE loops (I shit you not).

And the irony is that the developers who play that card usually show no practical interest in the business value of what they're doing. They just want to win the debate, and then go off and build that MVC-Dependency Injection-Persistence framework that they were going to build anyway.

So the next time someone trumps the team with "won't somebody think of the business value?!!", call their bluff.

Okay, let's talk about business value. Then grab some popcorn and make yourself comfortable.

Posted 1 year, 7 months ago on April 7, 2016