Decision-Making: The Most Undervalued Skill in Software Engineering
hackernoon.com
hackernoon.com
Anecdotally, when I make bad decisions on the job it's almost always due to my emotional state. Whether it's the stress of an impending deadline, lack of sleep, feeling of inferiority, etc.
Even when I'm aware of a dangerous emotional state, it's difficult to make good decisions. Proactive prevention (get enough sleep, exercise, meditate if you're into that) has been the only solution for me. I'd be curious to hear more preventions and especially interventions that work for others.
Some of the most important ones I think are: awareness of expertise level, adequate time, considered alternatives, slept well, not too hungry, aware of general cognitive biases.
I feel like running through this brief checklist (and checking it twice!) for important decisions has helped me immensely.
---
[1] https://alexpetralia.github.io/2017/11/27/NL-2017-11-27.html
My first thoughts of business decision making were about complexity of relations. Myself, I'm tasked to maximize certain business goals, armed with heuristics from management. All while our consultancy's clients are trying to maximize my time and minimize their expenses.
Color the emotional state of everybody and now you have some good and bad choices.
I like the Harvard Businee Review (HBR.org) for articles that get down to detail, though articles are really tuned to leadership in all business.
Yes, there is more to come on prevention and interventions. To get notified, feel free to follow me (https://medium.com/@amandakwoo) and Criticide (https://medium.com/critically-deciding). In the mean time, one way to start making better decisions in software development is the information we use, specifically estimations we produce (https://hackernoon.com/how-to-do-smarter-estimations-7d67f27...).
I've also added a question to the end of the article to hopefully clarify that the article intent was more for conversation rather than a 'how to'.
Writing software isn’t that hard. The hard thing is knowing what software to write.
This is one thing junior engineers misunderstand about senior people. They’re not necessarily better coders, they are generally better predictors and decision makers.
Agreed that the most senior people have experience than the junior engineers but that's obvious. Other than previous experience, what about senior people makes them better predictors and decision makers? According to research studies by Philip Tetlock, who conducted one of the largest and longest running studies of the performance of experts at predictions, his results showed that statistical models outperform "expert judgement".
Btw, this article was just sharing a quick thought and not a "how to", hence the structure. If you're interested in something more substantial, feel free to read some of my articles such as how to produce more reliable estimations (https://hackernoon.com/how-to-do-smarter-estimations-7d67f27... - I've also added this link to the article for those who want something more substantial). We use estimations to make decisions but they're often misleading because the way we produce estimations lacks discipline.
Also note that I do plan on sharing some preventions and interventions which can better our decisions.