Chingu Voyages - make the best use of your voyage.
Tags: beginners, career, codenewbie, learning
Published: 2023-04-28 00:52:29

## What is Chingu?

If you are a self-taught developer or even a bootcamp graduate, you’ll likely find that while you may feel confident in your technical skills, the idea of collaborating on a project with other developers is a reminder that you are still relatively new to development. Perhaps more importantly, you may be worried that when it comes to looking for your first job as a developer this lack of experience puts you at a disadvantage. And if you happen to get that job…you may feel like without this experience you’ve been thrown in the deep end and overwhelmed with the day to day tasks of working in a defined workflow with other (more experienced) developers.

Chingu can help fill this gap. Chingu is an organization which facilitates collaboration on development projects for aspiring developers. They group members with similarly matched skills into small teams of 4-5 (in my experience) who work on a project over 6 weeks following an agile methodology. It is free but the “price” you pay is committing to the project and your team. Find out more on their website https://www.chingu.io/

The idea is each Voyage consists of six week-long sprints. Each sprint should ideally end in a further iteration of the app you are building. To help achieve this, you meet with your team and keep in touch regularly on your team’s Discord channel. To help get the most out of these meetings and discussions, Chingu provides quite a lot of useful preliminary reading assignments to teach you best practices and useful tips when it comes to building an app in collaboration with others.

According to Chingu, the goals of the voyage are to improve your tech knowledge/abilities and to improve your “soft-skills”, the latter being given particular emphasis, and the latter being what I’d like to comment on in the rest of this blog. Each project has pushed me out of my comfort zone a little bit with regards to different development tools, but typically on any personal projects I work on one of my goals is to make use of something new and incorporate it into the project somehow. So the “working with others” bit of Chingu is its biggest advantage.

My experience on the voyages I’ve done has been positive and worth the time and energy. That isn’t to say there weren’t imperfections and even a couple of frustrations. But if the rationale is to use this as a stepping stone to working professionally on a team, I’d have felt let down if everything had gone perfectly. That wouldn’t have mirrored the real working world whatever the industry. 

However, having done a couple of voyages I can now reflect on how those imperfections impact a project (assuming they happen generally, which I am) and how addressing them can improve a project. 

## Treat developing the “soft skills” as an explicit goal.

It almost seems like the actual app your developing is in some sense not the central thing here. It is instead an excuse to practice getting work done with other people. Much in the same way as building a “rock-paper-scissors” game or a simple to-do list is an opportunity to learn some basics of a programming language rather than a goal in itself, with all due respect to “rock-paper-scissors”. So what are the soft skills and how can you consider them as goals?

### Some of the soft skills in this case:

- Proposing ideas to others
- Discussing advantages / disadvantages (of project ideas, coding styles, tools etc…)
- Communicating constructive criticism
- Taking criticism (but not taking it personally)
- Clarifying things / dealing with miscommunication
- Working through disagreements
- Showing enthusiasm

Because of its horizontal non-hierarchical structure, it can be a challenge deciding how to go about making decisions as a group in Chingu voyages. The lack of leadership (which isn’t necessarily bad) creates some awkward meetings that sometimes seem to lack purpose (even though in most cases everyone almost certainly has an idea of what needs to be discussed and some ideas to contribute). 

The way around this is to face it directly, as a group. Discuss some ground rules for how to conduct yourselves together as a team. The first meeting is very important to establish rapport and Chingu has some guidelines on how to make the most of this meeting. Here are my additions.

- Show and tell: One of my teamates suggested that we each show off something we have built before. This was helpful to see where everyone’s skills were at and it got everyone speaking.
- Why are you doing a Chingu voyage?: Everyone probably has the same broad goals but it is worth finding out if people fall into one of the following two categories:
    1. Those who would like to work mainly within their comfort zones regarding technologies as they get to grips with using a wider range of Git commands and generally accustomed to reading / using other people’s code and writing “in front of others”. (i.e. working collaboratively is very new to them and this is what they want to learn).
    2. Those who might still be working on the above but are very interested in getting outside of their comfort zone with regards to using new or unfamiliar tools.
    
    This can help when it comes time to decide on what tech stack to use and how to divide the work, i.e. is everyone going to be working with unfamiliar technologies and therefore will need more time to do what otherwise might not have taken long? This will allow you to be more realistic about what you can achieve in six weeks. Also, it gets everyone speaking.
    
- Proposing ideas: Here you can agree that when making suggestions (what to build, tools to use, how to go about doing things) it would be in everyone’s interest to not say yes until as a group you have identified one positive aspect and one negative aspect of whatever the suggestion is. If you agree and formalize this as part of your ‘workflow’ it won’t feel like criticism when someone points out the potential drawbacks to the suggestion. In a sense it abstracts the criticism and depersonalizes it.

Given that the first two weeks are dedicated to discussing and designing the project and coding may not take place until the start of the third sprint, it is very important to first develop the rapport and meeting “schema” before anything else. If this doesn’t happen, It’s possible you’ll rush to get into the coding (where everyone will feel comfortable) before proper planning has been done and the project may suffer. Additionally you may find that not everyone even has the same understanding of what the project is meant to achieve, nor have they established the tools for discussing this, and the project will suffer. 

The above isn’t really that complicated and if you happen to be with a group made up of people who have enough work experience or maturity to just get on with things that’s great. If that isn’t the case, and given this particular type of work experience is by definition new or newish to Chingu members it likely won’t be the case, then the above points are worth working on in much the same way as you work on a project. 

Once your voyage has finished, take the time to reflect on to what extent you personally helped to create a productive working environment (don’t be too hard on yourself!), what went well and what you would like to have happen differently next time, and then sign up for another voyage and keep improving in this area of development as well.