#20 Nothing is free
I’ve been working on a redesign of HyperDraft’s website recently, and oh boy its been a pain in the butt. As a result I started looking for…
I’ve been working on a redesign of HyperDraft’s website recently, and oh boy its been a pain in the butt. As a result I started looking for some visual based designers to assist with the process. I spent about 15 minutes in one and realized, man there are a lot of restrictions here and weird quirks that I’m going to have to learn about. It might be nice for a designer who spends their entire day in the mire of a design interface, but as someone who can and does code, it’s not really useful. That shortcut didn’t make sense to me, so I coded the site from scratch.
We are all guilty of thinking “I wonder if there was a faster way of doing this.” Sometimes just doing it, is the faster way of doing it. Shortcuts are, by their nature, easy to adopt. But we should always remember that it comes at a cost. You’re losing something by taking a shortcut.
“But Tony, what about copy and pasting? There’s nothing lost there and tons of gained value.”
Definitely, except if you didn’t copy and paste (in the case of text) then you would’ve spent time memorizing the text, which is a skill in its own right. So you lost out on the opportunity to train your text memorization muscles. The math in this case makes it such that you valued the action of copying and pasting quickly over the activity of memorizing and writing. Fair enough. Ok, how about a bit more of an absurd example. What about in the case of copying and pasting a picture? Surely there’s no cost to that! Meh, my pedantic self would note that you took memory away from the machine (the random access memory, or RAM) in order to achieve that action. There, you spent some resource in lieu of memorizing all of the pixels and writing them down yourself.
“Dude, why does any of this matter?”
Because it matters when you take shortcuts. Everything has a cost. You cannot rob Peter to pay Paul and expect it to all work out. It’s the law of the conservation of energy, you cannot create or destroy energy, you can only transfer it. Like when you or your company takes (read: steals) open source software that a developer made and tries to pass it off as their own. And I’m sure that the well-funded startup found a competent lawyer to have the open source developer sign a settlement agreement with a non-disclosure provision to hide the misappropriation of intellectual property, but that cost something to someone. Our engineering community is in a crisis, where the going rate for engineering “talent” with no actual skills or experience rivals 4–5x what minimum wage demands. There is a hidden cost to all of this, some of it is lack of productivity and the other cost is the shoddy foundation companies are building as their engineering base.
Press enter or click to view image in full size
The above excerpt from Reddit is discussing the decision by a developer of open source software to purposefully break an open source software package that they were maintaining because they felt that private corporations should've paid for the privilege. There’s so many things wrong with the above exchange. First, pay your interns. If someone does work, then pay them. Otherwise, do the work yourself. Second issue, “Pro tip: you could use 3 interns to write 3x as fast and save 3x as much money.” I sincerely hope this a sarcastic comment but searched through the thread and didn’t see much suggesting the person wasn’t serious. This is absurd that any engineer would assume that adding bodies to a project has a linear correlation to output. I say it’s absurd, but I’ve seen that expectation firsthand. Startups will raise too much money, too soon, and feel the need to “scale” by hiring aggressively. Hiring takes time and effort. Ramp up takes time as well. It does not scale 1:1. We’d be lucky if it scaled 5:1. Stop taking shortcuts and expecting things to work out as if you didn’t.
Press enter or click to view image in full size
The above isn’t me, but I agree with the sentiment. If you use something that someone else built, there is a cost to it. Whether that’s making donations, paying for a license, or risking that the developer goes AWOL and slips malicious code into your code base (which is what the reddit thread was discussing). You’re going to pay something for the privilege of thinking you got something for nothing. Do I agree with the open source developer’s approach? No, absolutely not. Ensuring that open source code is not malicious is what helps the world develop efficient coding projects without wasting cycles reinventing the wheel. The more important issue is the general mentality around coding, “Let’s take shortcuts, use other people’s code, and not pay for it. It won’t hurt us at all.” Know what goes in your code, and if it’s mission critical you should consider paying for it or building it yourself. Nothing comes free.