The Perfect Team(s)
Unfortunately there is no one fits all answer. As with everything related to DevOps, it depends on your organization. However, there are some guidelines we can follow.
Our main goal is to improve developer efficiency and reduce lead times. Below are a set of ways we can use to achieve this.
Generalist
Building a team with hyper specialist results in the creation of silo’s. Which leads to overhead whenever you need to get something done and ultimately increases lead time.
Instead, team members should be encouraged to be generalists. This allows them to contribute to multiple areas of the value stream. One of the ways you can do this is by rotating people through different roles to allow them to build knowledge.
Service/Product Teams
Teams should be build with Conway’s Law in mind. Instead of assigning people to a ‘project’, assign them to a team based on a product or service. This allows them to see the bigger picture, as they do not have to constantly switch over to new projects.
Two-Pizza Team
A term used by Amazon to indicate that team sizes should remain relatively small. Your team should be as small so that it can be fed by two pizzas. Typically this means the team consists between 5 and 10 members.
With these smaller team sizes, all members have a clear understanding of what they are working on and allows them to operate autonomously.
Platform Team
To improve developer efficiency, we can have a team that is dedicated in building shared services for service and product teams to consume. This team will have the development team as stakeholders. Their goal is to create and integrate systems that allow development teams to use these with ease. That way, these development teams can spent more time in actually developing the features required for the business.
A platform can have a positive effect on reducing lead times, as it can work to remove bottlenecks by automating these away.
Embedding Ops Engineers
An alternative to enabling product teams to become self-sufficient is to include dedicated Operations Engineers within these product teams. Lead times will be reduced as the team has all the knowledge within its team to develop and deploy its software.
The Ops Liaison
Often times the amount of product teams are higher than the amount of Operation Engineers available. In this case Operations will still be a central entity, but they will send a liaison to the product teams. These liaisons will build knowledge around the product functionality that is being build and will attend stand ups of its assigned product team. The liaisons will integrate the required needs of its product teams in the Operations roadmap.