O time de desenvolvimento, como o próprio nome diz, é o responsável por desenvolver o produto. Ele é responsável por transformar itens do Backlog do Produto em incremento de software potencialmente utilizável. Somente membros do Time de Desenvolvimento entregam incrementos do Software, mais ninguém.
É importante frisar de que o Time de Desenvolvimento, não é feito só por programadores. O time precisa ser composto por todas as competências necessárias para que o produto que se deseja desenvolver, seja construído pelo time, sem dependência de qualquer outra pessoa externa ao time.
Por exemplo, se o produto é um software para Web, desenvolvido em Java com banco de dados Oracle, você irá precisar compor o time com analista de sistemas, programadores Java, webdesign, alguém com conhecimento em Oracle ou até um DBA se for algo muito complexo e testadores. Nenhum item de backlog, selecionado por esse time, poderá ser “terceirizado” para outra equipe. Não é correto fazer por exemplo, com que o Webdesign que está em outra equipe, faça o “front-end” para que o time de desenvolvimento faça o “back-end” e teste a solução. O conceito é produto pronto, do inicio ao fim, da criação das tabela, front-end, back-end e testes finais da solução.
O time de desenvolvimento é responsável ainda, pela definição das tarefas necessárias para que um item do backlog do produto seja considerado pronto, no exemplo acima, as tarefas poderão ser separadas, entre Design da tela, construção da camada de negócio, preparação das tabelas do banco de dados, testes unitários, testes funcionais, testes de regressão e por ai vai. É o time de desenvolvimento quem define essas atividades e o tempo estimado para conclusão de cada uma delas. Para que isso funcione, as pessoas deste time precisam ser auto-disciplinadas, elas não precisam ter um chefe dizendo o que elas precisam fazer, pois elas sabem o que deve ser feito e se auto organizam.
Em resumo, um time de desenvolvimento precisa ter pessoas com habilidades específicas e generalistas ao mesmo tempo. Um time de 3 pessoas, aonde um só faz análise, um só programa e um só testa, não irá funcionar no Scrum. Esse time precisa ter um analista que pode ajudar no desenvolvimento e testar, um programador que pode auxiliar nas definições de análise e testar e um testador, que também faça a análise e monte manual do usuário. O time precisa ser multidisciplinar.
O tamanho do Time de Desenvolvimento, segundo o framework Scrum, precisa ser grande o suficiente para conseguir entregar incrementos de software por completo e pronto para uso e pequeno o suficiente para não ser ágil. Recomenda-se que o time seja de 6 +/-3, ou seja, de 3 a 9 integrantes, sem contar o Scrum Master e o Product Owner. Os mesmos só poderão ser considerados, se eles também fizerem entregas do backlog da Sprint, ou seja, se eles também desenvolverem, seja analise, programação, testes, etc.
Ter um time menor do que 3 integrantes, pode ser que não seja possível entregar softwares por completo e também reduz demais as relações interpessoais. Ter mais do que 9 pessoas, o time poderá ser tornar lento e difícil de coordenar, então, tente montar times de 3 a 9.
Ai vem a pergunta, mas e se eu tiver 20 pessoas na empresa? Simples, monte pelo menos 3 times de desenvolvimento, que poderão trabalhar ou em produtos diferentes (com backlogs diferentes) ou no mesmo produto, compartilhando o mesmo backlog do produto.
Em resumo, o que o Time de Desenvolvimento precisa ter:
- Conhecimento sobre o Scrum, seus papéis, artefatos, cerimônias e regras.
- Colaboração, trabalho em equipe é essencial;
- Atuação com transparência;
- Buscar o máximo de valor ao negócio;
- Melhoria contínua;
- Apoiar o dono do produto a manter o backlog do produto;
- Auto-organização;
- Comprometimento;
- Trabalho com qualidade.
Sem dúvida, a essência do Time de Desenvolvimento no Scrum é o comprometimento total ao projeto, auto-organização e trabalho em equipe, sem isso, o processo não irá funcionar. Se na sua empresa, você não tem alguma dessas 3 qualidades no seu time, melhor trabalhar esses pontos que faltam e só depois implantar o Scrum, caso contrário, você irá se frustrar com os resultados.
Time que não tiver comprometimento, mesmo que seja auto-organizado, não vai funcionar. Um time comprometido, mas que não sabe se organizar e trabalhar em equipe, também não irá funcionar.
Mas existe uma pessoa que pode ajudar nesse processo, esse cara é o “Scrum Master”, que veremos no próximo post.
Até breve e um ótimo dia.