Whether you're already acquainted with Chingu.io or just discovering it now, this article has you covered. Chingu is a non-profit organization dedicated to accelerating the careers of technology enthusiasts through collaborative projects and skill-building initiatives. One of Chingu's flagship programs is the 'Voyage,' a six-week immersive event that unites teams to collaborate on group projects. Tailored to different project tiers, each Voyage experience offers unique challenges and learning opportunities. In addition to this, they also facilitate weekly pair programming sessions between developers, fostering collaboration and skill enhancement in a supportive environment. I highly recommend signing up and participating in both of these programs. In this article, we'll explore the Voyage experience, sharing insights and reflections from my firsthand participation in this transformative program.
Although I first came across Chingu in 2019, it wasn't until 2023 that I made the full commitment to sign up for a Voyage. In order to sign up for a Voyage you must first complete a solo project. When I initially discovered the program, I found myself unable to meet my own project submission requirements. Consequently, I regretfully postponed my participation for several more years before finally making the time to take part. However, I'm sincerely grateful that I did, as it has led to invaluable friendships and opportunities for personal growth. In my first Voyage, we were given a product of a Ad Lib generator. It was such a fun experience to implement and design with our team.
Interestingly, our team was composed solely of developers, as the designated product owner was unable to join us. Because of this, I decided to take on a lead role and began learned the processes of scrum and agile. Even without a User Interface/Experience designer, another developer stepped up and created a Figma file for us to use. This marked my first exposure to Figma, providing me with enlightening experience.
I recall a time when we needed to manipulate data in a spreadsheet. In such instances, I'd typically resort to manually adjusting the data within the spreadsheet program. However, when a similar task was assigned to our team, one developer opted for a Python solution. It was truly remarkable to see our team's diverse skill set allowing us to leverage an entirely different programming language for the task at hand.
In each Voyage, finding time to meet can be challenging due to the voluntary nature of participation. It's crucial to acknowledge that we all depend on our teammates' time commitments. Therefore, please ensure to allocate the agreed-upon time for participation each week. Regular communication from the start is key for efficient collaboration throughout the Voyage.
So far, we've only heard about the positives of Chingu and why it's worth trying out. However, it's important to acknowledge that Chingu does have its flaws, which may stem from its free nature. One of these flaws is the potential for uneven effort among participants, which can vary depending on individual motivation and time availability. For instance, I personally invest significantly more effort and time into the Voyage than what is strictly required.
Scrum and Agile methodologies can sometimes prove frustrating for developers, and you may discover this firsthand. As developers, our natural inclination is to dive into writing code and address questions later. However, effective team collaboration demands thorough planning. While it may be tempting to swiftly agree on necessary features and dive into work, failure to discuss implementation details can lead to prolonged conflict resolution within the codebase.
In our first voyage, we successfully maintained effective planning throughout the initial weeks, although in retrospect, we could have commenced coding slightly earlier. I advocate for teams to prioritize planning while also dedicating some early time to practice. Drawing from my experience as a seasoned Voyager, I strongly advise beginning practice sessions for code pushing to your repository and experimenting with code early on. Delaying these activities until the third sprint inevitably leads to slowdowns. While our app ultimately came together excellently and surpassed project specifications, I found myself writing significantly more code than my teammates, which I consider a personal shortfall in a group project.
I choose tier one projects because I enjoy sharing knowledge and skills with others. However, in my first project, I realized that while I thought I was helping my teammates learn, I was inadvertently stifling their creativity. My mistake was pushing for the adoption of a model-view-controller (MVC) pattern. Although I successfully guided my teammates in implementing this architecture, they struggled when it came to adding additional features, feeling overwhelmed and unsure which steps to take from there.
In my second Voyage, I assumed the role of Product Owner and initially guided the team effectively to success. However, I repeated the mistake of pushing the MVC agenda, which the team adopted. While I assigned tasks aligned with our end goal, some developers struggled with the concepts. Eventually, one developer dropped out for reasons unknown. Feeling the need to contribute as a developer, I stepped in to assist. However, developer participation dwindled for similar reasons as in the first Voyage."
These two experiences significantly shaped my approach to this concept. In the third voyage, although I continued to advocate for Model View Control, I refrained from enforcing it as a mandatory framework. Understanding that it could be overwhelming for some team members, I took the initiative to create a comprehensive guide on it for my team, which I later shared with readers here. Currently, our project is still ongoing, and as a team, we collectively decided not to leverage the MVC pattern. This decision aligns with my goal of fostering collaboration within the team. I'm delighted to provide my team with a seasoned perspective on various matters and feel a strong connection to them as a result.
Our team has just commenced the fifth sprint out of six. Our objective for this week is to establish a fully functional Minimum Viable Product (MVP). So far, we've been making steady progress in our development efforts. We've adopted a strategy of planning to accomplish a little each week, while also taking on additional tasks to further propel our project forward. We often leverage pair programming to solve coding challenges together.
The Chingu Voyage may be free in cost, but it certainly demands a significant investment of time. As the saying goes, you can only reap what you sow, but the opportunity for substantial growth and learning is truly phenomenal. If you're weary of solo work and passive learning through tutorials, consider giving Chingu a try. I'm eager to see you in Discord, and I hope you find the experience as enjoyable and enriching as I have.