3 ms·
Most respondents here seem to be focusing on language/framework/tool choices, but decision fatigue is also much more fine-grained. Lots of people here saying to
by UncleOxidant 6y ago
Most respondents here seem to be focusing on language/framework/tool choices, but decision fatigue is also much more fine-grained. Lots of people here saying to choose "boring" so that you supposedly don't face decision fatigue, however, even within a boring language or framework there are lots of decisions to be made as you develop software. If you're doing OO development, for example, you're constantly deciding what your objects/classes should be, what objects are responsible for what actions/tasks, what's the inheritance hierarchy(or maybe avoid inheritance altogether)? Even down to how you want to organize code into files. And then there are data structure choices: Do I want a linked list here, or maybe a binary tree would be better? I think a lot of folks here are saying "choose boring and you're decision fatigue goes away" but I don't think it's that simple.
Decisions about architecture, code structure, algorithms, data structures, etc. are an inherent part of software development. That's not a bad thing per se. And yes, you will experience fatigue - it comes with the territory - it's partly why we get paid the "big bucks" (for some value of "big"). The best way to deal with it? Take a break. Go for a walk. Get away from it for a bit. Soften your focus. Take some time to play - write some fun code for a personal project where it doesn't matter if you make a non-optimal choice. If need be, take a sabbatical for a few months or even longer if you're experiencing burnout.
(30+ year Software Developer)
- glitcher 6y agoGreat point! This is exactly the type of decision fatigue I experience in my day to day work. It's not very often I have to consider an entire new tech stack, or even a major component of one.
- bpyne 6y agoYes a hundred times! Part of the fatiguing part is that you have to move frequently between big picture and highly detailed thinking. Trying to keep functional requirements, design, and implementation detail in mind constantly drains mental resources for some reason. I'd love to see a study on the number of decisions made per work day for different fields. I have a suspicion that software development is near the top.
- fwip 6y agoI'm reminded of Siderea's excellent essay: "What Software is Made Of" https://siderea.livejournal.com/1241996.html https://siderea.livejournal.com/1241996.html > A computer program is a specification of the behaviors of an inanimate object. And since inanimate objects, definitionally, do not have behaviors of their own, every single one of those behaviors specified in a computer program – and every single aspect of every one of those behaviors – has to be deliberately chosen and imbued into the object by code. Every single behavior, at every level of abstraction, represents a decision as to what the program is to do in that moment being described. (Yes, the page is ugly. The words are worth it, or copy-paste into your favorite editor).
- wolco 6y agoThat's why the opinioned framework became a big thing. If I agree to follow how you do things a certain way you promise to make my life easier.