Scrum e Extreme Programming CODEX
Sumário Objetivo 3 Scrum 4 Papéis de Atuação 4 Eventos do Scrum 5 Artefatos do Scrum 5 Porque Scrum? 5 Extreme Programming 6 Práticas do Extreme Programming 6 Porque XP? 7 Funções/Atribuições 8
Objetivo Este documento apresenta as metodologias utilizadas no processo produtivo CODEX. Como base, utilizamos a metodologia ágil Scrum e Extreme Programming.
Scrum A proposta do Scrum é fornecer subsídios para o gerenciamento de atividades muitas vezes complexas, porém de uma forma flexível e que facilite a adaptação do projeto diante das inevitáveis mudanças. São três as ideias principais em que a metodologia Scrum se ampara: Transparência: Consenso entre o grupo participante do projeto, os termos do negócio regras e outros. Inspeção: A verificação contínua do que é produzido é fator determinante para que se tenha a certeza de que o projeto caminha dentro do estipulado, bem como para diagnosticar desvios indesejáveis e atuar de forma corretiva sobre estes últimos. Adaptação: A flexibilidade diante de mudanças. Não serão raras as ocasiões em que alterações em demandas de clientes ou ainda, regulamentações governamentais e de ordem setorial, acarretarão desvios de rotas pré-estabelecidas. Como outros métodos ágeis, Scrum é uma metodologia que prima pelo desenvolvimento iterativo e incremental de software. Em termos práticos, isto significa que ciclos contendo um conjunto de específico de atividades são repetidos continuamente ao longo de um projeto; por incremental, deve-se ter em mente a idéia de sucessivas entregas de funcionalidade, acrescentando aquilo que se espera do software em intervalos constantes de tempo. Papéis de Atuação Product Owner: representante da área cliente/solicitante definir prioridades; Scrum Master: o líder que gerenciará o projeto- garante que a equipe siga de maneira adequada o scrum; Equipe de Desenvolvimento/Time: os profissionais responsáveis pela criação do produto esperado. Além dos três papéis já descritos, certamente também existirão envolvidos com o projeto, mas que não desempenham um papel direto na sua execução. Estes elementos podem englobar usuários, gerentes, diretores ou departamentos que possuem interesses ( stakeholders ).
Eventos do Scrum São possíveis dentro de Scrum os seguintes eventos: Reunião de Planejamento da Sprint: definir prioridades das funcionalidades a serem implementadas. Reunião Diária: O que já foi realizado antes da reunião e o que ainda será realizado. Revisão da Sprint: Entrega do software funcionando (conforme definido pela metodologia). Retrospectiva da Sprint: Nesta discussão aborda-se o que deu certo e aquilo que falhou, além de se estudarem formas para se melhorar num próximo ciclo (Sprint). Artefatos do Scrum Product Backlog é uma listagem que contempla todas as funcionalidades desejadas para o software que se está implementando. Sprint Backlog é uma relação de tarefas elaborada pelo Time de Desenvolvimento durante a segunda etapa da Reunião de Planejamento da Sprint. Porque Scrum? Facilidade de adaptação: O controle de processos empíricos e a entrega iterativa fazem com que os projetos sejam adaptáveis e abertos à incorporação de mudanças. Permite um feedback contínuo fornecido através de processos denominados como a Reunião Diária e a Sprint Review. O Scrum, por ser uma metodologia ágil e ter uma estrutura de colaboração permite que os times multifuncionais atinjam o seu pleno potencial e alta velocidade que é o que todos almejam.
Extreme Programming O Extreming Programming (XP) tem muita semelhança com SCRUM em termos de valores e modelo de desenvolvimento de projetos, ou seja, como desenvolver projetos que possam abraçar as incertezas de forma mais seguras. No entanto, esses dois métodos também são complementares, visto que SCRUM é mais como um framework gerencial. O XP desenvolve menos esses aspectos e foca mais em práticas de engenharia. Práticas do Extreme Programming Pair Programming: Quando duas pessoas trabalham em uma única máquina. Um colaborador codifica e o outro faz sugestões pertinentes, trocando de funções em determinado momento. Essa troca garante uma comunicação mais fácil, garantindo maior produtividade e um projeto de alta qualidade. Projeto simples:design simples e que permite a realização de testes. Essa prática garante que a criação em excesso de generalizações dentro do código fonte seja evitada e prepara o sistema para possíveis mudanças. Teste: Cada funcionalidade de um projeto possui um teste antes de ser codificado, isso garante que não exista retrabalho entre os colaboradores e mantém a qualidade dos projetos. Refatoração: É a mudança e melhoria do código, sem que seu comportamento e sua funcionalidade sejam alterados. Propriedade coletiva: Qualquer colaborador pode modificar códigos e mexer em todas as partes do projeto. Isso garante que, caso alguém saia da equipe, o projeto não seja prejudicado. Interação contínua: Os códigos são integrados e testados constantemente, para caso algum problema for detectado, seja corrigido imediatamente. Cliente presente: O cliente deve estar presente para aprovação, definição de prioridade e auxiliar no desenvolvimento do projeto. Semana de 40 horas: Evita-se trabalhar mais de 40 horas semanais, visando o bemestar da equipe para manter o projeto em alta qualidade. Padrões de código: O fato de todos os colaboradores participarem de todos os processos requer que um padrão na codificação seja mantido. Metáfora: Uma linguagem comum garante que o entendimento de ideias seja simplificado, o intuito é que ideias complexas sejam passadas de forma simples.
Reunião diária: Nela se discutem o que foi feito anteriormente, o que está sendo feito no dia atual e o que ainda tem que ser feito. Porque XP? As chances de erros são menores com o método XP O método Extreme programming (XP) trabalha com prevenção de erros para agilizar o desenvolvimento. Fazendo com que a equipe fique mais unida, o XP aplica métodos como pair programming (programação em pares), onde um desenvolvedor digita o código enquanto o outro observa se ocorrem erros simples, analisa o funcionamento e avisa o companheiro caso tenha alguma sugestão. O cliente fica mais satisfeito Entregar uma versão básica funcional do programa para o cliente já deixa ele mais satisfeito, mas acompanhar os processos de perto faz com que ele fique maravilhado com o desenvolvimento e dê mais valor à sua equipe. Ter o poder de recomendar funcionalidades que são necessárias e vê-las entregues é o suficiente para melhorar qualquer relacionamento com seus clientes.
Funções/Atribuições Renan Felipe Philip Ramon Mateus Joanderson Matheus Vinícius Scrum Master Equipe de Desenvolvimento Product Owner Equipe de Desenvolvimento Gerente de projeto Gerente de Designer Analista de Testes Analista de Testes Programador Backend Programador Frontend Programador Backend Programador Backend