Problem Solving
Problem solving is the act of defining a problem; determining the cause of the problem; identifying, prioritizing, and selecting alternatives for a solution; and implementing a solution.
- Identify the right problem
- Build up enough context that you can try to solve it
- Identify the best way to solve the problem
- Convince any relevant people that your solution is the best one
- Build the solution [this one step is where the actual programming happens]
- Get the solution into production
- Learn what was wrong with your solution
- Come up with improvements based on what you’ve learned
- Explain the solution to other people
- Maintain the solution over time as your needs change
All the other non-programming tasks on this list depend deeply on the way you interact with the organization around you:
- Whether you’re in an environment that motivates and energizes you, or saps your will to live
- Whether the problems that you care about are aligned with your team’s goals / mandate
- Whether your high-level problem-solving approach meshes well with the needs of your team
- Whether you’re able to build enough credibility to be trusted to solve important problems
- Whether you’re able to successfully navigate the environment (technical and organizational) that you’re trying to build the solution within
- Whether the people that need to use your solution to the problem are incentivized to adopt it
- Whether you’re able to explain your solution to the people that need to use it
Source