October 26, 2019

Why dry?

Sent by Jonathan Stark on October 27th, 2019

There’s a software development principle called “DRY”, which stands for “Don’t repeat yourself”. For the uninitiated, here is a quick definition of “DRY” from Wikipedia:

“Don’t repeat yourself” is a principle of software development aimed at reducing repetition of software patterns, replacing it with abstractions or using data normalization to avoid redundancy.

And here’s a description of “WET” (i.e., the opposite of DRY)…

Violations of DRY are typically referred to as WET solutions, which is commonly taken to stand for “write every time”, “write everything twice”, “we enjoy typing” or “waste everyone’s time”.

As you might have guessed from the WET counterexamples (e.g., “waste everyone’s time”), DRY is considered the more efficient approach of the two.

Here’s the thing…

If you are a software developer who bill by the hour, why would you provide DRY solutions?

(And if you’re not a developer, I would ask instead, “If you bill by the hour, why would you do ANYTHING to make yourself more efficient?”)

You can twist yourself into a pretzel trying to come up with credible answers to this question, but don’t bother. I’ve heard them all and none pass the sniff test.

Here’s why:

Hourly billing penalizes increased efficiency.

Sorry, there’s no way around it.

But there is good news!

If you set prices for your projects instead of billing for your time, keeping your code DRY (or any other kind of efficient “best practice” of your craft) immediately increases your profits!

In other words…

You make more money in less time by setting prices.

Switching from hourly billing to setting prices instantly aligns the financial motivations between you and your clients.

No pretzel logic necessary.