Being a software engineer is at the height of some people's aspirations when they think of breaking into the tech world. However, there's an unexpected downfall that comes with being in such an in-demand occupation.
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 time
- The code is poorly written
- The current abstractions are bad
- I would have done this differently
- The comments don't make any sense, aren't up-to-date
- No documentation about how something was built or why it works this way
- The build is slow
- The tests are slow
- The tests are flaky
- There are no tests
- Bad frameworks that require a lot of boilerplate, complex code, or confusing tests
- Managers want me to sacrifice code quality for development speed
- Dependencies change without notice
- Differences between local dev, testing, and production
- Getting ratholed on a problem or debugging for a long time
- Broken or flaky tests that I need to modify but didn't write originally
- Bugs or production issues that I have to deal with that other people caused, but they aren't actively trying to fix right now
- Having to maintain someone else's crappy code or systems after they leave
- Things that aren't automated that should be
- Getting interrupted constantly by teammates and my manager
- Context switching costs
- My manager asks me to work on emergency projects
- In code reviews my teammates are assholes and it feels like a personal attack
- Other people are late in delivering the functionality that I need to do my job
- Other 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