Problem-solving for developers (4 steps to solve)