Time de Desenvolvimento: conheça este papel do Scrum - Site Campus

Time de Desenvolvimento: conheça este papel do Scrum

O Scrum define três papéis diferentes: Scrum Master, Dono do Produto (Product Owner) e Time de Desenvolvimento (Development Team). Juntos, os três papéis formam o Time Scrum.

Nos dois artigos anteriores, aprendemos sobre dois destes papéis: o Scrum Master e o Dono do Produto. Agora é a vez de conhecermos melhor o Time de Desenvolvimento, para entendermos como essa função ajuda no sucesso do Scrum. Afinal, ele é formado pelas pessoas que realmente colocam a mão na massa e constroem o incremento do produto. É um papel importante: o sucesso do Scrum depende muito da qualidade do Time de Desenvolvimento.

Prontos para entender melhor como funcionam os Times de Desenvolvimento no framework Scrum? Então vamos lá!

Time de Desenvolvimento? O que ele faz?

O Time de Desenvolvimento, como o próprio nome já deixa claro, é o responsável por desenvolver o produto. Conforme o Guia do Scrum, o Time de Desenvolvimento é formado por profissionais com grande conhecimento em sua própria área de especialização. Através deste conhecimento realizam o trabalho de transformar itens do Backlog do Produto em um incremento potencialmente liberável, para assim atingir uma meta importante: o objetivo da Sprint. Somente os membros do Time de Desenvolvimento entregam incrementos do produto, mais ninguém além deles!

Assim, o Time de Desenvolvimento é um pequeno grupo multidisciplinar de pessoas que possuem as habilidades necessárias para entregar valor para o negócio. A partir das prioridades definidas pelo Dono do Produto, o Time de Desenvolvimento gera, em cada Sprint, um Incremento do Produto, de acordo com a Definição de Pronto, e que significa valor visível para os clientes do projeto. Este incremento concluído é uma funcionalidade que um usuário poderia usar, cuja liberação será decidida pelo Dono do Produto.

Os Times de Desenvolvimento são bem estruturados e capacitados pela empresa para gerenciar seu próprio trabalho. A equipe deve ser formada por um conjunto diversificado e multifuncional de pessoas colaborativas, com conhecimentos, características e habilidades adequadas para organizar o próprio trabalho, sem dependência externa. Isso resulta em uma sinergia única que otimiza a sua eficiência geral.

Eles buscam as melhores soluções para entregar o produto com eficácia. Inspecionam seu trabalho e se adaptam para obter melhores resultados. Precisam ser transparentes em todas as suas ações para construir confiança e respeito e criar um ambiente seguro para cada membro da equipe. Devem atuar de forma auto-organizada, planejando e executando seu trabalho com autonomia, motivação e responsabilidade. Mas o time deve ser suficientemente pequeno para otimizar a comunicação e tornar possível esta auto-organização.

A equipe deve trabalhar em um ritmo consistente e sustentável, executando o trabalho possível Sprint a Sprint, conforme avaliação do próprio time, ao invés de receber metas irreais e inviáveis. Isso mantém a alta qualidade, um ambiente adequado e livre de estresse. Devem ser orientados à excelência, buscando aprender e melhorar continuamente, realizando seu trabalho com consciência e qualidade crescente.

Em um Time de Desenvolvimento, a motivação no trabalho é essencial para gerar compromisso de seus membros com as metas e com a qualidade do produto de seu trabalho. Os princípios Ágeis apontam explicitamente o ambiente, o suporte e a confiança necessários para realizar o trabalho como essenciais para a motivação do indivíduo.

Quando uma nova equipe começa a trabalhar, leva tempo até que tenha afinidade suficiente para combinar seu conhecimento. Logo, não é recomendado alterar os componentes da equipe com muita frequência, a fim de evitar qualquer tipo de redução de produtividade. Para obter resultados ideais, as equipes de desenvolvimento deveriam ter vida longa! O ideal é que as equipes atuem juntas em mais de um projeto, o que promoverá a integração entre os membros e melhorará a atuação da equipe.

É responsabilidade do Time de Desenvolvimento, junto ao Dono do Produto, refinar o Backlog do Produto e planejar a Sprint. Também é responsável por selecionar e estimar as Histórias de Usuário do Backlog do Produto priorizado para serem entregues na próxima Sprint, formando o Backlog da Sprint. O Time decide quantos itens construir em uma Sprint e a melhor forma de cumprir esse objetivo.

