Prévia do material em texto
AULA 3 FRAMEWORK SCRUM Prof. Anderson Rodrigues Matos 2 TEMA 1 – CARACTERÍSTICAS DO TIME SCRUM Nas aulas anteriores, falamos sobre o que é o Scrum, por que ele foi criado, sua origem histórica, seus valores e pilares. O conhecimento e a compreensão desses tópicos são de suma importância para avançarmos às partes que compõem o Scrum. Com base nos valores e princípios é criada a base fundamental do Scrum, conhecida como: O 3-5-3 do Scrum, que se apresenta na estrutura conforme o quadro abaixo: Quadro 1 – O “3-5-3” do Scrum Fonte: Matos, 2020. Nesta aula, vamos falar das pessoas que dão vida a essa ferramenta, bem como de suas funções e responsabilidades, ou seja, o objeto desta aula serão os papéis do Scrum. Complementaremos com as características primordiais que se destacam no que se refere à produtividade e entrega de valor. No Scrum, a equipe de projetos tem papéis e responsabilidades bem definidos, assim como diversas etapas específicas, que devem ser cumpridas para que o produto seja desenvolvido de maneira ágil e com qualidade. Existe uma fábula conhecida na comunidade Scrum que faz uma analogia com o tema que estamos tratando no momento. Trata-se de um diálogo entre o porco e a galinha. 3 Figura 1 – O porco e a galinha Crédito: Sonsedska Yuliia/Shutterstock. O porco seria o indivíduo comprometido e responsável por determinada situação, artefato e por decisões diárias do Time Scrum. A galinha seria a pessoa apenas envolvida em alguma circunstância do projeto, que contribui somente com ovos, não com sua carne, como na fábula. Desta forma, em alguns momentos, as pessoas serão galinhas, e em outros, porcos. Desde que exista o respeito mútuo, o projeto segue sem maiores problemas quanto aos papéis. Esses papéis formam o Time Scrum, que tem características específicas, como multifuncionalidade e auto-organização, para que garantam maior produtividade, entrega de qualidade e valor com maior agilidade. Jeff Sutherland e JJ Sutherland, no livro Scrum: A arte de fazer o dobro do trabalho na metade do tempo, de 2014, mencionam a lista de características das equipes que se encontram nas melhores empresas do mundo, apresentada pelos professores Takeuchi e Nonaka. As características listadas são: Transcendentes – que têm senso de propósito acima do comum, o que lhes permite alcançar o extraordinário; Autônomos – se auto-organizam e auto-gerenciam, ou seja, têm o poder de decidir como executar o trabalho e fazer que suas decisões sejam cumpridas; Multifuncionais – na equipe existem integrantes com as habilidades necessárias para completar o projeto. Por exemplo, planejamento, design, produção, vendas e distribuição que alimentam e reforçam umas às outras. Já no Guia Scrum, de 2017, são descritas as características mencionadas de auto-organização e multifuncionalidade de maneira simples para melhor entendimento: 4 Times Scrum são auto-organizáveis e multifuncionais. Times auto- organizáveis escolhem qual a melhor forma para complementarem seu trabalho, em vez de serem dirigidos por outros de fora do Time. Times multifuncionais possuem todas as competências necessárias para completar o trabalho sem depender de outros que não fazem parte da equipe. O modelo do Time Scrum é projetado para aperfeiçoar a flexibilidade, criatividade e produtividade. A característica de transcendência é aplicada mais aos indivíduos que compõem o Time Scrum, porque, como mencionado no livro, refere-se a um senso de propósito, de engajamento para atingir o extraordinário. TEMA 2 – CARACTERÍSTICAS DO TIME DE DESENVOLVIMENTO Multidisciplinar: “Multi”, múltiplo, é palavra originada do latim, “multus”, algo que compreende diversos fatores. Disciplina, instrução, ensinamento. Multidisciplinar, portanto, pode ser entendido como a junção de disciplinas ou um sistema de ensino que compreende o conhecimento em diversas disciplinas, em busca de objetivos a alcançar, em alguma instrução em especial. Este foi um conceito que encontraremos nos dicionários. No Time de Desenvolvimento, multidisciplinar significa que a equipe é composta de membros que dispõem de todos os conhecimentos e habilidades necessários para criar o Incremento do Produto em cada Sprint, sem a necessidade de buscar soluções externas. Essa característica é de suma importância em uma equipe no Scrum porque, caso existam dependências externas, algo de que o Time de Desenvolvimento não tenha controle, pode significar um risco alto para o trabalho a ser realizado durante a Sprint. Se a equipe precisar aguardar resultados ou decisões de outras pessoas ou setores externos para realizar seu trabalho, pode gerar um atraso na entrega da Sprint, e a meta não será atingida. Assim, um Time de Desenvolvimento multidisciplinar reduz esse risco, pois é capaz de realizar todo o trabalho sem, a princípio, depender de pessoas ou setores externos. Compartilhamento de Conhecimento “Polinização Cruzada”: O Time de Desenvolvimento tem membros especialistas, com habilidades específicas para criação do incremento do produto, mas a responsabilidade pela entrega é do Time, e não individual. Assim, para que a um membro específico não fique sobrecarregado, deve ocorrer disseminação e compartilhamento dos conhecimentos, de maneira que todos sejam capazes de auxiliar em todas as 5 etapas da criação. Desta forma, os membros desenvolvem habilidades secundárias, o que colabora com o aumento da produtividade. Essa característica, portanto, reduz a dependência nas habilidades de determinados membros, diminuindo o risco de a equipe não atingir a meta da Sprint. Auto-organizado: Refere-se ao Time de Desenvolvimento como um todo, e não a indivíduos auto-organizados. Essa distinção é importante para entender que, na equipe, podem existir membros com maior ou menor maturidade no que se refere à auto-organização. Como em qualquer time, se duas pessoas não têm essa habilidade, outras três que as tenham podem cobri-las e ajudá-las, sem necessidade de auxílio externo. Feito esse esclarecimento, um time auto- organizado definirá a forma como realizará o desenvolvimento, transformando o Backlog do Produto em incremento que possa ser utilizado. Para que a auto-organização seja possível, é imprescindível que o Time de Desenvolvimento trabalhe de forma colaborativa, focando na comunicação entre seus membros. Regras simples e um objetivo comum, para que os membros interajam constantemente e encontrem a melhor forma de chegar ao objetivo. Tamanho do Time de Desenvolvimento: De acordo com o Guia do Scrum (2017), “O tamanho ideal do Time de Desenvolvimento é pequeno o suficiente para se manter ágil e grande suficiente para completar um trabalho significativo dentro da Sprint.” Fabio Cruz, em seu livro Scrum e Agile em Projetos: Guia Completo (2018), sugere que o número ideal para equipe sejam sete membros, mas que funcionaria bem também se variar entre três e nove membros. Em uma equipe com um número inferior a três, os níveis de interação, conhecimento e habilidades seriam limitados, podendo não desenvolver a produtividade desejada. Já um número maior que nove membros pode extrapolar os níveis de interação e comunicação, prejudicando a produtividade e o gerenciamento das atividades pelos integrantes. Lembrando que o Product Owner e o Scrum Master não entram no tamanho do Time de Desenvolvimento, e sim no Time Scrum. A composição do Time de Desenvolvimento pode ser alterada a cada Sprint, porém essa mudança não é aconselhável em razão de afetar diretamente a produtividade, pois a cada Sprint haverá necessidade de nova interação e criação de sinergia entre os membros da equipe. 6 Jeff e J.J. Sutherland, no livro Scrum: A arte de fazer o dobro do trabalho na metade do tempo(2014), cita Nicola Dourambeis, responsável pelas práticas ágeis na Selesforce.com (empresa listada com frequência na revista Fortune entre as 100 melhores empresas para se trabalhar; e na Forbes, entre as empresas mais inovadoras do mundo). Nicola diz que o Scrum era utilizado como ingrediente secreto do sucesso da Selesforce.com e conta que, para se certificar de que a equipe estava no caminho certo, indagava um membro da equipe, e se a resposta recebida estivesse mais direcionada ao produto do que à sua especialidade, Nicola dava a aprovação. Porém, se a resposta se identificasse mais com a especialidade do que com o produto, ele sabia que haveria ainda muito trabalho pela frente. O exemplo descreve o que foi apresentado nesta aula referente aos membros que compõem o Time de Desenvolvimento, ao objetivo e à responsabilidade principal da equipe. TEMA 3 – PAPÉIS DO SCRUM 3.1 Product Owner É o dono do produto. Ele tem o conhecimento do negócio e o compartilha com a equipe em forma de requisitos, necessidades, definindo a ordem de aplicação. Na prática, o Product Owner é o representante do cliente que faz a interface com a empresa. Ele é o contato da equipe para esclarecer as dúvidas quanto aos requisitos do produto. 7 Figura 2 – Product Owner Fonte: Juliane Krug/PD. 3.2 Scrum Master O Scrum Master procura sempre assegurar que a equipe respeite e siga os valores, além de ter perfil exigido pela função. Esse perfil ideal é baseado na ideia de um gestor que faz mais do que monitorar o andamento do processo e o desempenho das práticas do Scrum. Protege a equipe, garantido que não se comprometa excessivamente em relação àquilo que é capaz de realizar durante um Sprint. É um facilitador, responsável por remover quaisquer obstáculos que sejam levantados pela equipe durante essas reuniões diárias. Seu papel é exercido normalmente por um gerente de projeto ou líder técnico, mas pode ser qualquer pessoa da equipe, seria como um líder servidor, que lidera, mas que também sabe servir. O termo Scrum Master significa mestre do Scrum, e para desempenhar esse papel, é preciso ter familiaridade com o processo de Scrum e saber como realizá-lo corretamente, porque que ele será como um guia para o Time Scrum. 8 Figura 3 – Scrum Master Crédito: Sapann Design/Shutterstock. 3.3 Time de desenvolvimento É o time responsável por desenvolver o produto e transformar os requisitos do Backlog do Produto em incremento com potencial para ser utilizado. Precisa dispor de todas as competências necessárias para que o produto seja construído sem interferência ou dependência de qualquer pessoa externa ao time. Figura 4 – Time de desenvolvimento Crédito: Sapann Design/Shutterstock. 9 TEMA 4 – FUNÇÕES E RESPONSABILIDADES 4.1 Product Owner A definição das necessidades dos usuários e dos requisitos técnicos e a produção da documentação conforme tais necessidades serão realizadas em conjunto com a equipe, bem como a determinação da ordem de sua execução. O Product Backlog (local onde constam todas essas informações e necessidades) é gerenciado pelo Product Owner, que deve mantê-lo detalhadamente e com a qualidade de que a equipe necessita. O Product Owner também é o responsável pela definição da liberação dos releases, e no final deles fará as validações das implementações, garantindo que estas contêm as funcionalidades e a qualidade necessárias para a liberação ao cliente. Pensando na fábula citada no Tema 1, o Product Owner é o "porco" dos requisitos do projeto. É função dele registrar todos os requisitos, necessidades do negócio e prioridades das entregas, além de ser responsável por tornar os registros de conhecimento de todos (backlog do produto). Por conhecer o negócio, é ele quem faz a ligação com o mercado e com os clientes, sabendo exatamente o que deve ser feito, porém não é ele quem determina como será feito. Portanto, no que se refere ao desenvolvimento e aos processos, o Product Owner é a “galinha”. Fabio Cruz, no livro Scrum e Agile em Projetos: Guia Completo (2018), lista as responsabilidades do Product Owner: • Elevar ao máximo o valor do produto e do trabalho do Time de Desenvolvimento, sempre com foco no gerenciamento do backlog do produto; • Expressar-se de forma clara e detalhada para que todos entendam o que precisa ser feito para proporcionar valor ao produto; • Saber a ordem das atividades para promover o desenvolvimento do produto, seguindo sempre uma linha de importância no alcance das metas esperadas pelo cliente; • Otimizar o valor do trabalho realizado pelo Time de Desenvolvimento; • Garantir que todo backlog do produto seja visível, para todos os interessados, deixando claro o que deve ser buscado; 10 • Garantir que o Time de Desenvolvimento entenda os itens do backlog do produto para que ele seja construído corretamente. É importante frisar que outro profissional não pode tirar a autoridade do Product Owner, mesmo que seja superior hierarquicamente no que diz respeito às definições de o que deve ser realizado na backlog do produto. Antes de qualquer alteração, é necessário verificar com o Product Owner. Somente ele pode definir se é viável ou não a modificação, porque é ele quem vai analisar cada solução apresentada ao produto, decidindo se elas atendem às prioridades do programa. 4.2 Scrum Master Figura 5 – Scrum Master Fonte: Juliane Krug/PD. Atua em todos os processos de Scrum, um deles é o planejamento de uma Sprint com o Product Owner. O papel principal do Scrum Master é a orientação do Time para realização dos trabalhos, mas ele não o gerencia ou executa as atividades, apenas o guia para uma direção mais assertiva. No livro Scrum e Agile em Projetos: Guia Completo (2018), é feita uma analogia do Scrum Master com um técnico de futebol e seu time de jogadores, em que, antes do início da partida, o técnico orienta tecnicamente seus jogadores sobre regras, posições e melhor estratégia para ganhar o jogo, mas quando o jogo começa, são os jogadores os responsáveis por se auto-organizar, implementar a estratégia e realizar as jogadas de acordo com as regras. O técnico ficará do lado 11 de fora do campo, observando, orientando, corrigindo posições e marcações, lembrando a estratégia, sem poder, no entanto, realizá-las. Na fábula apresentada no Tema 1 desta aula, o Scrum Master é o "porco" dos processos do time. É a pessoa responsável por garantir que todos estejam conectados ao processo, sigam as regras, que utilizem os artefatos corretamente e que participem das cerimônias. É quem incentiva a melhoria contínua e ajuda a proteger o time dos demais stakeholders que devem entender seu papel. Mas no que tange ao desenvolvimento do produto ou dos requisitos, o Scrum Master é apenas uma "galinha". É possível afirmar que o papel do Scrum Master é o mais importante do Scrum, porque mesmo que o Product Owner e o Time de desenvolvimento sejam inexperientes, se somente o Scrum Master for experiente já há uma chance de sucesso na aplicação do Scrum. Isso porque ele saberá orientar o time e, em razão dessa experiência que tem no contato com o Product Owner, também saberá orientá-lo no desempenho do seu papel e de suas responsabilidades. O Scrum Master serve tanto ao Product Owner como ao Time de Desenvolvimento. No Guia Scrum (2017), de Ken Schawber e Jeff Sutherland, é descrito como ocorrem esses serviços para os demais papéis e para a organização como um todo. Serve o Product Owner: • Garantindo o entendimento do Time Scrum no que se refere ao escopo e domínio do produto; • Encontrando técnicas para que seja efetivo o gerenciamento do Backlog do Produto; • Auxiliando o Time Scrum a entender as necessidades do produto, para que os itens do Backlog do Produto tornem-se claros e concisos; • Entendendoo planejamento do Produto em um ambiente prático; • Certificando que o Product Owner saiba como organizar o Backlog do Produto para potencializar o valor; • Entendendo e praticando a agilidade; • Auxiliando nos eventos do Scrum conforme são exigidos. Serve o Time de Desenvolvimento: • Orientando, treinando quanto ao autogerenciamento e à interdisciplinaridade; 12 • Auxiliando na criação dos produtos com o objetivo de maximizar o valor; • Removendo os obstáculos encontrados e informados pelo time; • Treinando o Time para atuar nas organizações em que o Scrum não está totalmente difundido. Serve a organização: • Liderando o treinamento da organização para implementação do Scrum; • Planejando a implementação na organização; • Ajudando as partes interessadas e os funcionários a entender como tornar aplicável o Scrum e sobre o desenvolvimento do produto empírico, prático e experimental; • Promovendo mudanças que aumentam a produtividade do time; • Trabalhando com outros Scrum Masters para aumentar o entendimento e a eficácia do Scrum na organização. Como mencionado, o Scrum Master é o responsável por remover obstáculos, resolver qualquer tipo de impedimento que possa prejudicar o andamento das tarefas do time ou que reduza sua produtividade. Vamos descrever alguns desses impedimentos para melhor entender e visualizar esse papel tão importante do Scrum. • Gap de Conhecimento: Neste caso, o Scrum Master pode suprir a necessidade propagando seu próprio conhecimento, indicando outros para fazê-lo, ou, ainda, realizando treinamentos para suprir essa falta de conhecimento. • Problemas com Infraestrutura: Um computador com problemas, uma cadeira ou mesa quebrada são exemplos em que é responsabilidade do Scrum Master buscar, com as áreas responsáveis da empresa, a solução, seja de forma emergencial ou preventiva, para garantir que a produtividade da equipe não seja afetada. • Intervenções externas: Muito comuns nas organizações, devem ser identificadas e comunicadas pelos membros da equipe, porque inevitavelmente prejudicarão o andamento das atividades. Principalmente quando forem solicitadas em outras atividades, fora do escopo. O Scrum Master deve manter as demais áreas da organização informadas de que a equipe permanecerá focada para manter o nível de produtividade. 13 4.4 Time de desenvolvimento Figura 6 – Time de desenvolvimento Crédito: Sentavio/Shutterstock. Fabio Cruz, no livro Scrum e Guia PMBOK: Unidos no Gerenciamento de Projetos, de 2013, descreve algo muito importante sobre o Time de Desenvolvimento no que se refere às habilidades dos membros: independentemente do conhecimento especializado de cada membro do time, o que realmente importa é a habilidade em transformar um requisito em um produto que possa ser utilizado. Desta forma, não há titulações na equipe, e todos trabalham em um mesmo nível e com o mesmo objetivo. Analisando essa informação, vamos retomar o tópico da aula anterior em que falamos sobre os valores do Scrum. Nesta situação específica, o valor que se destaca é o respeito, porque se refere às limitações de cada indivíduo. Um membro especialista em uma área pode ser leigo em outra, mas se houver o respeito, ambos podem compartilhar conhecimentos e trabalhar em harmonia para realizar a entrega com valor e qualidade, e isso é facilitado porque todos têm posições iguais dentro da equipe. A função do Time de Desenvolvimento é seguir a priorização dos requisitos do backlog do produto. Com base no que o Product Owner apresentou sobre o que é esperado para a próxima Sprint, é responsabilidade do time definir um plano de 14 ação, quebrando os requisitos em tarefas e estimando o trabalho necessário para entregar o esperado. Se o Time de Desenvolvimento identificar que o requisito apresentado é superior à capacidade do time, seus integrantes devem sinalizar ao Product Owner e verificar a possibilidade de uma entrega menor ou uma adaptação das prioridades. Ainda, o Time de Desenvolvimento é responsável por definir o escopo de cada Sprint, alinhando com a capacidade de entrega, e o dever de seguir o processo e as instruções estabelecidas pelo Scrum Master no que se refere às cerimônias e artefatos do Scrum, não sendo admitidos desvios ou abandono do processo. TEMA 5 – PAPÉIS X CARGOS Figura 7 – Papéis x cargos Crédito: Rido/Shutterstock. Os três papéis definidos pelo Scrum são indispensáveis para que o ciclo de vida do Scrum transcorra sem problemas. Eles exigem, sim, habilidades específicas, porém não definem cargos para as pessoas que assumem cada um desses papéis. 15 O papel do Product Owner pode ser desenvolvido por qualquer pessoa da organização que conheça de negócio e esteja familiarizada com os desejos dos clientes, conseguindo transformá-los em requisitos, os quais devem ser transmitidos ao Time de Desenvolvimento de forma clara. Esse profissional pode exercer qualquer cargo na empresa, desde um analista até um gerente de área, geralmente de negócios, contudo necessariamente precisa ter as habilidades mencionadas de conhecimento de negócios e desejos dos clientes quanto ao produto a ser desenvolvido. O papel do Scrum Master pode ser desenvolvido por um líder de projetos, coordenador, analista, até um integrante da equipe do Time de Desenvolvimento, desde que possua habilidades específicas e boa comunicação com o Product Owner, bem como o conhecimento da empresa como um todo para facilitar a remoção dos impedimentos que venham a ocorrer. Com isso, será capaz de fornecer todos os equipamentos necessários para que a equipe possa desenvolver seu trabalho sem maiores problemas. Já no Time de Desenvolvimento, todos ocupam funções específicas de acordo com sua especialidade, e não havendo profissional especialista na empresa, ele deve ser buscado no mercado. Durante o desenvolvimento, pode ocorrer a transmissão de conhecimento para que os integrantes se auxiliem mutuamente, fazendo de todos um time sem especificação de cargos, apenas de características necessárias para produção do produto com qualidade e que atenda aos desejos do cliente. 16 REFERÊNCIAS CRUZ, F. Scrum e Agile em Projetos: Guia Completo. Rio de Janeiro: Brasport, 2018. _____. Scrum e Guia PMBOK: Unidos no Gerenciamento de Projetos. Rio de Janeiro: Brasport, 2013. DUARTE, L. Scrum e Métodos Ágeis: Um Guia Prático. [S.l]: LuizTools, 2016. PMI – Project Management Institute. Guia Ágil. Newtown Square: PMI, 2017. _____. Guia PMBOK®: Um Guia para o Conjunto de Conhecimentos em Gerenciamento de Projetos. 6. ed. Pennsylvania: PMI, 2017. SUTHERLAND J. Guia do Scrum. [S.l], 2018. _____. SCRUM: A Arte de Fazer o Dobro do Trabalho na Metade do Tempo. Rio de Janeiro: Editora Sextante, 2019.