Photo by Annie Spratt on Unsplash
⚠️ Disclaimer ⚠️
Saya bukanlah seorang veteran dalam hal collaborative works. Saat ini saya masih berada di tingkatan junior dev 😂. Point dari tulisan ini adalah sharing pengalaman dari seorang junior dev (saya) ke junior dev lain.
Disclaimer ⚠️
I'm not a veteran when it comes to collaborative works. Currently, I'm still at the junior dev level 😂. The purpose of this article is to share the experiences of a junior dev (myself) with other junior devs.
I've been delving into web development for almost a year, but I haven't had the opportunity to work on projects with a large group of people. The projects I've worked on so far have been my own solo endeavors without any other contributors. It was only when I started working that I had my first experience collaborating on a project. For the past three months or so, I've been working on a project with a small team (around 10 people). As someone who had never been a contributor to someone else's codebase before, I felt incredibly unprepared. Impostor syndrome thoughts were buzzing in my head, like "What if I end up breaking the existing codebase?"
If any of you are also feeling anxious about working on your first collaborative project, I'll share my experience (which is actually quite ordinary). Here, I'll share my experiences from the perspective of a junior dev to other juniors who may be going through the same thing. Just imagine we're casually chatting at our favorite coffee shop, so it feels more relatable and not like a lecture or anything 😁😁
In this project, I'm an additional team member, which means the project was already in progress before I joined. The workflow can vary for different companies/projects. This time, I'll briefly explain the team workflow of the project I'm currently working on. It might give you an idea.
Daily stand-up is a term for a short meeting that takes about 15 minutes every morning. The daily stand-up consists of reports from each team member, including what they accomplished yesterday, what they plan to work on today, and whether there are any blockers or not. For me, the stand-up meeting is important because it helps me know what I need to work on for the day. As a junior and a new team member, I often wait for the product manager to assign tasks to me for the day.
The product manager is responsible for assigning tasks in this project. Tasks are usually assigned directly to team members during the daily stand-up. In addition to being assigned during the stand-up meeting, tasks are also often given in the middle of the day. For example, when there is open feedback from a QA engineer, usually in the form of bug issues, the product manager often assigns those QA feedback tasks to team members (either front-end or back-end, depending on the issue) to be worked on immediately.
Team communication is crucial when working on a collaborative project. Within the scope of work, each project will have its own group chat. The communication medium can vary, including Telegram, WhatsApp, Slack and other messaging applications. In this project, the team uses Slack, which has channels such as dev-discussion
, daily-discussion
, fe-discussion
, and so on. In addition to group chats, we often communicate directly with other team members for quick discussions, especially during the bug-fixing process. For example, we might directly message the back-end team to ask which API should be used for Feature A
, and so on.
For me, Git workflow is the biggest challenge. Before joining this collaborative project, my Git usage was limited to basic commands like git clone
, git add
, git commit
, and git push
. I was more afraid of making a wrong push than not being able to work on the project. If I made a mistake in committing and pushing, it could affect the production server. But when it came to actually working on the project, I was confident in my abilities 😅😅
The first thing I did a few days before joining the team was to learn Git for collaborative work. I started by learning commands like merge
, rebase
, fetch
, pull
, etc., as well as best practices for Git workflow. I learned from this post and this one.
Every company/team/project has its own rules regarding Git workflow. My advice is to follow them carefully and if you're confused, ask your team lead directly. Git workflow usually involves branch naming and push and merge requests. In my current project, team members develop in specific branches (bugfix or feature). Only the team lead can develop in the dev branch. After finishing the work, we push
and make a merge request
(or pull request
on GitHub) and report it to the team lead for review. Once it's approved, it will be merged.
Install the GitLens
and Git Graph
extensions in VSCode. I'm a visual person, so it's important for me to see the Git flow graphically. After installing Git Graph, I feel more comfortable working with Git. And GitLens has several useful features, such as git blame
to see who wrote the code and file history
to track changes made to a file.
Seriously! If you're unsure about something, it's better to ask. You can ask your team members, your team lead, or even your manager. I remember during the first two weeks, I asked my team lead a lot of questions. Some of my questions might have seemed trivial to them, but hey, I'm still a junior, and if I don't ask, I won't learn. There were a few questions that I felt embarrassed to ask, but what could I do? I didn't know, and pretending to know could potentially disrupt the production server and burden the team. Thankfully, my team lead was kind and patient enough to explain things to me. Thank you, Man! 😘🥰
In conclusion, approach your work with enjoyment and don't be overly afraid. Once you start working, you'll gradually get the hang of it. The important thing is to believe in yourself, and if you're unsure, ask your team lead or other team members. And don't forget to have fun! Hehehe 😁😁
Even the greatest was once a beginner. Don't be afraid to take that first step.