Making decisions effectively as software engineers

Making decisions effectively as software engineers

“The risk of a wrong decision is preferable to the terror of indecision.”

Many times as software engineers, we are tasked with making key decisions that drive impact on various systems. Here are a few things I have learnt over the years:

  • Think - Act - Reflect - Move forward
  • Reopen the door only when new information knocks

  • Overthinking ≠ Problem-solving

  • Embrace informed ignorance

    • You can't read the future, you can't read minds, and you can't know everything. So don't try. Thinking harder doesn't activate the crystal ball. Don’t assume without some facts/ basis

    • Observe uncertainty, don't overreact to it. Acknowledge the presence of uncertainty and accept that impermanence is inevitable. Realize that uncertainty brings benefits, like unleashing creativity and resilience.

  • Replace "what if" with "we’ll see" to escape analysis paralysis. Never underestimate experimentation

  • Start acting and don’t get stuck on thinking

  • stop taking small details and turning them into questionable conclusions. Stop making a mountain out of a molehill

  • What is the realistic cost of being wrong? When you can lower the stakes, you raise your ability to get mentally unstuck.