January 09, 2020
When I started my self-taught programming journey, I followed tutorials, read countless blogs, and built projects on my own for two months. Though I built a solid programming foundation, I was lacking crucial competencies of being a great software developer: collaborating, communicating, and building with a team. I closed this gap by joining Chingu, a remote program that matches you with other developers to collaborate and launch real projects.
I met every Monday morning with a team of three web developers for weekly standup calls. Together, we brainstormed, overcame obstacles, laughed, and learned. In six weeks, we deployed MoTo. Momentum is a popular productivity Google Chrome Extension; MoTo is a clone of Momentum with additional features, a pomodoro tracker and Most Important Tasks (MIT) feature. We even launched our product in the Chrome Extension Store!
During our product ideation phase, we brain dumped all our feature ideas on a shared Google Doc. We then prioritized our features based off of our six-week time restraint, our current programming knowledge, and predicted value brought to the user. After some discussion, we trimmed down our list to a set of ten MVP and two bonus features. Scoping out a realistic MVP allowed us to account for unpredictable issues, debugging, and deployment. Ultimately, not only did we complete our MVP by the project deadline, we also launched it in the Chrome Store, which was a bonus feature.
It's ok to ask questions if you don't understand something! My teammate, Rafael, once patiently walked me through a Git issue I had in thirty minutes. This is something that I probably would've kept Googling for at least an hour if I hadn't asked for help. Additionally, some concepts are more easily conveyed through visuals instead of words, especially design. When we needed clarification about a design idea during meetings, we often followed up with a quick sketch to effectively share our idea.
Knowledge management is the creation, sharing, and organization of information. We used Google Docs as our central hub for organizing and collaborating on non-code related documents. We shared one Google folder which contained essential documents such as our brainstorms, meeting notes, and blog posts. Project management is the initiation, planning, execution, monitoring, and closing of a project. We used Zenhub, which was an effective tool because it integrates directly with Github and allowed us to easily update and track our issues. Lastly, we also followed agile methodology, which allowed us to work leanly and iterate quickly on our designs and feature development. Establishing these processes and structures upfront during our first week allowed us to work effectively and efficiently.
Our main communication methods were our weekly standup calls and Discord team channel. Our weekly calls were the perfect opportunity to discuss roadblocks, clarify questions, and determine next steps. We used Discord for all of our asynchronous communication. Updates, questions, successes, and challenges were always actively being discussed in our group chat. Clear and active communication allows for common understanding and a clear path forward.
I was incredibly lucky to have worked with three extremely smart and supportive individuals. We leaned on each others strengths, solved problems together, and ultimately launched a product together. Many thanks to my wonderful team, Ola, Ming, and Rafael for making our first team web development project a smashing success!
This was my first time collaborating with other programmers to build a real project, and I was nervous to start! Despite the nerves, I’m so glad I joined the team. We finished our project with flying colors, and through it, I’ve gained invaluable technical communication and collaboration skills that I wouldn’t have been able to achieve on my own. I now also have made incredible friends I continue to learn with!
I would highly recommend programming with others as a beginner programmer because it is an excellent way to apply your newfound coding skills, improve your technical communication skills, and see a project through from start to end. If you’re looking for people to collaborate with, Chingu is a great place to start.