Skip to content

Latest commit

 

History

History
44 lines (25 loc) · 4.25 KB

Desenvolvedores.md

File metadata and controls

44 lines (25 loc) · 4.25 KB

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!

Papéis: desenvolvedor

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...

Desenvolvedores devem:

  • 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.

E desenvolvedores não devem:

  • 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.