Navigating the Dynamics of an External Team Collaboration
As a frontend developer, the majority of my work revolves around JavaScript and TypeScript. However, recently I had the opportunity to collaborate with a backend team from another company that predominantly worked with Python. This collaboration presented its fair share of challenges, as described in our post titled SVG Gradients: Solving Curved Challenges, but it also provided invaluable insights and learnings.
Here I share my experiences and lessons learned while working as part of an external team, highlighting the importance of effective communication and the power of mutual learning.
Communication Challenges
One of the initial hurdles we faced was communication. Our respective companies had adopted different meeting structures and communication tools, which initially seemed inconsequential. However, as we progressed, it became evident that the constant switching between email, Slack, Jira, and Microsoft Teams was causing important messages to get lost.
Recognising the need for streamlined communication, we decided to collaborate with the external development team and our project manager to simplify our processes. After thorough discussions, we made a couple of key changes:
- We reduced the number of meetings to one daily standup on Microsoft Teams, providing a central platform for team updates.
- We agreed to log all meeting notes in Jira, ensuring a centralised source of truth for technical requirements.
These adjustments significantly reduced interruptions and distractions, allowing us to focus more on our tasks and tickets.
Overcoming Technical Differences
Another significant challenge we encountered was the technical disparity between our frontend team’s use of TypeScript and the backend team’s reliance on Python. Building a type-safe API became more complex due to this divide.
To alleviate this challenge, I took the initiative to learn MongoDB, a popular non-relational database frequently used by the backend team. Given that MongoDB generates JSON, my transition from JavaScript to this database was relatively seamless. I was fortunate to have experienced backend developers at my disposal, who provided guidance and directed me to valuable online resources. These resources accelerated my learning process, saving considerable time.
Armed with a better understanding of MongoDB, I was able to actively contribute to the API design and development process. My knowledge of how MongoDB structures its data, particularly its practice of embedding documents, allowed me to create TypeScript interfaces and type definitions that aligned accurately with the backend requirements. This harmonisation resulted in fewer changes required for the API, leading to increased efficiency and satisfaction for the backend team.
Embracing Cross-Company Collaboration
Working with a backend team from another company undoubtedly posed challenges, but it proved to be a remarkably rewarding journey. By embracing the opportunity to acquire new skills and align methodologies, we successfully bridged the gap between our teams. This collaboration demonstrates that, with the right approach, cross-company partnerships can enhance productivity rather than hinder it.
Our commitment to effective communication, along with a shared willingness to learn from one another, brought us closer together and ultimately contributed to the project’s success.
In the ever-evolving landscape of software development, working with external teams provides valuable opportunities for growth and knowledge exchange. By embracing these experiences, we expand our horizons, deepen our skill sets, and forge meaningful connections that transcend organisational boundaries.