Hello there, I'm Carla, an Outreachy intern, working on the 'Improve the platform to link up medical facilities globally' project with Mboalab. Contributing to Free and Open-Source Software (FOSS) as a beginner can be overwhelming. Do not Fret, it happens to everyone.
For me, exploring an open-source codebase was like sailing a ship without a map. The project size and the complexity of the codes presented an overwhelming obstacle. However, it has helped to highlight my strengths of perseverance, ingenuity, and communal cooperation which have characterized my journey from confusion to understanding.
Upon my first encounter with the codebase, I found myself struggling with a mixture of files and folders without knowing where to start from, but my mindset of curiosity and determination to understand the codebase, made me embrace the challenge with an open mind and patience.
It got easier when my teammate volunteered to refactor the codebase, and this singular act from my teammate brought a lot of sanity and clarity to the Code space.
Method of Exploration.
Even after the codebase had been refactored, I still needed to research the best approaches for understudying the codebase. I decided to watch related YouTube videos and read research papers, blogs, and reviews about understanding open-source codebases. This YouTube resource helped me understand that open-source projects are generally made up of a network of interrelated modules, each serving a specific purpose. Instead of trying to understand the entire codebase at once, taking a more gradual approach is better and less overwhelming. I have progressively figured out the project's architecture by going through the code, function by function, and module by module.
Navigation Tools (GitHub):
I utilized the necessary version control tools like Git to navigate the maze. I was able to follow changes, comprehend the development of the code, and backtrack when needed thanks to Git and GitHub.
Community Collaboration:
On Tuesday 19th of December, 2023 Outreachy organizers hosted an in-chat session where interns shared their struggles and how they have been able to adapt and gradually overcome. It was so satisfying to see an intern talk about the same obstacle that I was going through (understanding a codebase). We instantly connected even though we were working on different projects. It made me feel this sense of togetherness and community, that I was not alone.
Also, the chat room created by my mentor became my virtual safe haven where I could ask questions, get answers, and gain knowledge from the experiences of others.
Advice to fellow Navigators
My guidance, which is based on my personal experience, discovery, and cooperation with other interns is directed to individuals and others alike who are presently struggling with an open-source codebase:
Start Small, Explore Gradually: Begin to familiarize yourself with specific modules or functionalities, then gradually expand your understanding of modules/functionality at a time.
Harness Version Control: Aside from Git there are several other version control systems such as Mercury. Use them to trace the evolution of the code and understand how it has evolved.
Engage with the crew (Community): Participate in discussions, ask questions, and collaborate with fellow developers. Even the most obscure areas of the codebase can be illuminated by the community's continuing collective wisdom.
Celebrate progress: Acknowledge and celebrate every milestone. Understanding an open-source codebase is a continuous journey, and every step forward is a triumph.
As my journey through the open-source codebase continues, I have developed a stronger understanding of the project, I also bring with me a deep appreciation for the collaborative spirit which is the essence of the open-source community. You might struggle a lot as you try to understand a codebase you intend to contribute to but with curiosity, patience, perseverance, and a supportive community the journey becomes a rewarding experience.