em
Nossa teoria sobre estruturas organizacionais de equipes de software acaba de ser publicada!
Temos o prazer de anunciar que nosso artigo The Organization of Software Teams in the Quest for Continuous Delivery: A Grounded Theory Approach foi publicado na Information and Software Technology, uma revista muito conceituada em nosso campo de pesquisa (Qualis A1).
Muitas organizações desejam adotar DevOps. No entanto, geralmente, o significado de DevOps é confuso: seria sobre como tornar os desenvolvedores e o pessoal de infraestrutura mais próximos? Seria sobre equipes multifuncionais? Seria sobre a criação de uma equipe DevOps? Bem, nós atacamos essa problemática observando a prática atual da indústria.
Este estudo investiga como diferentes organizações produtoras de software estruturam suas equipes de desenvolvimento e infraestrutura, ou mais precisamente: como é a divisão do trabalho entre esses grupos e como eles interagem. Depois de analisar cuidadosamente os dados coletados em 44 entrevistas com profissionais de software, identificamos quatro estruturas organizacionais comuns: departamentos em silos, DevOps clássico, equipes multifuncionais e times de plataforma.
A seguir, fornecemos resumidamente para cada estrutura descoberta: (i) a diferenciação entre os grupos de desenvolvimento e infraestrutura em relação às atividades operacionais (implantação, configuração da infraestrutura e operação do serviço em tempo de execução); e (ii) como esses grupos interagem (integração).
- Departamentos em silos
- Diferenciação do desenvolvimento: apenas constrói o pacote da aplicação
- Diferenciação da infraestrutura: responsável por todas as atividades operacionais
- Integração: colaboração limitada entre os grupos
- Também chamada de:* departamentos de dev & infra segregados
- DevOps clássico
- Diferenciação do desenvolvimento: participa / colabora em algumas atividades operacionais
- Diferenciação da infraestrutura: responsável por todas as atividades operacionais
- Integração: colaboração intensa entre os grupos
- Também chamada de:* departamentos de dev & infra colaborativos
- Equipes multifuncionais
- Diferenciação do desenvolvimento: responsável por todas as atividades operacionais
- Diferenciação da infraestrutura: não existe
- Integração: –
- Também chamada de:* Departamento único dev/infra
- Times de plataforma
- Diferenciação do desenvolvimento: responsável por todas as atividades operacionais com o apoio da plataforma
- Diferenciação da infraestrutura: fornece uma plataforma automatizando muitas das atividades operacionais
- Integração: a interação acontece para situações específicas, não diariamente
- Também chamada de:* departamentos de dev & infra mediados por API
Para melhor entender essas estruturas, você também pode conferir o resumo da nossa taxonomia ou ler o artigo completo.
A principal contribuição deste estudo é uma teoria na forma de uma taxonomia que organiza as estruturas encontradas com suas propriedades. Essa teoria pode apoiar pesquisadores e profissionais a pensar sobre como estruturar melhor os profissionais de desenvolvimento e infraestrutura em organizações produtoras de software. A teoria também contribui para melhorar nossa compreensão sobre o fenômeno contemporâneo da produção de software.
* O artigo acaba de ser aceito (junho de 2021), mas a submissão inicial foi há quase um ano (agosto de 2020). Durante esse longo tempo, temos trabalhado para evoluir nossa taxonomia com base em seu uso com profissionais. Esta é a razão pela qual temos duas versões para nomear cada uma de nossas estruturas. Esperamos apresentar a nova versão da taxonomia em uma publicação futura, considerando também o porquê de diferentes organizações adotarem estruturas diferentes.