There are so many things a good developer has to do that nobody really understands. Especially bad developers. I’d love to say, “you know who you are”, but most bad developers have somehow managed to skate through life with no fucking idea how bad they are. I’m not sure how this happens.
A good developer isn’t just sitting around churning out code to get the job at hand done quickly. In fact, if that’s all you do when you work on a project, you’re a shitty developer. And you know what else? You’re slower than me. All that time spent rushing around is slowing you down, dumbfuck. Yes, you will finish a discrete task faster, but you will never discover better tools. You’ll never think about what you can automate. You’ll never adapt your workflow. Leaving you wasting time you don’t even know you’re wasting.
You’ll stick to what you know and you’ll call it a job well-fucking-done. You’re a complete waste of my time because you ruin shit you don’t even understand you’re ruining because you refuse to even attempt to learn a better approach.
ZOMFGBBQ An Example!
Which brings me to a recent triumph of my own. Which illustrates something all devs will claim to do, but most will say, “screw it, I don’t have time for this” about five minutes in.
I was wasting 15 minutes to compile a gargantuan beast written in Java. Every time I needed to make a code change. Not being terribly familiar with the codebase, the build tools, or really Java in general, this was a problem, because I just didn’t know if there was any way to get around it. I knew there was no need to rebuild the entire application, because I was only working on a small piece, and I know that Java classes are at least a little bit more standalone than this 15-minute build process would suggest. I also knew all the “detected a change in XYZ” notices were complete bullshit because I wasn’t touching anything anywhere near those packages. Way to go, maven dependency tracking (seriously, Makefiles are great at this kind of shit, why are devs so fucking stupid they keep reinventing
make in shittier and shittier ways?).
Okay, okay, yes. To be fair, maybe maven is awesome and the project set up the build files in a shitty way. I’m just not familiar enough with these things to say for sure. But the end result is the same. The documented build process was fucking killing me.
This is something others just let slide, and say, oh well, guess it’ll just take a long time to test stuff. Or in one case with another peer of mine, said peer chose not to bother testing when the build process took too long… and ended up committing a bunch of code that wouldn’t even compile.
I didn’t accept that delay, and I didn’t accept the idea that I’d just push up shitty code. Compiling just 4 times a day would mean wasting an hour. Pushing up shitty broken code… well damn, I can’t see how anybody finds that acceptable. Either option is inexcusable unless there’s absolutely nothing I can do about it.
So I dug in, spent probably 4 hours screwing around with random commands, mostly trial-and-error shit. And I found a way to get the build process down to about 30 seconds. It’s stuff that might be obvious if you live and breathe Java, so it’s not at all spectacular. I’m not a hero. I’m not a guru. I’m not brilliant or amazing.
But I’m so much better than you.
What separates me from you is that I took the time to figure that out. Instead of just sitting and waiting and whining about it. Or pushing up busted code without even realizing that it would fuck up somebody else’s day.
Now I’m all pissed off. Come back later, assholes.