What I Learned From Collaboration In Building An E-commerce Product Page
Tags: webdev, beginners, watercooler, codenewbie
Published: 2022-09-04 13:20:26

Hello Fellow Codenewbies 👋,

On February 2022, the Virtual Coffee community held a monthly challenge of [pairing](https://virtualcoffee.io/monthlychallenges/feb-2022). The goal was to have 5 x 25-minute Pomodoro pairing sessions by the end of the month.
The pairing can be anything from a project that we need some help on, an open source issue, or solving code challenge problems.

I participated in this challenge by teaming up with a talented frontend developer, [Reda](https://twitter.com/redabaha12), to learn more about React by building a project. We decided to create an [E-commerce Product Page by Frontend Mentor](https://www.frontendmentor.io/challenges/ecommerce-product-page-UPsZ9MJp6).

![e-commerce product page](https://cdn.hashnode.com/res/hashnode/image/upload/v1662233198087/zC8A6v3Qv.JPG)

⭐ You can [see our app live](https://ecommerce-product-page-ayu-reda.netlify.app/) or take a peek at the [codebase on GitHub](https://github.com/adiati98/ecommerce-product-page).

## How We Built It

At first, we thought of using [Firebase](https://firebase.google.com/) as the database to store the purchased items.
But then we decided to focus only on the frontend side, like the UI and functionality, and not the backend.

So we built this project with [React](https://reactjs.org/), and we used [Bootstrap](https://getbootstrap.com/) and [React Bootstrap](https://react-bootstrap.github.io/) for the styling with some vanilla CSS to apply styles that Bootstrap can't achieve. We decided to use this framework instead of all vanilla CSS because we both wanted to save time and learn more about Bootstrap.

## What I Learned

Building this project taught me much more than just the coding and technical aspects.

![Chelsea Handler School Education GIF](https://media.giphy.com/media/3og0INdmjMr8BIiIlG/giphy.gif)

### Paying attention to the details

In real life, a front-end developer needs to translate a Figma design (or other design apps) into code. The premium version of Frontend Mentor provides us with a Figma design. For the free version, they provide pictures as a design guide.
Besides the design, Frontend Mentor included the styling guide in the project starter, such as the colors and the font. We then turned these designs into an app. We learned how to pay attention to the details so our app can get as close as possible to the designs.

### Breaking down tasks

Although we didn't need to, we used the [Agile](https://www.atlassian.com/agile) approach to work on this project. We broke down the tasks into small chunks and put each in an issue as [user stories](https://www.atlassian.com/agile/project-management/user-stories).
With this approach, we could plan and track what kind of things we would or were working on. We mainly worked on issues together synchronously. But there were also times that we worked on issues ourselves asynchronously.

### A teammate can be a mentor

My teammate had more knowledge of some skills and concepts, and vice versa. He would spend some time walking me through things he understood better than me, and I did the same to explain different things I knew more about to him. We continuously learned something from each other throughout the collaboration.
Later, I discovered that this kind of mentorship is called [Peer Mentor](https://www.mentorcliq.com/blog/7-types-of-mentors).

### Communication and empathy

Communication is one of the essential things in collaboration, mainly in a remote environment. My teammate and I had slight time differences, but we both had our activities outside this project. So we needed to communicate our expectations from the beginning and respect each other. We habitually let each other know if we couldn't attend a scheduled synchronous meeting as soon as possible. We also spoke as clearly as possible about our tasks and our blockers.

We used Slack and issue or pull request comment sections on GitHub for asynchronous work and real-time meetings applications such as Zoom to work synchronously.

Besides communication, I learned that empathy played a significant role in teamwork. My teammate and I are not native English speakers and have different cultures. Sometimes, we could get lost in the translations, or we needed more time to explain something. We both got along despite these differences by respecting each other and through empathy.

## Final Words

As many say, as important as coding, collaboration and communication are skills we should have to be good developers.

If you haven't done any collaboration projects, now might be a good time to do it. Find a teammate and decide on a project to collaborate with. You can find your teammate through your community, some collaboration programs such as [The Collab Lab](https://the-collab-lab.codes/) or [Chingu](https://www.chingu.io/), or the bootcamp or online courses that you're taking. You can also consider participating in a hackathon and collaborating with other developers.

In my experience, I always learned something new and got to know more great developers through project collaborations 😊.

![Working Jimmy Fallon GIF](https://media.giphy.com/media/ZoPH9i0aWiMFpvF3jF/giphy.gif)

---

📷 Cover photo by <a href="https://unsplash.com/@sigmund?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Sigmund</a> on <a href="https://unsplash.com/s/photos/remote-work?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
  
Thank you for reading!
Last, you can find me on [Twitter](https://twitter.com/@AdiatiAyu). Let's connect! 😊