on
Our theory on organizational structures of software teams has just been published!
We are happy to announce that our article The Organization of Software Teams in the Quest for Continuous Delivery: A Grounded Theory Approach has been published in Information and Software Technology, a very reputable journal in our field.
Many organizations wish to adopt DevOps. However, usually, there is some confusion about the meaning of DevOps: would it be about making developers and infrastructure people closer? Would it be about cross-functional teams? Would it be about creating a DevOps team? Well, we address this issue by observing the current industry practice.
This study investigates how different software-producing organizations structure their development and infrastructure teams, or more precisely: how is the division of labor among these groups and how they interact. After carefully analyzing data collected from 44 interviews with software professionals, we identified four common organizational structures: siloed departments, classical DevOps, cross-functional teams, and platform teams.
In the following, we briefly provide for each discovered structure: (i) the differentiation between development and infrastructure groups regarding operations activities (deployment, infrastructure setup, and service operation in run-time); and (ii) how these groups interact (integration).
- Siloed departments
- Development differentiation: just builds the application package
- Infrastructure differentiation: responsible for all operations activities
- Integration: limited collaboration among the groups
- Also called as:* segregated dev & infra departments
- Classical DevOps
- Development differentiation: participates/collaborates in some operations activities
- Infrastructure differentiation: responsible for all operations activities
- Integration: intense collaboration among the groups
- Also called as:* collaborating dev & infra departments
- Cross-functional teams
- Development differentiation: Responsible for all operations activities
- Infrastructure differentiation: Does not exist
- Integration: –
- Also called as:* single dev/infra department
- Platform teams
- Development differentiation: responsible for all operations activities with the platform support
- Infrastructure differentiation: provides a platform automating much of the operations activities
- Integration: interaction happens for specific situations, not on a daily basis
- Also called as:* API-mediated dev & infra departments
For better understanding these structures, you can also check the digest of our taxonomy, or read the full article.
The main contribution of this study is a theory in the form of a taxonomy organizing the found structures with their properties. This theory could guide researchers and practitioners to think about how to better structure development and infrastructure professionals in software-producing organizations. It also contributes to improving our understanding of the contemporary phenomenon of software production.
* The article has just been accepted (June 2021), but the initial submission was almost one year ago (August 2020). During this long time, we have been working to evolve our taxonomy based on its use with practitioners. This is the reason we have two versions to name each of our structures. We expect to present the new version of the taxonomy in a future publication, also considering why different organizations adopt different structures.