Brett Slatkin, a software engineer for more than 10 years, took to his site to explain some of the frustrations he has with his role. Particularly, regarding the unexpected roadblocks he’s run into during his time in the industry. And it’s not just software engineers that get the short-end of the stick here – Slatkin also writes about what it’s like for tech leads and managers as well. So, what could be so awful about being a software engineer? Well, here’s a few:
There’s just too much to learn and not enough timeThe code is poorly writtenThe current abstractions are badI would have done this differentlyThe comments don’t make any sense, aren’t up-to-dateNo documentation about how something was built or why it works this wayThe build is slowThe tests are slowThe tests are flakyThere are no testsBad frameworks that require a lot of boilerplate, complex code, or confusing testsManagers want me to sacrifice code quality for development speedDependencies change without noticeDifferences between local dev, testing, and productionGetting ratholed on a problem or debugging for a long timeBroken or flaky tests that I need to modify but didn’t write originallyBugs or production issues that I have to deal with that other people caused, but they aren’t actively trying to fix right nowHaving to maintain someone else’s crappy code or systems after they leaveThings that aren’t automated that should beGetting interrupted constantly by teammates and my managerContext switching costsMy manager asks me to work on emergency projectsIn code reviews my teammates are assholes and it feels like a personal attackOther people are late in delivering the functionality that I need to do my jobOther engineers build their features or components too slowly
There’s definitely a lot out there to support many of these points. For example, there does seem to exist this disconnect between those on the technical team and those in other parts of the company – with people constantly interrupting developers while they’re working or demanding faster production while sacrificing code quality. And, for particularly good software engineers, nothing feels worse than feeling like your code isn’t up to par. Here are the rest of the reasons why being a software engineer can be a lot harder than you expect. Slatkin also lists several reasons for how awful it can be for tech leads and engineering managers. Photo: Flickr / katiew