3 ms·
The troubling thing, at least for me, is that as I get older I realize that most puzzles one encounters as a software engineer are related to non-problems. Whe
by cesarbs 11y ago
The troubling thing, at least for me, is that as I get older I realize that most puzzles one encounters as a software engineer are related to non-problems.
When I was fresh out of college I would jump at any such puzzle that was presented to me and would not sleep until I had solved it. I never stopped to think about the larger picture where that puzzle was embedded in, and if it actually required solving or if a more pragmatic solution was at hand and would lead to the same outcome.
Now that I have some years of experience in the industry, I realize that 80% of the "puzzles" I face at work are bullshit. They are usually complicated situations generated by organic and uncontrolled growth in codebase complexity that lead to horrible scenarios requiring a lot of brain power to solve. The thing is, if things had been more properly thought out, those situations would have not occurred in the first place, because the code would have a lot more sound architecture. But because it was allowed to grow without thought and refactoring, it now offers many "puzzles" that the younger people in the team don't even question at a more fundamental level.
Sorry for the cynicism but it's honestly the way I feel about most of the work I do these days. Too much in terms of stability, maintainability and soundness is sacrificed for performance and for pushing things out the door asap.
- usrusr 11y agoAfter the first two paragraphs i was deeply convinced that you were questioning the products those puzzles were part of, not just the way those puzzles got in there. The cynic in me likes to widen the scope one step further, then those figurative 80% are the fraction of software created that is basically "twitter for pets" (or some transitive dependency thereof, technologically or via business). It's easy to focus on one of the many exciting puzzles hidden inside a "twitter for pets", but if you take a step back (and yes, that's one of the perils of age), well, twitter for pets.
- bad-joke 11y ago> They are usually complicated situations generated by organic and uncontrolled growth in codebase complexity that lead to horrible scenarios requiring a lot of brain power to solve. Agreed. The deeper I get into the software field, the more it feels like choreography.
- majewsky 11y ago> Now that I have some years of experience in the industry, I realize that 80% of the "puzzles" I face at work are bullshit. Amen, brother. Just four years of work experience here, but I can totally confirm that. The actual product is built in a week, then it's multiple months of "this department over there needs a special case implemented pronto".
- reledi 11y agoEvery line of code added needs to be maintained and makes adding future code more difficult. As our job is to build software, we are too eager to increase technical debt without knowing it. Always ask "how can we avoid building it?" When you realize it really does need to be built and it is the highest priority, think about how it can be built while keeping cruft down. You can still be fast while keeping the codebase clean but it requires constant refactoring and review and a common understanding between team members.
- cesarbs 11y agoThat's pretty much my personal approach to writing code (with special devotion to the "how can we avoid building it" part). I wish everyone I worked with had the same attitude.
- codeisawesome 11y agoYes, I'm not old but I am easily distracted when I'm having to solve problems created by the imperfection of human minds and aren't part of "the universe", by nature. Of course, as I type this, I come to the shaking realisation that Humans are also a component of the Universe. I need to reevaluate my emotions.