As a recent high school graduate, I find that my daily schedule has always been paved in a very rigid way. In Indonesia, summer is spanned over a two-month period filled with freedom before school finally begins once again. However, while waiting to begin my journey as a university student, I found that I had a lot of free time on my hands. Thus, what better way to spend that time than to channel my energy into an internship? I am sure that the experience will be much more valuable than sleeping in all day long.
To be honest, I was lucky enough to have been offered an internship at all. With that in mind, I took on the position of a designer and front-end developer in an educational company that strives to establish their own administration and student attendance system. I worked alongside three fellow back-end developers, and together, we comprised a small team that aimed to create something phenomenal.
Despite our common goal, I had one of my very own. There’s no masking the fact that I was merely a high school graduate who had no formal work experience and more importantly, never worked with a team of developers before. In the past, I had committed to short internships that lasted a month and several freelance projects with some friends, but these can be considered amateur, experimental side projects. Despite that, I am quite confident with my technical skills. What I am most worried about is how would I be able to collaborate with other developers without having to sacrifice my own creative ideas? What strategy would work best? How can I showcase my own talents within this team?
All these concerns would later prove valid. During the first few weeks, my team members and I experienced an ideological clash. What made this initial period worse was that our project manager was away, unable to guide us through the starting process. Although he later guided us back on track in terms of teamwork, he provided little technical assistance due to his limited knowledge in this particular field. It soon dawned on me that I had my own method of working, and they had theirs. How could we ever possibly synchronize two and two?
Even with those barriers, I still went on to design my interface and code it in the best way I knew how, and I even decided to put my own twist on things. I created a style guide, attempted to apply object-oriented CSS, and ventured into practices that my fellow developers might not have been as accustomed to. In the meantime, everyone else went the traditional route – wait for the design and front-end codes to buffer, then code the back-end afterwards – rather than marry the two together after both are complete. We also didn’t communicate with each other as much as I would like since we were too busy focusing on implementing our own ideas to the product. As a result, we aimlessly and poorly coded our aspects, which was evident when we had a meeting with our project manager regarding our progress. Although the end product functioned greatly, the design aspect was not as functional as our project manager hoped. The attendance system that my colleagues built was fully functional but was greatly lacking in its User Interaction aspect and clarity of design, which was my responsibility. Meanwhile, what I present was a dysfunctional design as we weren’t able to integrate the design and the system together due to the contrasting methods that we each adopted. Therefore, I sincerely believed I was to blame for this initial failure.
At the end of the day, I realized the most valuable lesson to be learned: communication is key. I finally took the initiative to tell my team that whatever we are doing is not working, and that we needed to make a working strategy that we all can agree on immediately. Thankfully, things began working better from there on out with just a slight confrontation. With this confrontation, our workflow changed. As a team, we go over each other’s weaknesses and strengths. From this, we decided upon techniques and skills that suit our project and team the best. The biggest change that I noticed was how we communicated more frequently with one another and constantly checked on each other upon every progress that we made. There was also this one point where I helped my colleague in integrating the design with the attendance system, meaning that I had to do a bit of back-end work, which was outside of my responsibility. Above all, I feel that I have to emphasize the fact that even the smallest communication can solve problems.
My take on this experience is that ultimately, it’s better to never head in one direction alone. Although I was excited to take on this huge project head first, a lot of planning was required as well. Doing things my own way might have been easier for me, but I’m working in a team where not everything is about me. It will not be as challenging as having opened myself up to new lessons along the way. I also learned that I shouldn’t be hesitant to communicate with my colleagues. Since communication was the solution to the problem, had I communicated clearly with my colleague before, we might solve this problem way sooner or even prevent it altogether. Also, I realized that working in a company is different from what I've expected. There are many other factors to take into account such as colleague's opinion, other division's decision and also the company's hierarchy, things that I would've never experience if I only stick to my "amateur, experimental projects". As these varies from one company to another, what I've experienced were just few from many more to come.
If I happen to find myself in a similar situation, the very first thing that I will do is talk to the team about the workflow and what’s the best working method for everyone. If the team happens to decide upon a workflow that I’m not accustomed to, I would try to come up with an idea that we all can agree on and be comfortable with so that we can all work more efficiently and create the best result. As the new kid on the block, I’m definitely proud of having stayed true to myself while learning a lot in terms of technical skills. I can’t wait to work with more developers, designers and other people with great minds in the future so that I can cultivate my skills to become a better designer and developer.