3 ms·
Yes, I have come to have a hatred towards software engineering. I will probably always be a software engineer because it's still a better job than many, and be
by ravenstine 4y ago
Yes, I have come to have a hatred towards software engineering. I will probably always be a software engineer because it's still a better job than many, and because I like programming. But holy hell, there are so many problems with this profession and a real lack of interest within the industry in terms of actually maturing it.
Pretty much every problem an engineer deals with on a daily basis is either self imposed or imposed by other engineers. Most of the problems aren't even real problems because most real world issues have already been iterated upon. Most of what we do is fixing our own mistakes. Being a software engineer sometimes feels like being a self-licking ice cream cone because, if it weren't for all the new frameworks and the lack of effective team organization, a substantial fraction of us would have nothing to do. Well, besides hobby coding, which I guess can be a good thing, but I don't even know that many programmers who actually code anymore as a hobby.
What needs to go away are most of the paradigms that still get pushed around.
The tools themselves are actually pretty good. We have speedy JIT languages, package managers on every OS, no more Internet Explorer, awesome free IDEs, and more help and documentation than ever. What's gone horribly wrong is believing that we need more tools for every task domain. A mistake we've made is believing that X is "considered harmful" and to only apply the "best practice" in every nook and cranny no matter how insanely complicated things become. We've made the mistake of believing every problem is a matter of scale and almost never poor engineering. Poor engineering? Impossible! That is unless it's that of the guy who came before me and left the company.
I can go on. Why do we still use frAgile methodologies all over the place when no one can adequately measure whether it's more effective than another workflow? Why is it that every single company I work for ends up using Scum methodology but never bothers actually measuring whether performance improved as a result? Why are we so opposed to documenting our work? Why do we keep bending over backwards to make websites behave like applications and still screw it up most of the time? Why are we obsessed with code coverage when it's only weakly correlated with the number of bugs that manifest? Must we keep adding more and more lint rules?
To top it all off, it doesn't matter what you think unless you are one of the 10% that has a real say in how a codebase is going to take shape. The reality is most software engineers have limited capability to take the initiative for change.
But hey, it's a good profession no matter how crazy it can drive you sometimes. I'm not saying people should do it forever, but we can do a whole lot worse.
At the same time, we ought to be doing a lot better. With the exception of AI/ML, I believe software engineering is in a bit of a dark age.