Today, I came to a realization. I’m now officially an Old Fogey Software Engineer. You know, like those narrow-minded, intolerant, old-time veterans of the field I used to look down on when I was but a young Whippersnapper. They were so limited in their view, only being able to do what they have always done, always disagreeing with me, always putting roadblocks in my way, always wiping out my carefully crafted abstractions in favor of in-line code, always throwing out my object-oriented design in favor of procedural, always turning my portable, reusable code into use-once code. I never stopped to think that their objections might have been born from decades of experience and life-long expertise.
Now that I’m officially on the other side of the fence, I’ve discovered a new rule: When your junior colleague thinks his fancy object-oriented code is simpler than your straightforward procedural code, you know it’s time to raise your rates. Because they’re not listening to you, so you know you can’t be charging them enough.
The Old Fogey Software Engineers is an exclusive club. Not just anyone is eligible for membership. Yes, there’s the age rule. You have to be pressing middle-age, at least, though the age limit seems to be lower than when I was a mere Whippersnapper. But it’s not really about age, nor about hair color. And it’s not about stubbornness. I’ve known many Whippersnappers, and even some Newbies, who were more stubborn than the Old Fogey Software Engineers. Rather, it’s about changing priorities, and about looking backward instead of forward.
So how do you know if you’re eligible to be an Old Fogey Software Engineer? Well, you know it…
- … when you’d rather deliver new features than play with new technology.
- … when you get pissed every time a Whippersnapper commits new code.
- … when you object to 517 lines of code, because you could do it in 10.
- … when the Whippersnapper who so carefully crafted those 517 lines claims his solution is simpler than yours, because “look at all the neat ways we can extend it!”
- … when he claims, yeah, your solution looks simpler, until we need to do X, Y, and Z. (Even though you have no immediate need to do X, Y, or Z.)
- … when you wonder, what’s the point of writing automated tests after the code already works.
- … when you object to splitting code between two modules, when a single module would serve just as well.
- … when you complain that you can’t find the code that does X, because a Whippersnapper has added too many classes.
- … when you think that inheritance, delegation, and design patterns are overrated.
- … when you object to using more RAM or CPU than you need to.
- … when you long for the days when software was released with no significant bugs.
The saddest thing about software engineering, as it is practiced today, is that it favors Newbies and Whippersnappers. By the time a developer is eligible to be an Old Fogey Software Engineer, he has usually decided to leave the ranks of his fellow developers, maybe become a consultant, or go into management. Or become a novelist.
I’m sure the above is not an exhaustive list. What other signs are there that you might be an Old Fogey Software Engineer?