Durante a realização da Sprint, deve constantemente Inspecionar e Adaptar. Uma forma de fazer isso é participando da Reunião Diária. Além disso, ao final de cada sprint a equipe de desenvolvimento participa da Revisão do Sprint, com foco no produto, e da Retrospectiva do Sprint, com foco no processo.

Nem muito grande nem muito pequeno. Qual o tamanho adequado do Time de Desenvolvimento?

Segundo o Guia do Scrum, o tamanho ideal do Time de Desenvolvimento deve ser pequeno o suficiente para se manter ágil e grande o suficiente para completar um trabalho significativo dentro da Sprint.

Não existe um tamanho fixo. Isto vai variar de um time para outro. Mas o Scrum favorece equipes pequenas. Os projetos escalam não pela construção de equipes maiores, mas por ter várias pequenas equipes.

O Time de Desenvolvimento, para não ser pequeno nem grande demais, deve ser formado por 3 a 9 integrantes. As funções de Dono do Produto e Scrum Master não estão incluídas nesta contagem, a menos que também estejam executando o trabalho do Backlog da Sprint. Desta forma, se considerarmos estes dois papéis, teremos um Time Scrum com 5 a 11 integrantes.

Times muito pequenos podem ser menos produtivos e terem dificuldade para desenvolver e entregar o incremento. Frequentemente encontrarão restrições de habilidades durante a Sprint em andamento. Alguns profissionais terão que ter mais de uma habilidade para manter o time autossuficiente.

Por outro lado, times muito grandes exigem muita coordenação, além de dificultar a comunicação e a colaboração. Também tornam mais difícil cumprir regras e princípios do Scrum. Exatamente o que precisamos evitar.

Times de Desenvolvimento devem ser multifuncionais

As empresas costumam separar intencionalmente diferentes atividades de trabalho em equipes especializadas e com funções específicas. Assim, formam equipes de designers, de desenvolvedores e outra de testadores.

Diferente do cenário anterior, o Scrum requer uma equipe multifuncional. O Time de Desenvolvimento deve realizar todo o trabalho para produzir o incremento do produto em cada Sprint. Não existe uma Sprint de design, uma Sprint de desenvolvimento e uma Sprint de teste. Ao contrário, todo o design, desenvolvimento, integração e teste de funcionalidades são realizados por um Time durante a Sprint.

O Time de Desenvolvimento deve possuir todas as competências e habilidades necessárias para executar o fluxo de trabalho de ponta a ponta, sem depender severamente de outros que não fazem parte da equipe.

Em um Time de Desenvolvimento ideal, os membros da equipe têm habilidades profundas em uma área funcional, mas também conseguem trabalhar fora de sua especialidade central. Isso ajuda o time a ser autossuficiente e a não criar gargalos dentro da equipe, pois todos podem contribuir em diversos tipos de atividades necessárias durante a Sprint.

A decisão de adicionar ou remover um membro da equipe só pode ser tomada exclusivamente pela própria equipe. Se um novo conjunto de habilidades for necessário, o Time de Desenvolvimento pode escolher construir essa experiência dentro da equipe ou adicionar um novo membro.

O ideal é que o time seja o mais multifuncional quanto possível: se a entrega exige Front-End, o time deve ter este profissional, por exemplo. De nada adianta o analista entregar a análise, mas a programação não acontecer. Ou então a programação ocorrer, mas os testes não. Para um time formado por três integrantes, por exemplo, o mais adequado seria ter um analista que possa ajudar no desenvolvimento e testar, um programador que possa auxiliar nas definições de análise e testar e um testador, que também faça a análise e tenha condições de criar um manual do usuário.

Dependências externas, que não estão sob o controle do Time de Desenvolvimento, constituem um risco muito alto. Se, por exemplo, for necessário que esperar o resultado do trabalho de pessoas ou times externos para poder realizar o desenvolvimento de algum de seus itens, vai acabar prejudicando a Meta da Sprint. Um Time de Desenvolvimento multidisciplinar reduz esses riscos, já que é capaz de realizar todo o trabalho sem, a princípio, depender de ninguém.

Além disso, a ausência ou sobrecarga de um de seus membros em um determinado momento, por exemplo, tem menos chances de se tornar um impedimento para o trabalho do Time de Desenvolvimento, pois normalmente haverá outros ao menos minimamente capazes de realizar o trabalho.

É importante ressaltar que, independente da especialidade de cada um, a responsabilidade do desenvolvimento do produto sempre será de todo o time. Se houver menos experiência ou conhecimento no time que o necessário, os demais integrantes devem se comprometer em ensiná-los e ajudá-los a desenvolver todas as habilidades necessárias.

