I was recently attributed an opportunity to examine a code base and add some functionality to it.

In the end, let's just say it started off great. Then I struggled.

I'm still trying to figure this out, yet I'm learning so much along the way.

The whole process is similar to solving a coding challenge.

Here are some key hind-sights from my experience:

Explore

1. When presented with a new code base, don't feel overwhelmed.

Take a deep breath and count to 4. Make the thing run locally and play with the app first and foremost. This should take no more than 20 min to get up and running. Explore and discover all that the app has to provide.

Define the problem

2. Figure out what functionality or expectations you have for how this app should run.

What do you need to add or remove from the functionality? This is the part where you find and define the problem. It should be clear to you what components or services will need to be modified or added.

Plan your actions

3. The clearer you understand your problem the easier it will be to execute a solution.

You will find the code of interest that needs changing and modify it. I've had to do a lot of trial and error on this. A lot of the time was spent on this step. I spent time looking at syntax, documentation, APIs, and examples for how to implement my plan.

Review and Test

4. Save and commit changes.

Review the app again. Test your functionality and look. When testing, think of all cases from user perspective that could be used on the app.

Iterate

5. Do it all over again.

From bird's eye view perspective, I hope this process can be helpful for you in solving your programming challenges.

The code was built in Angular and the backend was built with Java and Maven. So language was Typescript, JavaScript, and Java.

Is there anything I missed?

This post is also available on DEV.