Team APIs: What They Are and Why They Matter to Teamwork
Team APIs could vary depending on team context and needs. One universal value is to listen to your people and act on what they vocalize.
Charles L., Senior Director of Application Development, shares team topologies and how you can use the concept of APIs to better manage teams. In this blog, Charles explores various team management methodologies, including four different team types and three interacting models.
We live in a world where people are always looking for the next best thing. When it comes to leadership, we know that if you’re not engaged with your team, they won’t be engaged either, which translates into a lack of passion and excitement in the products they are creating! One way to create more cohesiveness and get everyone on board is to use Team APIs. These team communication interfaces have become the backbone of modern tech companies.
What is a Team API?
In the case of software development, an API (Application Programming Interface) is a set of instructions that tells a computer how to interact with another piece of software. We can use the same idea to create instructions for interacting with our team.
I first read about the Team APIs in Team Topologies, a book by Matthew Skeleton and Manual Pais that talks about creating effective teamwork and helps businesses choose the right pattern of interactions for their organizations. The authors also teach you how to keep software healthy while optimizing value streams.
Let’s Begin: Build an API
A critical first step to creating a communications API for your team is to establish a contact point. This can be a team lead, business analyst, or product owner. All communication will flow through that person from outside the team. This keeps the work visible and consolidates the Works in Progress (WIP) under one contact.
If you are looking for a tool to assist in this process, consider products such as Asana, Basecamp, or Jira to streamline communication within your company. The tools can help you manage projects, tasks, and meetings efficiently while also providing an environment where everyone can work together harmoniously.
My prioritization and goal-setting approach have changed over time, influenced by Allen Hollub and Domenic DeGrandis. When running a software team, the two hardest things are working together and ensuring each person’s work is meaningful and making sure each team player produces quality results without feeling overwhelmed or undervalued by their organizations. This is when these tools come into play and help us stay organized, while creating an easy developer experience.
Easy Developer Experience
While prioritization comes down to leveraging and optimizing the flow, it’s also important to create an easy developer experience. This translates into spending time improving our team’s development process every quarter to make code more efficient and ready for production. It’s essential to optimize and align goals between business and development processes.
Developer experience is so important because developers should focus on building software that solves business problems. Developers should not be burdened with non-business value add work like dealing with infrastructure, deployments, firewalls, domains, provisioning, procurement, or networking etc. A good developer experience makes it so easy for a developer to do their work, so they can focus on building and experimenting with features that enable our clients to do more.
Introducing Team Topologies
According to Team Topologies, the authors introduced different team types and interaction modes.
Four Types of Teams
- Stream-Aligned: A team that is uniquely positioned to drive business change and opportunity, with an alignment of core values, skills mix tailored towards delivering value on their own.
- Platform: A team that helps to reduce cognitive load by providing everything in one place.
- Enabling: A team dedicated to helping other teams with the adoption and modification of software, as part of their transition period.
- Complicated Sub-system: A team with the mission to help other teams transition as they jump from old software and processes into something more modern.
Three Interaction Modes
- Collaboration: Two teams work together to solve a shared goal, particularly when it comes down to finding new technology or approaches.
- X-As-A-Service: One team consumes APIs, tools, or full software products from another team.
- Facilitating: An enabling team facilitates the other team learning or adopting new approaches.
The bread-and-butter of team types is Stream-Aligned. This team type has everything it needs to deploy software to production independently. The most common interaction model is a collaboration where two teams work closely together, for example, X-AS-A-Service, meaning one team uses another team API.
Why APIs Matter in DevOps
APIs are a crucial component of software development. They provide greater insight into how applications work and allow for faster integration, easier consumption across the lifecycle – all things that DevOps teams want in their task lists!
More companies have started to build core platforms, accelerating and scaling development. The state of DevOps conducted based on DORA metrics by Google points to an increase in large enterprises adopting cloud and high-performing software companies in 2021. Good documentation is key to implementing development capabilities and positive team culture to mitigate burnout risks. There is another DevOps report by Puppet Labs that focuses on team topologies. These are all evidence where Team APIs makes a positive impact on DevOps.
Team Success: Prioritize the Developer Experience
An effective team values the Developer Experience (DX), meaning the overall experience developers experience in working on your product. DX is essential for a company’s core product and development. Large enterprises learn to react quicker to market changes when they remove friction in the development process, which leads to revised change management practices and more frequent deployments. Shortly, I see this happening. Companies will modernize their change management processes to accelerate their software delivery. When teams prioritize the DX, their success is inevitable.
Teamwork: Care for Your People
Another consideration in team building is the lag, meaning time spent waiting on someone or something to happen. Grouping people by functions like Dev, QA, or Ops, or Product creates a lag in your team’s flow. What happens when people must wait? They get bored and work on something else. Once a developer works on two things at once, the chance of introducing a defect rises.
Grouping people into functional tribes also creates unwanted behaviors. One of the most important things to understand in DevOps is the people; they are your teammates. Since everyone is on the same scrum teams, instead of calling each other by roles such as OPS or QA, use ‘my teammate’ and recognize ‘my teammate needs help on this item.’ Your mindset changes when you apply the rule in day-to-day life. You’d want to help and contribute more to the team.
What You Should Know: As a Leader in DevOps
How do you know that you are doing a fantastic job as a leader? The answer can be found in the feedback loop. Making the workplace a more comfortable and enjoyable place can help associates flourish. A positive feedback loop achieves that by listening to the voices and using the comments to improve organizational structures.
I recommend The DevOps Handbook for any technology leader looking to improve their organization’s culture and innovation levels. The book includes three DevOps principles: Flow, Feedback, Continuous Experimentation & Learning. To improve any system, you need feedback loops, and the faster the feedback, the better. It is important to improve any system, especially in delivering software to production. Not having suitable feedback loops can lead to poor outcomes.
For example, my team uses ADP’s Standout app, a high-performing tool that helps identify each individual team member’s strengths through a series of surveys that are designed for different types of companies with various needs, including software developers. You’ll find out exactly where tasks need improvement on both individual levels and group discussions, ensuring everyone has an opportunity to share their opinions about what works best within these parameters.
Our community: ADP’s Transformation
I’ve seen such a great technological leap forward over the last decade. I love the direction ADP is going. We didn’t have all these avenues for connection when I founded the ADP Developer Community back in 2013. Coordinating inner sourced projects was more difficult. Since then, the openness and sharing within GPT have been incredible. I feel encouraged hearing our leader, Don Weinstein, celebrate innovations such as CI/CD. What we do at ADP is incredible, especially the annual GPT Connect developer’s conference that shows sharing technology across teams is a high priority.
Team APIs could vary depending on team context and needs. One universal value is to listen to your people and act on what they vocalize. Prove to the team you hear them and do something about their proposed ideas. I believe a high-performing team will be open and honest with each other. It’s a group effort for the team members to use feedback to improve while receiving support and help from their leader.
Interested in DevOPs or Application Development positions at ADP? We’re hiring!