Bojan Veljanovski's Tech Blog

Problem-Solving Guide for Developers

Guides

The most common mistake developers make when solving problems is immediately starting with writing code for a solution that is not properly thought out for a problem that is not clearly understood.

There are countless ways how to approach problem-solving. In this post, I describe one approach with a couple of tips for software developers.

The process is made of four steps:

  1. Analyze - Understand the problem
  2. Plan - Determine how to resolve the problem
  3. Implement and test your solution incrementally
  4. Review and refine your solution

Step 1: Analyze - Understand the problem

General tips:

If the problem is a bug caused by your code, try to reproduce it locally and in other environments as well. Is the bug consistently happening everywhere, or is it tied to a specific environment with a specific state of the database?

If it's a bug caused by the usage of a third-party service or a library (e.g., Stripe, SendGrid, RabbitMQ, EntityFramework, etc.), do research using the official documentation, discussion/support forum or the GitHub repository of the service/library. Also, you can research on the web or on chat AI tools (e.g., Bing Copilot) by using the specific error message or code.

And if it's a new feature request, open and read mindfully any related documents, specs, attachments, discussions, or comments for the given feature request. Then, explore the codebase in the area where the feature is being requested. Make sure you get familiar with the code, especially if it's unknown to you. This will help you understand the problem better and ask better questions.

Some problems require the majority of the problem-solving time spent on analysis, and others less so. Whatever the case, make sure you timebox this activity and avoid getting into analysis paralysis.

Step 2: Plan - Determine how to resolve the problem

Step 3: Implement and test your solution incrementally

Step 4: Review and refine your solution