The reasons why beginners should join an experiential team development project before applying for a job.
Tags: beginners, career
Published: 2022-03-21 23:55:19

Have you ever thought that you have been practising coding alone for so long but there still seems to be a huge gap between your current self and a strong candidate for job hunting?

If you are unsure about your preparedness and current skill, joining an experiential team development is definitely worth investing time.

Here I will share my own experience of developing an application with other peer code learners and takeaway from being part of a team.

## Why did I decide to join?

The event that led to me joining an experiential team development was quite simple: my mentor’s recommendation. Ever since I started to learn how to code, I had used a mentoring service through which I got monthly mentoring about my progress and technical advice from developers. But I have spent most of my time learning alone by using online tutorials and creating small apps to try out new skills. I was always feeling anxious about applying for a job without actually knowing how to develop an app in collaboration with other people.

And one day, my mentor asked me to take part in a team development event that he hosted. At that time, I was nowhere near confident about my code. I had just finished 70% of my first big challenge, creating a Todo app with Next.js and React. But I kept asking myself, ‘When will the best timing come then?’ And my answer is ‘It will never come. I have basic skills so I should just jump into it!’ So I did it.

## What were my expectations for team development? 

There were two main expectations in participating in the team development.

Understanding what issues would emerge in terms of communication within the team and my own skills, and how I should deal with them in team development.

Getting a clearer idea on what are the gaps between a strong candidate for frontend engineer and what skills from the perspective of team development, and what kind of knowledge I should learn to close these gaps. 

As written below, my takeaways from experiential team development turned out to be far richer than my initial expectation.

## What did we create?

Here is the finished product that 8 of us all made together.

https://todo-team-2-qigd0p0al-m8na.vercel.app/

In this development, Next.js & React were used as the main framework and library while Recoil was introduced for state management. In addition, Chakra-UI was used as the framework for styling.

## Languages/frameworks and other technologies used in the application 

- Next.js
- React
- Recoil
- Chakra-UI
- Functions implemented in the application
- Add, edit, view details, delete
- Comment
- Markdown
- Pagination
- Scrolling
- Change Progress
- Change Priority
- Search
- Filters

## What did we try as a team? 

- Page transitions using Next.js routing
- Global state management using Recoil
- Layout creation using Chakra-UI
- Propose a feature or issue you would like to work on
- Resolving problems when errors occur
- Purpose/Background of Team Development
- Experience in team development, learning how to use Github, etc.
- Learning how to implement basic application functions by creating a todo list
- Learn how to write code that is easy to understand by others through code writing and code reviews based on the premise of team development

## What was my role in the team development? 

From early on in the development process, I was in charge of coordinating the schedule and agenda for the weekly meetings, as well as hosting the weekly online meetings. I also actively reviewed code as needed, helped other members dealing with errors, and managed the progress of the development.

## What were some of the things we tried as a team? 

While we started off as strangers, we all learned to maintain smooth communication as time went by. Since app development involves a lot of individual work, it is necessary to make it easy for all members to know what each person is working on, and how much progress he or she is making. For this reason, we tried to create an atmosphere in which the entire team could easily ask for help from each other by clearly assigning responsibilities, and exchanging messages frequently.

## What were some of the difficulties in team development?

Especially for a while after the development started, I was scared of operating git. As we were developing as a team, I was worried too much about making mistakes, thinking 'What if this operation damages the entire application?' However, my mentor kept telling us 'Errors and failures are opportunities to learn. It would be rather strange if everything is perfect from the beginning.'Also, I soon learned that other team members felt the same way. Thanks to the advice and learning, my anxiety quickly disappeared.

## What are my impressions of participating in team development? 

First of all, from a technical standpoint, I was able to learn many frameworks and implementations that I had no experience with, and through code reviews, I was able to see the code that other members wrote, which greatly improved my knowledge and skills.

The below are some of the things I found unique to team development, and therefore have given me a great deal of confidence in my job hunting.

- Branch creation
- Creating pull requests on GitHub
- Code review
- Issue creation on GitHub
- Utilising the project function on GitHub
- Moving to a branch created by another member for code review
- Conflict resolution
 
Next, regarding the software side, I learned the importance of progress management, MTG, and detailed (but not too detailed) communication among team members. I was also able to rediscover new possibilities and skills in my role as a leader during the course of the program.

Finally, this team development also had an enormous impact on my own motivation. Over the period of self-learning, I had been feeling a bit stuck not knowing if the code I wrote was correct or not and whether I was on the right track in becoming a skilful frontend engineer. Engaging with other code learners through application development, in this respect, was of great encouragement as we could share the same difficulties and look for the solutions together.

## Comments from other members (excerpts) 

- I was able to improve my knowledge by learning that there are many different ways to achieve the same thing, and by learning things I didn't know.
- Having team members who get together every weekend to exchange opinions and communicate with each other has boosted my motivation, and I think it has been a very valuable experience.
- By being involved in team development, I was made aware once again of my weaknesses other than technical aspects.

## For those considering experiential team development 

If you are stuck in self-study, I definitely encourage you to participate in some events as well as the one-on-one meetings about code-learning and future career. Team development is one of them, and it will bring you valuable experience that you cannot get from self-study.