Game programmer, designer, director; retired quadball player; antimeme; radical descriptivist; antilabel; Moose;

Working at Muse Games. Directed Embr, worked on Wildmender and Guns of Icarus, Making new secret stuffs

Opinions are everyone else's


I see programmers of all levels fall into the trap of solving problems they don't have. This tends to make more problems, instead of less. This is usually well meaning. Most commonly, it's trying to solve problems that might happen in the future. Anyone that has ever been taught or studied programming has done this. It's so ingrained that abstraction is good programming, that good programmers make robust code. You end up writing a system that works perfectly in theory, and then the actual need cannot be forced into all that theoretically ideal structure. And we see companies write business to business software, for use cases they can only predict, that end up failing to be usable in reality. And it makes sense, because almost all programming is already an abstraction. We write in languages that are abstracted away from the machine code. Machine code is an abstraction from the pulses of electricity that runs through a processor. Processors are abstractions that mean we no longer have to manually rewire a circuit.

Say you need a circular dowel rod that is 5 feet long. So you make a 5 foot long circular dowel rod. Why on earth would you make an entire production line capable of producing variable length circular dowel rods? Because you suspect in the future you might need a 10 foot long circular dowel rod? Well here's the thing about the future. Turns out you need a 5 foot long square dowel rod. You're replacing all 2 of your dowel rods with square ones actually. Your factory can't make those.

Programmers are constantly building fantastical solutions to simple problems and feeling they've done something right. And sometimes they are! Sometimes you really did need that adjustable dowel rod factory. But so much more often I see people justify massive structure and complexity because they think that's what it means to build something well. And all that investment becomes self sustaining. You can't cut thousands of hours of work out of the system! Think of all the waste!

But the point of building yourself better tools is to have better solutions to your problems.

And sometimes... you can just solve the problem.


You must log in to comment.

in reply to @Queso2469's post: