It is a nightmare for the developers who have just landed on the codebase. At first glance, it may be hard to understand how all the files are working together without knowing some more context.

1. Read the Project Documentation

The first step I take when starting a new project is to read its documentation or README files. This allows me to get familiar with the project's setup and codebase. The documentation gives you a high-level understanding of the project's purpose, goals, and functionalities.

None

2. Read the Code

Run the project and use the debugger to follow the execution of the code. Check for unit, integration, or functional tests in your project. Try to understand the logic of the project and the code itself. But don't spend so much time, you will go deep after you start writing code. For now, what is important is to understand the structure of the project and how everything is organized.

It's always a good practice to start with the basics and understand the architecture before diving into the codebase.

None

3. Pair with other Engineers

Accessing the knowledge of an experienced developer who has already worked on the codebase can be helpful. By pairing up with this person, you can gain valuable insights into how certain things work and how to implement particular design patterns, testing processes, and third-party code that are relevant to the project.

None

4. Be Curious, Don't Criticize

When you're dealing with legacy code, it's important to remember that it was written by developers who made decisions based on the context at the time. Criticizing it can make people feel attacked and can hurt collaboration. Instead, approach it with empathy and ask questions to understand the thought process behind it. This can help you learn from past mistakes and get insights into the project's evolution. By doing this, you can cultivate a learning mindset and promote collaboration, which is critical to the success of any project.

None

5. Use the END Product/Service

Before you start writing code, try to explore the platform what it does. Ask yourself questions like:

  • What is the main goal of this project?
  • Who is the target audience?
  • What are the key features of the MVP?
  • Are there any existing platforms or competitors we can learn from?
  • What technologies will we use and why?
  • What development methodology will we follow?
  • How we will use Git?
  • What are our coding standards and testing procedures?

Happy Coding !!!