Desenvolvedor é aquele que ajuda a executar o projeto e o faz andar para a frente: programadores, DBA, arquitetos, analistas, front-ends, testers, entre outros. São todas as pessoas e funções que ajudam o projeto a sair do papel e virar um sistema ou produto final.
Resumindo, com exceção do Product Owner e do Scrum Master, o restante do time é o grupo de desenvolvimento.
Mesmo o Product Owner e o Scrum Master podem ser part-time - parte do tempo - desenvolvedores. É mais usual encontrar Scrum Master como desenvolvedor do que Product Owner, mas é possível para ambos os cargos.
O desenvolvedor fará o trabalho que sempre fez, porém, com algumas outras responsabilidades. Ele destrincha as histórias por um viés técnico, por exemplo, de maneira a estimar o esforço envolvido. Este é o primeiro aspecto que diferencia o Scrum de outros desenvolvimentos de projeto: ninguém deve chegar e falar para o desenvolvedor qual deve ser seu trabalho.
Caso alguém diga "6 horas para executar uma tarefa", são 6 horas independentemente do trabalho levar mais ou menos tempo. E no Scrum esta situação não acontece, pois é o time de desenvolvimento que estima trabalho e tempo necessários. Após rodarem várias vezes o ciclo no Planning, o próximo passo é que o P.O. e os desenvolvedores negociem o que realmente cabe na Sprint.
Ou seja, os desenvolvedores também decidem o quanto de trabalho pode ser feito em um time-box. Não é uma pessoa externa que define tempo, são os próprios envolvidos no trabalho. E o cliente e o P.O. confiam no tempo estimado pelos desenvolvedores, justamente porque eles são os que melhor sabem sobre o que podem fazer.
Em algumas empresas as tarefas são atribuídas a diferentes pessoas por um terceiro. Mas no Daily Scrum é o próprio desenvolvedor e o time como um todo que escolhem, e não alguém externo, tampouco o gerente.
A função de distribuir tarefas que no Scrum costumava estar nas mãos de gerentes e outras figuras de comando, já não ocorre mais. É o próprio time e, especificamente, os desenvolvedores que são responsáveis por isso.
Os desenvolvedores passam a ser responsáveis pelo trabalho feito, e são eles próprios que estimam o quanto podem e são capazes de fazer. Assim como também afirmam quando podem fazer. É uma responsabilidade a mais? Sim! Mas é tratar profissionais como adultos, e é isso que almejamos conquistar após certo treinamento, Sprints e iterações.
No início, o Scrum Master terá mais trabalho, por conta de ser um momento de educar e explicar aos desenvolvedores envolvidos a questão do comprometimento. Porém, a tendência é que isso se ajuste com o tempo!
Enquanto em ambientes mais tradicionais os executores das tarefas apenas fazem o trabalho que lhes é atribuido, tentando respeitar os prazos já decididos por eles e da forma como alguém definiu... essa não é nossa realidade em times ágeis.
Como vimos nos capítulos anteriores, desenvolvedores discutem histórias tecnicamente, estimam o esforço para fazê-las e negociam o que cabe na Sprint durante o planning. Daí, nos daily scrums, eles decidem qual tarefa vão pegar para si, considerando o resultado esperado da Sprint.
A vida dos desenvolvedores dentro de um ambiente ágil é mais complexa do que em um ambiente tradicional, onde eles podem apenas seguir ordens e já fazem seu trabalho. Ao mesmo tempo, as possibilidades de crescimento pessoal aqui são muitas e a autonomia dada a esse grupo é muito interessante, especialmente dado que tratamos aqui com trabalhadores do conhecimento. Em um time ágil, há espaço para criatividade no desenvolvimento.
Em resumo, no dia-a-dia dos desenvolvedores em times ágeis...
- Decidir a abordagem técnica para os problemas apresentados;
- Trocar informações e ajudar os companheiros de time;
- Estimar as histórias durante o planning;
- Escolher sua próxima tarefa a ser feita, considerando as prioridades da Sprint;
- Buscar a qualidade do projeto e a redução de erros.
- Considerar dúvidas técnicas como impedimentos - elas são apenas problemas;
- Esperar que alguém decida as atividades a serem feitas por eles;
- Se recusar a aprender um pouco sobre outras áreas de desenvolvimento.