O compartilhamento de conhecimentos também reduz as chances de que, em alguns momentos, membros do Time de Desenvolvimento fiquem sem ter o que fazer e, assim, procurem trabalhar em partes específicas de itens de menor importância ou até mesmo se vejam obrigados a trabalharem em mais de um time ao mesmo tempo, o que não é recomendado.

Times de Desenvolvimento devem ser auto-organizados, sem títulos e sem subequipes

A estrutura organizacional de uma empresa é a maneira como ela decide alocar o seu capital humano. Por meio da divisão de setores, cargos e funções, o nível hierárquico é determinado, assim como a relação entre liderança e liderados. O mais comum são as empresas na forma de pirâmide funcional, onde temos a figura do chefe e seus subordinados. Em geral, a orientação e o trabalho são individualizados. É o modelo utilizado nos projetos tradicionais.

O Scrum se baseia em uma filosofia de autonomia e simplicidade, onde a equipe como um todo trabalha para a realização de um objetivo específico. São os chamados times auto-organizados, que escolhem a melhor forma para concluírem o seu trabalho e não precisam ser gerenciados por ninguém. A equipe não tem uma pessoa específica que toma decisões ou dá ordens. Ou seja, não precisam da figura de um chefe ou coordenador. Também não há hierarquia sênior/júnior dentro da equipe.

O Scrum parte da premissa que o próprio time sabe a melhor forma de se organizar e realizar o trabalho necessário. A própria base do Scrum é construída sobre o trabalho em equipe como uma soma de esforços individuais. Essas equipes alcançam objetivos maiores trabalhando em conjunto do que individualmente.

Assim, é somente o Time de Desenvolvimento que determina tecnicamente como o produto será desenvolvido, planeja esse trabalho e acompanha seu progresso. Os membros da equipe escolhem suas tarefas por conta própria, sem que mais ninguém as atribua. Simplesmente confiamos neles para fazerem o trabalho necessário. Todos devem se apoiar e colaborar mutuamente. Toda a equipe se responsabiliza pelo trabalho realizado. Eles têm sucesso ou falham juntos como uma equipe.

Para que a auto-organização torne-se possível, é imprescindível que o Time de Desenvolvimento realize o trabalho de forma colaborativa, maximizando a comunicação entre seus membros. Mas essa auto-organização não deve ser confundida com anarquia ou falta de controle. Os membros do Time de Desenvolvimento trabalham seguindo as necessidades dos clientes quanto ao produto a ser gerado, traduzidas pela Meta da Sprint que negociaram com o Dono do Produto e com a qual se comprometeram. Essa auto-organização implica que o time resolva seus próprios desafios, tanto técnicos quanto interpessoais.

Devemos ter em mente que o Scrum pode ser utilizado em qualquer tipo de projeto. Portanto, estas habilidades dos integrantes do Time de Desenvolvimento vão depender muito do tipo de produto que necessita ser desenvolvido. Por exemplo, no caso de desenvolvimento de softwares, o time será formado por Desenvolvedores Front-End e Back-End, Engenheiros de Software, Designers, Testadores, Arquitetos de Software, Analistas de Negócios, DBAs, Especialistas em Documentação, entre outros. Já no caso da construção de um edifício, será formado por Arquitetos, Engenheiros Civis, Mestres de Obra, Pedreiros, Pintores, entre outros.

Porém o Scrum não reconhece títulos para os integrantes do Time de Desenvolvimento. Independentemente do trabalho que está sendo realizado pela pessoa, todos são chamados de Desenvolvedores. Nenhum outro título é permitido.

O Scrum também não reconhece subequipes, independente dos domínios de conhecimento que precisam ser abordados, tais como teste, arquitetura, operação ou análise de negócios. Assim, não existem subequipes dentro do Time de Desenvolvimento, como equipe de testes, equipe de programação, equipe de especificação de requisitos ou equipe de arquitetura. Na prática elas ainda farão todo esse trabalho, mas não haverá nenhuma separação específica entre os integrantes.

Sobre o autor:

Ivan Charles Momm é Coordenador de TI da empresa Duas Rodas, em Jaraguá do Sul, no Norte de Santa Catarina. Atua há cerca de 30 anos na área de Tecnologia da Informação, com grande experiência na gestão de projetos de infraestrutura de TI, segurança da informação e ERP SAP.

Assine a newsletter do prof. Frederico Aranha
#
Fale com o Site Campus

Tags:, , , ,