# Making decisions effectively as software engineers

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.
