Loading Softdesign

SoftDictionary: Times Ágeis

Ernani Ely Jr
por Ernani em 02/05/2019

Você sabe quais as diferenças entre times verticais e horizontais? Entende o que são esquadras, tribos, chapters e guilds? Abaixo o desenvolvedor Ernani Ely explica o significado de cada um desses termos.

Times são essenciais ao desenvolvimento de softwares. Eles são os reais responsáveis por realizar projetos e concretizar diferentes ideias. Quando nos referimos às equipes que trabalham com métodos ágeis, às denominamos “times ágeis”. Isso significa que a equipe possui integrantes com alta capacidade de solucionar problemas, com iniciativa e independência, e que esses baseiam seus processos em diferentes metodologias ágeis – como o Scrum – com o objetivo de obter melhores resultados. A seguir, explico as possíveis variações de times ágeis de acordo com sua organização.

Tipos de times

Times verticais: os times verticais são alinhados à forma ágil de pensar, já que em seu cerne está a ideia de autonomia e responsabilidade.  Times verticais consistem em equipes de pessoas que trabalham divididas por área de negócio do produto. Usando como exemplo uma instituição financeira, poderíamos citar: crédito, poupança, transferências, pagamentos, etc. A ideia é que um time vertical execute todos os papéis necessários para desenvolver seu produto do início ao fim. Ex.: desenvolvedor web, desenvolvedor Android, Product Owner, Scrum Master, QA, DevOps, entre outros, conforme a necessidade de cada time.

Times horizontais: uma empresa que tem times horizontais está organizada em “silos”, onde as pessoas são divididas pela área de atuação ou conhecimento. Exemplos de times horizontais: ‘time dos desenvolvedores web’, ‘área de qualidade’, ‘equipe de arquitetura’, ‘time de UX’, etc.

Em uma organização dividida em times horizontais geralmente temos problemas de hand-off (passagem) das atividades de um silo para outro, aumentando o tempo de ciclo total, além de outros problemas causados pela falta de autonomia e de responsabilidade dos times com um objetivo ou tema específico. Por isso, é uma tendência – seja nas empresas ágeis ou mesmo nas grandes empresas – migrar para times verticais. Um problema que surge com essa migração é a consistência e troca de conhecimento. Por exemplo, se ao invés de ter um setor de arquitetura a empresa tiver um arquiteto em cada time, como o conhecimento vai circular entre eles? O Spotify é um exemplo de organização que solucionou esse problema e ainda criou uma nomenclatura própria.

Times no ‘Modo Spotify’

A seguir você pode conhecer a forma como o Spotify se organiza em times verticais, mas mantém estrutura horizontais/transversais.

Esquadras: uma esquadra, ou Squad, nada mais é do que um time vertical. Ou seja, um time focado em atender determinada área de negócio do produto, ou parte do produto. Assim como um time Scrum, deve possuir dentre seus integrantes todos os papéis necessários para realizar seus objetivos.

Tribos: Tribo, ou Tribe, é um grupo de Esquadras. Em geral possui um Team Leader que é o responsável por reger essa orquestra de pequenos times. Essa é a forma encontrada pelo Spotify de lidar com um grande produto dividido em muitas Squads, criando alguma estrutura entre essas Squads para que elas colaborem para atingir objetivos maiores.

Chapters: é uma estrutura horizontal que atravessa todos os times, com foco em discutir temas transversais.  Um chapter pode, por exemplo, reunir os vários arquitetos de uma tribo para discutir decisões importantes de arquitetura ou para manter todos os arquitetos conscientes da evolução da arquitetura. Um paralelo para os chapters são as Comunidades de Prática, uma ideia que adotamos aqui na SoftDesign e que é mais antiga do que o Spotify.

Guilds: outra estrutura horizontal adotada no modelo Spotify é a guilda. Esta estrutura é mais livre, reunindo pessoas independente do seu papel funcional ou do seu time, para que possam discutir interesses em comum e compartilhar o conhecimento.

Times no Scrum

Mas falando de times ágeis, vale também conhecer as definições do Scrum para times.

Time Scrum: O Time Scrum consiste em um Product Owner, o Time de Desenvolvimento e um Scrum Master. Times Scrum são auto-organizáveis e multifuncionais, conseguindo trabalhar juntos para construir o produto desejado.

Time de desenvolvimento: O Time de Desenvolvimento consiste de profissionais que realizam o trabalho de entregar um incremento potencialmente liberável do produto ao final de cada Sprint. O time de desenvolvimento deve ter a autonomia e todos os profissionais necessários para conseguir atingir a definição de pronto, minimizando dependências externas.