Uma breve Introdução…
Scrum é uma metodologia ágil que visa facilitar o gerenciamento de projetos, de forma dinâmica, extinguindo o antigo formato de gestão, onde havia um chefe e seus funcionários, a ideia base do Scrum é ter um líder, Scrum Master, que ira orientar e resolver os impedimentos da equipe, trazer um representante da empresa contratante, Product Owner, que apresentará ao Scrum Master uma serie de historias de usuário, Users Stories, para que juntos possam definir como será o sistema e por fim o time que desenvolvera o sistema proposto para empresa contratante, conforme as especificações apresentadas pelo Scrum Master.
ScrumMaster
Tipicamente é exercido por um gerente de projeto ou um líder técnico, mas a princípio pode ser qualquer pessoa da equipe, por este fato na maioria das vezes surge uma duvida sobre a real função do ScrumMaster.
Para compreendermos melhor sua definição, precisamos definir a diferença entre um líder técnico e um ScrumMaster:
Quando você é um líder técnico, é natural que você ainda tente dar soluções técnicas para determinados problemas, dizendo para o time o que fazer, como fazer, acaba forçando prazos de entrega e até muitas vezes acaba executando tarefas que o time deveria realizar, pois não acredita na capacidade dos integrantes da equipe. Acaba se tornando aquele chefe, com o seguinte pensamento: “…se você quer que algo seja bem feito, faça você mesmo…”
Já quando se é um ScrumMaster, você age de maneira diferente, acabam as cobranças de um chefe e surge a ideia de liderança para uma equipe, pois você passa a confiar nos membros da equipe, sabe que todos cumpriram com suas tarefas, então você passa a focar apenas em suas obrigações, que são em geral, resolver impedimentos e dar algumas orientações a equipe. Surge um novo pensamento: “…somos uma equipe, todos são capazes de realizar suas tarefas…”
A partir de um trecho artigo escrito por Mike Cohn no Scrum Alliance, Os seis atributos de um bom ScrumMaster, podemos compreender melhor as habilidades que você deve ter para se enquadrar no perfil:
“…Artigo do Mike Cohn no Scrum Alliance, seis atributos de um bom Scrum Master
Um Bom ScrumMaster é:
1° Responsável
O Scrum Master não assume a responsabilidade pelo sucesso do projeto (essa responsabilidade é do Time), em contra partida ele é o responsável na adoção e prática do Scrum pelo Time.
2° Humilde
Um bom Scrum Master não é cheio de si. Seu sentimento deve ser “Olha o que eu ajudei a fazer” ao invés de “Olha o que eu fiz”.
Ele está disposto a fazer o que for necessário para que o time alcance seu objetivo.
3° Colaborativo
O Scrum Master deve ajudar a gerar uma atmosfera colaborativa no time, facilitando o surgimento de debates entre os membros do time.
4°Comprometido
O Scrum Master deve ter o mesmo comprometimento que o time tem com o objetivo do Sprint,
além do compromisso na resolução das barreiras que estão impedindo ou poderão impedir o time de alcançar esse objetivo.
5°Influente
O Scrum Master precisa exercer influência dentro e fora do time.
Influenciando o time por exemplo em práticas como Test-Driven Development ou Pair Programming.
Em geral o Scrum Master deve ter habilidades em “política coorporativa”, isso pode ser um trunfo para o time.
6°Entendido
O Melhor Scrum Master tem o conhecimento necessário para ajudar o time a buscar seu objetivo…”
artigo extraido do site: ScrumAllience
Product Owner
O Product Owner representa os interesses de todos os envolvidos, stakeholders (termo usado pelo filósofo Robert Edward Freeman que enfatiza elementos essenciais para o planejamento estratégico de negócios).
É o papel de maior responsabilidade e visibilidade do método scrum, ele representa o cliente em si, pois dependendo da decisão tomada por ele, o projeto pode ir a falência.
A sua responsabilidade é ter uma visão do que o cliente deseja construir e transmitir essa visão para a equipe de Scrum, isso é fundamental para iniciar qualquer projeto de desenvolvimento de software ágil. Um product owner ágil, faz isso através do product backlog, que é uma lista de recurso priorizada para o produto.
Para exercer esse papel o indivíduo precisa de certas habilidades e características como: disponibilidade, habilidades de comunicação e compromisso, para que seja feito o que for necessário a fim construir o melhor produto possível, visando o ROI (Retorno de Investimento).
Assim como o Scrum Master, o Product Owner não possui hierarquia sobre a equipe enquanto exerce seu papel, mantendo sempre o foco na obtenção do melhor do processo, pessoas e recursos para atingir o máximo de valor para o negócio, de forma equilibrada e sustentável.
Product Backlog
O product owner precise quebrar a visão do produto em partes que agregam valor ao cliente e gerar uma lista de funcionalidades. Essa lista, chamada de product backlog, pode ser criada usando qualquer técnica para obter informações, desde os itens que a compõe e sejam escritos de forma clara e resumida.
É fundamental que todos os membros do time conheçam e entendam o backlog, que precisa sempre estar atualizado e disponível para todos os envolvidos no projeto.
Priorizar o Backlog
Existem varias técnicas que auxiliam esta tarefa, mas basicamente no SCRUM, a priorização é feita considerando fatores como valor, custo e risco. O entendimento do próprio Product Owner sobre a importância de cada funcionalidade para desenvolver do produto é crucial nessa fase.
Release Plan do Produto
Release plan é a visão do produto em relação a uma linha do tempo. Cabe ao Product Owner criar esse plano e eleger quais funcionalidades deverão estar prontas e de acordo com os critérios definidos por ele ao final de cada Sprint.
Time
O Time Scrum é composto pelo Product Owner, a Equipe de Desenvolvimento e o Scrum Master, eles são auto-organizáveis e multifuncionais.
Equipes auto-organizáveis escolhem qual a melhor forma para completarem seu trabalho, em vez de serem dirigidos por outros de fora da equipe.
Equipes multifuncionais possuem todas as competências necessárias para completar o trabalho sem depender de outros que não fazem parte da equipe.
As características citadas acima formam o modelo de equipe do Scrum, que é projetado para aperfeiçoar a flexibilidade, criatividade e produtividade, entregando produtos de forma iterativa e incremental.
Entregas incrementais de produto, o famoso “Pronto”, garantem que uma versão potencialmente funcional do produto esteja sempre disponível.
O papel do time é:
-Definir metas das iterações;
-Auto-gerenciamento constante;
-Produzir produto com qualidade e valor para o cliente.
Tamanho do Time
O tamanho ótimo para um Time é de sete pessoas, excedendo duas pessoas para mais ou para menos.
Quando há menos do que cinco membros em um Time, há menor interação e, como resultado, há menor ganho de produtividade. Mais do que isso, o time
poderá encontrar limitações de conhecimento durante partes da Sprint e não ser capaz de entregar uma parte pronta do produto. Se há mais do que nove
membros, há simplesmente a necessidade de muita coordenação. Times grandes geram muita complexidade para que um processo empírico consiga
gerenciar. No entanto, temos encontrado alguns Times bem-sucedidos que excederam os limites superior e inferior dessa faixa de tamanhos.
O Product Owner e o ScrumMaster não estão incluídos nessa conta. A composição do Time pode mudar ao final da Sprint, mas deve-se tomar cuidado ao mudar a composição do Time.
Vantagens do Scrum
Após se trabalhar com Scrum, encontramos muitas vantagens, que transformam a vida no setor de desenvolvimento, destacamos abaixo as principais vantagens:
1 – Motivação – Os programadores se sentem muito mais motivados devido ao seu interesse de entregar o Sprint no prazo.
2 – O projeto pode ser visualizado – Dentro da organização o projeto pode ser observado por todos. Em outras metodologias esta possibilidade não existia.
3 – Ausência significante de bugs – Como a qualidade é mais importante do que o prazo de entrega, o produto apresenta uma diminuição significativa de erros (bug).
4- Alterar as prioridades – Os programadores podem manejar as prioridades sem problemas, garantindo assim que sprints que ainda não foram finalizados possam ser alterados sem problemas.
Autores: Alcir Rodrigues dos Santos Junior, Hendryl Ribas, Luiz Claudio Polezel, Johny Erick – Alunos da Fabrica de Software – Senac MS