How do you handle diving into an existing codebase?
Written by Alicia Barrett
Original post published here.
Six years after I graduated college, you’d be surprised how excited I was to land an internship. I spent months taking online web development classes until I finally decided to enroll in a pricey six month coding bootcamp.
The payoff finally arrived when I joined Juice Analytics as a front-end development paid intern. By week one, my development environment was set up. By week two, I had an introduction to the code base. By week three, I was part of a sprint with my first bug ticket to solve.
While interviewing for this internship I was asked, “How would you handle diving into an existing codebase?” I did not say that it takes a toll on me, that I feel incompetent and get frustrated — but that’s exactly how I felt.
I’d landed this amazing opportunity, but my mindset was getting in the way. I’ve talked to my manager, mentors and Women Who Code ATL friends about these feelings. It turns out, they’re normal, especially at this early stage of my career in tech.
Along with learning how to relish in new challenges, there are three other practices that are helping me move forward.
Embrace the documentation. I’m learning to use documentation as a primary source of truth. Tutorials are helpful, but not so much when it comes to solving bug tickets. In times where I’ve had to understand a file with hundreds of lines of D3 code or some Backbone.js view file, the documentation for these tools were essential to my progress.
Read the code. It’s tempting to skim, guess and check when I’m looking at so much code. But, I’ve wasted a lot of time making this mistake. In my case, reading the code line by line, followed by confirming what it does via its documentation of Chrome DevTools, is the only way I’ve been able to take an accurate approach to a task.
Don’t stay stuck. It’s impossible to avoid getting stuck altogether. That said, I’m learning that I should “timebox” each expected step it takes to reach a goal. There have been times when I don’t make the progress I wanted to make in the time I’ve allotted. When that happens, I’ve found that it’s extremely helpful to chat with my manager about what extra support I need to move forward.
Those are my main takeaways, for now. How did diving into an existing codebase for the first time make you feel?
If you’ve got some best practices — share them in a comment below!