Agile Projeto

Papéis do Scrum: The Developer Team

A Equipe de Desenvolvimento consiste de profissionais que realizam o trabalho de entregar uma versão usável que potencialmente incrementa o produto “Pronto” ao final de cada Sprint. Somente integrantes da Equipe de Desenvolvimento criam incrementos1.

A equipe de desenvolvimento é um dos três roles do Scrum, talvez, por que não dizer, o mais importante. Tal importância é devida ao fato que é o Time de Desenvolvimento que é capaz de transformar a visão do produto em produto pronto, isso conforme sua definição de pronto e em incrementos potencialmente entregáveis.

Eles são auto-organizados. Ninguém (nem mesmo o Scrum Master) diz a Equipe de Desenvolvimento como transformar o Backlog do Produto em incrementos de funcionalidades potencialmente utilizáveis;

O papel do Scrum Master fica claro aqui que não é de controle sobre o time, ele é um líder, mas de forma a exercer a liderança servidora. A pergunta que é feita então é: Como o time sabe o que deve ser feito? Durante o processo de desenvolvimento, o time se reúne em torno do Backlog para discuti-lo, clarifica-lo e avaliar a complexidade dos itens para poder posteriormente organizar as Sprint Backlog. Neste momento é que o time “fica sabendo” mais detalhadamente o que deve ser feito. Todos os membros do time de desenvolvimento participam deste momento, e é ai, que fica claro para todos, pois são partes do processo de desenvolvimento do produto como um todo.

Equipes de Desenvolvimento são multifuncionais, possuindo todas as habilidades necessárias, enquanto equipe, para criar o incremento do Produto.

Este é um ponto que gera muita discussão no inicio da adoção do Scrum. Afinal o que seria um time multifuncional? Bom para esta pergunta a resposta é simples, um time multidisciplinar ou multifuncional é aquele que possui todas as skills necessárias para a entrega do produto. Isso pode variar de acordo com o tipo de projeto, arquitetura, cliente, negócio. Não necessariamente é preciso ter um desenvolvedor de cada “área” no time, mas a necessidade quando surgir deve ser feito. Podemos por exemplo não ter um indivíduo que se intitula web designer na nossa equipe o tempo todo, mas podemos, por exemplo, contratar um freelancer para trabalhar a interface quando for o tempo certo. Podemos ter pessoas que entendam melhor de TDD, outras de Design Pattern, como se um time de futebol fossem, cada um tem sua posição preferida, mas caso necessário, qualquer um pode ir ao ataque, alguns podem até mesmo jogar no gol. Esse é o verdadeiro espírito de time.

O Scrum não reconhece títulos para os integrantes da Equipe de Desenvolvimento que não seja o Desenvolvedor, independentemente do trabalho que está sendo realizado pela pessoa; Não há exceções para esta regra.

Na atual estrutura organizacional brasileira, isso é um grande problema quando adotamos agilidade em geral, mas principalmente com Scrum. Muitas empresas ainda trabalham com certa estrutura de trabalho de forma a escalonar hierarquicamente papéis como Analista de Sistemas, Programadores, Testadores entre outros. O Scrum deixa claro que não há qualquer outro papel no time de desenvolvimento que não seja Desenvolvedor e justamente aqui esbarramos na estrutura organizacional , onde em muitos lugares há esta distinção e até mesmo não é anormal encontrar analistas sendo superiores a programadores, isso é um grande empecilho a estrutura democrática organizacional, algo a ser combatido por quem deseja adotar agilidade.

Individualmente os integrantes da Equipe de Desenvolvimento podem ter habilidades especializadas e área de especialização, mas a responsabilidade pertence à Equipe de Desenvolvimento como um todo;

Este item é simples e autoexplicativo, um dos maiores enganos é pensar que todos tem que saber tudo em times Scrum. O que deve ser explicado é simples, o pode, e digo mais, deve ter especialistas em áreas do desenvolvimento, como se fosse um time de algum esporte, por exemplo, basquete, onde há um pivô, um armador, ou mesmo um ala, mas a responsabilidade da entrega é do time como um todo, assim como vencer ou perder pertence ao time.

Equipes de Desenvolvimento não contém subequipes dedicadas a domínios específicos de conhecimento, tais como teste ou análise de negócios.

Aqui fica claro que além de não haver hierarquia não há também subdivisões, ou seja, não há uma parte da equipe que faz testes, outra que faz análise outra que faz modelagem, isso não cabe no conceito de time de desenvolvimento ágil. O que podemos ter como dito acima são especialistas em áreas ou com afinidades distintas, mas o ideal é que, caso necessário for, qualquer um do time possua o mínimo de habilidade desejada para realizar uma tarefa pertencente a um determinado item de backlog.

Ainda segundo o Scrum Guide, o tamanho de uma equipe deve ser pequeno o suficiente para se manter ágil e grande o suficiente para completar uma parcela significativa do trabalho, em outras palavras, se um time for muito grande sua gestão fica comprometida, mas se for muito pequena, pode esbarras na falta de habilidade necessária para realizar o mesmo trabalho. a Scrum.org recomenda, um time idealmente de 6, podendo variar em 3, ou seja, de 3 à 9 pessoas. Essa é uma alteração encontrada na versão do Scrum Guide publicada em julho/2011. Scrum Master e Product Owner não incluídos nesta contagem, a não ser que realizem papéis de desenvolvimento de Product Backlog, mas isso é assunto para outro momento.

Referencias

  1. SCHWABER, Ken; SUTHERLAND, Jeff. Scrum Guide, Scrum.org, 2011, p. 6  
Miguel Carlos Honorio

Comentários

Deixe uma resposta