I remember in the whole of my work experiences when I faced with the new-comer developers, they had a big challenge to be a productive developer in a short time. Same as others, it would be very challenging for me and sometimes I’ve read other developers experiences and watched some movies in Ted, and YouTube about other people techniques. I wanted to share with you some of my techniques which were very efficient for me.
First of all, I took some documentation and access for source, database, and QA process for running the development environment to gain some ideas about the project. I tried to write some simple test over the source codes and try to communicate with my coworkers without disturbing them.
I made a private board on Miro and wrote some workflow and scripts about my journey, I didn’t spend more than 3 days for this step and I involved my self from the first hour. Besides, I didn’t want to make huge this step for my self.
Secondly, I started to ask some questions from my colleagues about high-level stages of the project, I tried to spread my questions between more than a person because I wanted to take equals time of my co-workers and catch up different approach of different people that completely know about the projects.
I tried to understand about project eco-system, high-level plan for the team, the easiest business case scenario, some pitfalls part that can stuck me, sensitive parts of the code, packages and frameworks used and some details that are necessary for diving into the code.
Next, I am eager to Mob Programming but because of corona-virus it wasn’t easy so I suggest to one of my co-workers to give me time as Pair Programming via Live-share, I tried to lunch for 3 days and each days maximum one hour, I divided our collaboration on 3 days because I didn’t want to make my co-workers tired and miss a little of my focus.
I highly recommend to you read about Gherkin (if you aren’t familiar with this concept).
Last but not least, According to Gherkin, I implemented for my self some scenarios of some part of codes that I should diving more on them, so, I defined three parts as Given, When, and Then and I tried to describe an initial context in Given step, an event in When step and explain an expected outcome in Then step.
It helps me a lot to understand the certain need of each module, controllers, packages, and ….
Finally, I had to understand a big project that implemented with Laravel. My last experience with PHP and Laravel was about 7 years ago so I refreshed my PHP knowledge with Koans technique(A koans are essentially a simple problem where the programmer is asked to “fill in the blanks”), you can find many samples for different areas with simple google.