Cross-Functionality in One of our Backend Teams
Over time, the number of requests to our Backend teams increased and the size of the teams grew at the same pace. How did we keep our effective delivery and agile mode of work despite dramatic scaling? One of our backend teams, the BE-Alpha team, shares how they have addressed the issues coming with fast growth by reorganizing into multiple cross-functional teams.
Who we are
We are a bunch of skilled engineers who love working on Web Applications and APIs. Over the years, we managed to build an international team of 12. We have colleagues coming from the USA, Slovakia, Ukraine, Kyrgyzstan, and Russia. As half of the team isn’t from the Czech Republic, English is our everyday language.
The Backend Alpha team is not the only Backend team at Showmax. The Backend Bravo team is technologically similar to us, we have shared libraries and technologies we use, and historically we used to be just one backend team. As that original backend team grew, we had to split, although we still work closely together.
How do we work
The BE-Alpha team consists of software engineers, QA testers, and a team leader. We are a technical team and we sync on daily stand ups. However, as the team grew we had to find a more efficient way to give people focus, plan new work, and assign responsibilities for individual parts of our applications. Enter cross-functional teams, a concept similar to “tribes” and “squads” you may be familiar with from other companies.
Cross Functional Teams (CFTs)
The tribes model is a way to scale agile development to a larger organization. The main goal is to eliminate silos, empowering each tribe to create software without depending on other departments. The way we applied these principles to our BE-Alpha team was by splitting the engineering capacity and combining them with other roles into multiple cross-functional teams.
The teams are cross-functional as they consist of product managers, software engineers (2-4 per team), QA, UX designers, and data scientists. Most of their work is AB tested in order to find the most efficient solutions.
In total we have 4 cross-functional teams, with each team being led by a product manager. The cross-functional team is self-organizing, they consult their priorities together in (ir)regular meetings, and have a shared focused vision on the part of the product they are responsible for. The teams we currently have are:
- Conversion Rate Optimization (CRO)
- Payments and Partnerships
The CFTs are supplemented by one more subteam within our BE-Alpha team, a team we call the “platform team” based on the concepts from Team Topologies. While the 4 cross-functional teams are “Stream-aligned”, the platform team doesn’t have a dedicated product manager and focuses more on internal work but also steps in to help the CFTs in case special assistance is needed.
What we do in particular
Our work is focused around systems that support user acquisition. At Showmax, that primarily means the marketing pages, full-stack authentication web application and payment gateway, and related payment APIs.
The payments on the Showmax platform are fully controlled by our team. As such, we maintain an API that stores billing information, such as what products are available where at what price, and user subscription status information. Another important API service is the payment gateway API, which we extend regularly as we integrate with new payment providers, and partner with telecommunication providers to provide data bundles.
The APIs are written in Ruby and use the grape framework. People who work as API engineers usually don’t need to touch our full-stack applications that integrate with these APIs, but sometimes it’s necessary.
From the user acquisition point of view, it makes sense for our team to also develop and maintain the infrastructure of marketing landing pages, example. Running on the Jamstack architecture (using Next.js, a React based framework), we have a frontend engineer in our backend team who maintains those pages.
The BE-Alpha team is growing constantly, so join us! There are many areas you can enjoy. You’ll be especially happy with us if you like to create products that end users directly interact with, if you like working with databases and love creating REST APIs, or if you like working in the Jamstack space!
We are hiring remotely in the whole EU so if you are eager to join us, check out the list of open positions, or send us an email at firstname.lastname@example.org and let’s talk!