Baixe o app para aproveitar ainda mais
Prévia do material em texto
Análise e Desenvolvimento de Sistemas Engenharia de Software O processo RUP / Métodos Ágeis 2/ Agenda O processo RUP Desenvolvimento ágil Exemplo de metodologia ágil: SCRUM 3/ Agenda O processo RUP Desenvolvimento ágil Exemplo de metodologia ágil: SCRUM 4/ O processo RUP Definição –O modelo de Processo Unificado Rational (Rational Unified Process ou simplesmente RUP) é um modelo de processo moderno de software que surgiu para suportar a linguagem de notação UML (Unified Modeling Language); –A linguagem de notação UML começará a ser estudada neste curso, quando se iniciar os estudos sobre a técnica de Casos de Uso, que auxilia na descoberta e registro dos requisitos de um sistema; –O RUP é uma instância do Processo Unificado de Desenvolvimento de Software – é uma aplicação dele (KROLL; KRUCHTEN, 2003) . 5/ O processo RUP Conceitos –É um modelo de processo híbrido - reúne elementos de todos os modelos de processos genéricos; –Descreve boas práticas de especificação e de projeto e suporta prototipagem e também desenvolvimento incremental; –Suporta artefatos orientados a objetos, em particular, UML; –Gerenciável e controlável; –O RUP é descrito a partir de três perspectivas: Perspectiva dinâmica, que mostra as fases do modelo ao longo do tempo; Perspectiva estática, que mostra as atividades do processo que foram adotadas; Perspectiva prática, que sugere boas práticas para serem utilizadas durante o processo. 6/ O processo RUP Fases –As fases do RUP são mais relacionadas aos negócios do que a atividades do processo (como no modelo Cascata); –São quatro fases: Início (ou Concepção) estabelece um plano de negócios para o sistema, identificam-se todas as entidades externas que interagirão com o sistema e definem-se essas interações; Elaboração: entende-se o problema, elabora-se uma arquitetura do sistema, desenvolve-se um plano do projeto e identificam-se os principais riscos do projeto. Produz um modelo de requisitos do sistema; Construção: envolve o projeto do sistema, programação e testes. Desenvolvimento executado de modo integrado e em paralelo. Resulta em um software operacional e sua documentação associada prontos para serem entregues aos usuários; Transição: trata da passagem do sistema em desenvolvimento para os seus usuários finais e fazer com que o sistema funcione em um ambiente real. 7/ O processo RUP Perspectiva dinâmica – Fases –Fase de Início Descreve um produto potencial que será transformado em um projeto real; A principal decisão a ser tomada no final desta fase: deve-se ou não investir tempo e dinheiro para analisar em detalhes o que vai ser construído; Entradas: ideia inicial; um sistema legado; pedido de desenvolvimento (RFP – Request For Proposal); produto anterior e uma lista de melhorias; disponibilidade de software, conhecimento, dinheiro; um protótipo; Saídas: uma descrição clara do produto (requisitos principais) → funcionalidade, escopo, eficiência, capacidade etc; critérios para avaliar o sucesso (exemplo projeção de vendas); avaliação inicial de riscos; estimativa de recursos para terminar a fase de Elaboração. 8/ O processo RUP Perspectiva dinâmica – Fases –Fase de Elaboração Analisa-se profundamente o problema para se estabilizar a arquitetura. No final desta fase produz-se um plano indicando como as próximas duas fases serão realizadas; Constrói-se um protótipo, em uma ou mais iterações, dependendo do escopo, risco, tamanho, grau de inovação do projeto abrangendo pelo menos os casos de uso principais; Entradas: produtos e artefatos produzidos na fase anterior; um plano aprovado, financiador e recursos para esta fase; Saídas: plano detalhado do software com avaliação de riscos atualizada; plano de gerência; plano de equipes; plano da fase, indicando o número e o conteúdo de cada iteração; plano de iteração, detalhando a próxima iteração; ambiente de desenvolvimento e outras ferramentas necessárias; plano de testes. 9/ O processo RUP Perspectiva dinâmica – Fases –Fase de Construção Esta fase é dividida em diversas iterações, evoluindo a arquitetura de referência até o produto final. Para cada iteração tem-se critérios de entrada e de saída; Entradas: produtos e artefatos produzidos na fase anterior. Neste caso, o plano de iteração da fase anterior deve ainda especificar: capacidades adicionais do sistema; riscos a serem eliminados nesta iteração; defeitos a serem consertados nesta iteração; Saídas: os mesmos produtos e artefatos da fase anterior e documento descrevendo a versão; casos de teste realizados sobre os produtos; plano de iteração, descrevendo a próxima iteração; critério de avaliação mensurável, para as próximas iterações. 10/ O processo RUP Perspectiva dinâmica – Fases –Fase de Transição Envolve marketing, empacotamento, instalação, configuração, suporte, correções etc. As iterações continuam com uma ou mais versões: versões “beta”, versões de correção etc. Um aceite formal é feito pelo cliente e então todas as atividades são terminadas. Entradas: os produtos e artefatos da iteração anterior e o software suficientemente maduro para ser instalado/operado no cliente; Saídas: atualizações de documentos anteriores, se necessário; uma análise “post-mortem” do produto em relação aos critérios de sucesso originalmente definidos; inventário dos novos ativos obtidos pela organização como resultado. 11/ O processo RUP Perspectiva dinâmica – Iterações –São suportadas de duas formas: Cada fase pode ser executada independentemente de forma iterativa com seus produtos obtidos de modo incremental; Todo o conjunto de fases também ser praticado de forma incremental. 12/ O processo RUP Perspectiva Estática –Enfoca as atividades que ocorrem durante o processo de desenvolvimento; –Elas são denominadas de fluxos de trabalho (workflows) ou disciplinas; –Existem seis disciplinas de engenharia e três disciplinas de suporte: Disciplinas de Engenharia –Modelagem de Negócios; –Requisitos; –Análise e Projeto; –Implementação; –Teste; –Implantação. Disciplinas de Suporte –Gerenciamento da Configuração e Mudanças; –Gestão de Projetos; –Ambiente. 13/ O processo RUP Perspectiva Estática –Existem seis disciplinas de engenharia e três disciplinas de suporte: Disciplinas de Engenharia –Modelagem de Negócios; –Requisitos; –Análise e Projeto; –Implementação; –Teste; –Implantação. Criar um canal de comunicação entre engenharia de negócios e engenharia de software de modo a compreender a estrutura e a dinâmica da empresa, seus problemas organizacionais atuais e identificar possíveis melhorias; Estabelecer um entendimento comum por clientes, usuários finais e desenvolvedores do que é a organização; Elaborar uma visão da organização na qual o sistema será implantado e como usar esta visão como uma base para descrever o processo, papéis e responsabilidades. 14/ O processo RUP Perspectiva Estática –Existem seis disciplinas de engenharia e três disciplinas de suporte: Disciplinas de Engenharia –Modelagem de Negócios; –Requisitos; –Análise e Projeto; –Implementação; –Teste; –Implantação. Explica como elicitar requisitos das partes interessadas no sistema (stakeholders) e transformá-los em um conjunto de requisitos que detalham para o que o software deverá realizar; Responde a questão: “O que é para fazer?” 15/ O processo RUP Perspectiva Estática –Existem seis disciplinas de engenharia e três disciplinas de suporte: Disciplinas de Engenharia –Modelagem de Negócios; –Requisitos; –Análise e Projeto; –Implementação; –Teste; –Implantação. Constrói um sistema que será executado em um ambiente de execução específico, e que contemplará as tarefas e funções especificadasnas especificações de requisitos (casos de uso); O sistema deverá cumprir todos seus requisitos; O sistema deverá ser facilmente mantido de mesmo quando ocorrerem mudanças nos requisitos funcionais; Responde a questão: “Como fazer?” 16/ O processo RUP Perspectiva Estática –Existem seis disciplinas de engenharia e três disciplinas de suporte: Disciplinas de Engenharia –Modelagem de Negócios; –Requisitos; –Análise e Projeto; –Implementação; –Teste; –Implantação. Organiza o código do sistema, em termos de subsistemas de implementação, em camadas; Implementa classes e objetos em termos de componentes (arquivos-fonte, binários, executáveis e outros) Testa os componentes desenvolvidos como unidades; Integra os resultados produzidos por implementadores individuais (ou equipes), em um sistema executável; Sistemas são realizados através da aplicação de componentes. 17/ O processo RUP Perspectiva Estática –Existem seis disciplinas de engenharia e três disciplinas de suporte: Disciplinas de Engenharia –Modelagem de Negócios; –Requisitos; –Análise e Projeto; –Implementação; –Teste; –Implantação. Verificar a interação entre objetos; Verifica a integração adequada de todos os componentes do software; Verifica se todos os requisitos foram corretamente implementados; Identifica e garante que os defeitos são descobertos antes da implantação do software; Garante que todos os defeitos são corrigidos, reanalisados e fechados. 18/ O processo RUP Perspectiva Estática –Existem seis disciplinas de engenharia e três disciplinas de suporte: Disciplinas de Engenharia –Modelagem de Negócios; –Requisitos; –Análise e Projeto; –Implementação; –Teste; –Implantação. Produz produtos finais de acordo com releases e entrega o software para seus usuários; Diversas atividades: produção de releases, empacotamento do software, distribuição do software, instalação do software e prestação de ajuda e assistência aos usuários. 19/ O processo RUP Perspectiva Estática –Existem seis disciplinas de engenharia e três disciplinas de suporte: Disciplinas de Engenharia –Modelagem de Negócios; –Requisitos; –Análise e Projeto; –Implementação; –Teste; –Implantação. Disciplinas de Suporte –Gerenciamento da Configuração e Mudanças; –Gestão de Projetos; –Ambiente. Gerenciamento de configuração: responsável pela estruturação sistemática dos produtos e suas dependências – os artefatos precisam estar sob controle de versão e suas alterações devem ser visíveis; Gerenciamento de solicitações de mudança: controlar as propostas de mudança e aceitá-las (ou não) nas versões; Gerenciamento de status e medição: às solicitações são atribuídas estados de mudança também atributos tais como a causa raiz, ou a natureza (como o defeito e melhoria) e prioridade, por exemplo. 20/ O processo RUP Perspectiva Estática –Existem seis disciplinas de engenharia e três disciplinas de suporte: Disciplinas de Engenharia –Modelagem de Negócios; –Requisitos; –Análise e Projeto; –Implementação; –Teste; –Implantação. Disciplinas de Suporte –Gerenciamento da Configuração e Mudanças; –Gestão de Projetos; –Ambiente. Ocorre em dois níveis: plano de fases e plano de iterações; O plano de fases descreve todo o projeto; O plano de iterações é mais detalhado e descreve os passos iterativos a serem aplicados às fases individuais ou conjuntos de fases. 21/ O processo RUP Perspectiva Estática –Existem seis disciplinas de engenharia e três disciplinas de suporte: Disciplinas de Engenharia –Modelagem de Negócios; –Requisitos; –Análise e Projeto; –Implementação; –Teste; –Implantação. Disciplinas de Suporte –Gerenciamento da Configuração e Mudanças; –Gestão de Projetos; –Ambiente. Enfoca as atividades necessárias para configurar o processo para um projeto. Ele descreve as atividades necessárias para desenvolver as diretrizes de apoio a um projeto; Provê os processos e as ferramentas que darão suporte à equipe de desenvolvimento para a execução do projeto. 22/ O processo RUP Perspectiva Prática –É representada pelas boas práticas (best practices), comumente adotadas pela industria: 1) Desenvolvimento iterativo do software; 2) Gerenciamento de requisitos; 3) Uso de arquitetura baseada em componentes; 4) Modelagem visual do software; 5) Verificação contínua da qualidade do software; 6) Controle de mudanças do software. 23/ O processo RUP Visão geral das perspectivas – fases e iterações 24/ Agenda O processo RUP Desenvolvimento ágil Exemplo de metodologia ágil: SCRUM 25/ Desenvolvimento ágil Panorama atual do desenvolvimento de sistemas –As empresas operam em um ambiente global, marcado por mudanças rápidas; –Elas têm que responder rapidamente às novas oportunidades e mercados, às alterações nas condições econômicas e ao surgimento de produtos e serviços concorrentes (SOMMERVILLE, 2011); –O software é parte de quase todas as operações de negócios – novos softwares são desenvolvidos rapidamente para tirar partido das novas oportunidades e responder às pressões competitivas; –Assim, o rápido desenvolvimento e a entrega são os requisitos mais críticos para os sistemas de software atuais. 26/ Desenvolvimento ágil Panorama atual do desenvolvimento de sistemas –Assim é praticamente impossível obter um conjunto completo de requisitos de software estáveis; –Os requisitos inevitavelmente vão ser alterados pois é difícil prever como um novo sistema afetará práticas de trabalho, como ele vai interagir com outros sistemas, e que as operações do usuário deverão ser automatizadas; –Muitas vezes essas informações tornam-se mais claras apenas depois que o sistema tenha sido entregue e os usuários tenham ganhado experiência com ele; –Para piorar, os requisitos são susceptíveis de serem alterados de forma rápida e imprevisível devido a fatores externos tais como desatualização no momento de sua instalação no cliente. 27/ Desenvolvimento ágil Panorama atual do desenvolvimento de sistemas –Processos de software que planejam e especificam completamente os requisitos para que, em seguida, projetem, construam e testem o sistema não estão orientados para o desenvolvimento rápido de software; –Desse modo, com a alteração ou a descoberta de problemas nos requisitos, o projeto e/ou a implementação do sistema deverá ser de ser reformulada e novamente testada, perdendo- se assim um tempo substancial e incorrendo em custos adicionais; –Estes processos são genericamente denominados de processos “conduzidos por planos” – seu emprego é justificado apenas em sistemas onde é essencial uma análise completa do sistema, como em sistemas de segurança crítica. 28/ Desenvolvimento ágil O manifesto ágil –A insatisfação com abordagens baseadas em plano para Engenharia de Software levou um número de desenvolvedores de software na década de 1990 para propor novos métodos – “métodos ágeis”; –Assim, em fevereiro de 2001, um grupo de 17 especialistas em processos de software, representando os principais métodos de desenvolvimento ágeis daquele momento, se reuniu para discutir suas metodologias e então como resultado disso surgiu o Manifesto para o Desenvolvimento Ágil; –Foram definidos doze princípios (FOWLER; HIGHSMITH, 2001; PRESSMAN, 2011). 29/ Desenvolvimento ágil O manifesto ágil –Princípios 1) Nossa maior prioridade é satisfazer o cliente por meio da entrega antecipada e contínua de um valioso software. 2) As mudanças de requisitos são bem-vindas, mesmo próximas ao final do desenvolvimento. Processos ágeis utilizam a mudança como uma vantagem competitiva do cliente. 3) Entregar software funcionando com frequência, a partir de algumas semanas a alguns meses, com preferência para os prazos maiscurtos. 4) Empresários e desenvolvedores trabalham juntos diariamente durante todo o projeto. 5) Construir projetos em torno de indivíduos motivados. Dê-lhes o ambiente e apoio que precisam e confie neles para fazer o trabalho. 6) O método mais eficiente e eficaz de transmitir informações para e dentro de uma equipe de desenvolvimento é conversa cara a cara. 30/ Desenvolvimento ágil O manifesto ágil –Princípios 7) Software funcionando é a principal medida de progresso. 8) Processos ágeis promovem o desenvolvimento sustentável. Os patrocinadores, desenvolvedores e usuários devem ser capazes de manter um ritmo constante indefinidamente. 9) Atenção contínua a excelência técnica e bom projeto aumenta a agilidade. 10) Simplicidade – a arte de maximizar a quantidade de trabalho não realizado – é essencial. 11) As melhores arquiteturas, requisitos e projetos emergem de equipes auto-organizadas. 12) Em intervalos regulares, a equipe reflete sobre como se tornar mais eficaz, então sintoniza e ajusta seu comportamento de modo adequado. 31/ Desenvolvimento ágil Valores –Resumem os 12 princípios apresentados anteriormente: Indivíduos e interações em vez de processos e ferramentas; Software funcionando em vez de documentação abrangente; Colaboração do cliente em vez de negociação de contratos; Responder a mudanças em vez de seguir um plano. 32/ Desenvolvimento ágil O que caracteriza um método ágil? –Adaptabilidade É a capacidade do processo em se adaptar face às novas situações e com isso acomodar as alterações que devem ser realizadas tanto em tecnologias quanto em requisitos, incluindo eventualmente alterações nos próprios métodos utilizados; Para que um processo seja adaptável, ele deve utilizar, de forma natural, a retroalimentação de informações (o “feedback”) obtida com os resultados da execução de uma atividade anterior àquela que se está executando no momento. Ser adaptativo é dar controle à imprevisibilidade; 33/ Desenvolvimento ágil O que caracteriza um método ágil? –Iteratividade e incrementabilidade O software é desenvolvido em várias iterações, do seu planejamento à entrega final e, em cada iteração, uma parte ou versão do sistema é desenvolvida, testada e melhorada; Em cada iteração, a funcionalidade será aumentada ou refinada; O sistema cresce de modo incremental de acordo com a adição de novas funcionalidades com cada versão. Após cada iteração uma versão é entregue ao cliente de modo a obter sua avaliação, cujo resultado será utilizado nas próximas iterações. 34/ Desenvolvimento ágil O que caracteriza um método ágil? –Orientado às pessoas e trabalho em equipe Nos métodos ágeis, as pessoas são mais importantes do que o processo, pois são os principais condutores do sucesso do projeto; O processo tem o papel de suportar a equipe de desenvolvimento para que ela possa executar seu trabalho da melhor maneira possível; As metodologias ágeis também enfatizam a comunicação direta (“cara a cara”) dentro das equipes e com o cliente, que deve se envolver diretamente com o processo de desenvolvimento em vez de acompanhá-lo apenas pelas documentações. 35/ Agenda O processo RUP Desenvolvimento ágil Exemplo de metodologia ágil: SCRUM 36/ Exemplo de metodologia ágil: SCRUM Origens –Um artigo publicado em 1986 no Japão que descrevia um processo de desenvolvimento de produto adaptativo, rápido e auto-organizado (TAKEUCHI; NONAKA, 1986); –Sobre o termo “scrum”: é derivado de uma estratégia no jogo de rugby, que reforça a ideia de trabalho em equipe, onde uma formação ordenada de 8 jogadores de cada o lado devem disputar a saída da bola após uma jogada irregular ou penalidade. 37/ Exemplo de metodologia ágil: SCRUM Características da metodologia –SCRUM foi desenvolvido em 1993 para gerenciar o processo de desenvolvimento de sistemas (SCHWABER, 1995); –É uma abordagem empírica, inspirada na teoria de controle de processos industriais e reintroduz as ideias de flexibilidade, adaptabilidade e produtividade (SCHWABER, 1995); –Não define nenhuma técnica específica de desenvolvimento de software para as fases de implementação → concentra-se no comportamento dos membros da equipe de desenvolvimento para produzir um sistema de modo flexível em um ambiente de constantes alterações; –Principal conceito: o desenvolvimento de sistemas envolve muitas variáveis ambientais e técnicas (por exemplo, requisitos, unidades de tempo, recursos, tecnologia) e que provavelmente sofrerão mudanças durante a execução do processo. 38/ Exemplo de metodologia ágil: SCRUM Fases –Pré-Jogo, Desenvolvimento (Jogo) e Pós-Jogo: De (ABRAHAMSSON et al., 2002) 39/ Exemplo de metodologia ágil: SCRUM Fases –Pré-Jogo É uma fase cujas entradas, saídas e o processo é bem definido, fluxo linear e poucas iterações; Subfases –Planejamento Definição do sistema; Criação do backlog (lista de todas as funcionalidades do produto a serem desenvolvidas); Priorização dos requisitos e estimativa do esforço; Definição da equipe do projeto, ferramentas e outros recursos, avaliação e controle de riscos, treinamento e aprovação da gestão e financiamento; Em toda iteração, o backlog do produto é revisto pelas equipes SCRUM para a próxima iteração. 40/ Exemplo de metodologia ágil: SCRUM Fases –Pré-Jogo (cont.) Subfases –Arquitetura/Projeto de Alto Nível Um projeto de alto nível do sistema, incluindo sua arquitetura, é planejado baseado no backlog atual; No caso de melhoria para um sistema existente, as alterações necessárias para implementar os itens do backlog são identificadas de acordo com os problemas que elas podem causar; Uma reunião de revisão do projeto é realizada para examinar as propostas de implementação e então decisões são tomadas com base nesta revisão; Adicionalmente, planos preliminares para o conteúdo das versões são preparados. 41/ Exemplo de metodologia ágil: SCRUM Fases –Desenvolvimento É onde se encontra a parte ágil da metodologia; Esta fase é tratada como uma “caixa-preta” onde se espera o imprevisível; Aqui as variáveis de ambiente e técnicas definidas podem ser alteradas durante a execução do processo e são observadas e controladas por meio de diversas práticas durante períodos de desenvolvimento desta fase denominados sprints; Sprints são ciclos iterativos nos quais a funcionalidade é desenvolvida ou melhorada de modo a produzir novos incrementos; Cada sprint inclui as fases tradicionais de desenvolvimento de software. 42/ Exemplo de metodologia ágil: SCRUM Fases –Desenvolvimento A arquitetura e o projeto do sistema evoluem durante o desenvolvimento de um sprint; Sprints são planejados para durar de uma semana a um mês; O processo de desenvolvimento de um sistema tipicamente exige de três a oito sprints antes que o sistema esteja pronto para ser distribuído; Pode haver mais do que uma equipe construindo o incremento. 43/ Exemplo de metodologia ágil: SCRUM Fases –Pós-Jogo Contempla o encerramento da versão; Entra-se nesta fase quando um acordo é fechado a respeito em relação à conclusão das variáveis ambientais (por exemplo, requisitos); Neste caso nenhum item ou problema deverá figurar no backlog e nem se poderão inventar novos; O sistema está pronto para ser liberado e a preparação para isso é feita durante esta fase, e inclui tarefas tais como integração, testes do sistema e documentação. 44/ Exemplo de metodologia ágil: SCRUM Papéis e responsabilidades –SCRUM Master (“mestre SCRUM”) É um facilitador, que organiza reuniões diárias, acompanha a acumulação de trabalho a ser feito, as decisões de registros, as medidas de progresso para evitar atrasos, e se comunica com os clientes e gerência; –Product Owner (“dono do produto”) É o responsávelpelo projeto, gerenciando, controlando e tornando visível o backlog do produto. Ele é escolhido pelo SCRUM Master, cliente e gerência; –SCRUM Team (“equipe SCRUM”) Decide que ações tomar e como se organizar para atingir os objetivos de cada sprint, estimativas, revisão do backlog e identificar problemas a serem removidos do projeto. 45/ Exemplo de metodologia ágil: SCRUM Papéis e responsabilidades –Customer (“cliente”) Participa das tarefas relacionadas aos itens do backlog do produto no sistema em que está sendo desenvolvido ou melhorado; –Management (“gerência”) Toma decisões finais de acordo com os contratos, padrões e convenções a serem seguidas pelo projeto, participando também da definição dos objetivos e requisitos. 46/ Exemplo de metodologia ágil: SCRUM Cerimônias –Planejamento da sprint (Sprint Planning Meeting) É a primeira reunião do projeto → todos devem participar; Duração máxima de oito horas; O Product Owner planeja e elabora a lista de prioridades que devem ser cumpridas pelo projeto: O Product Owner define suas prioridades, seleciona itens do backlog e a meta da sprint; A equipe define o sprint backlog → documento que contêm as tarefas necessárias para cumprir a meta; Às estórias (funcionalidades a serem desenvolvidas) são associadas complexidades de desenvolvimento → definidas pela equipe de modo simples e consensual (por exemplo, com o “Pôquer do Planejamento”); 47/ Exemplo de metodologia ágil: SCRUM Cerimônias –Reunião diária (Daily SCRUM) Cada membro da equipe deve responder sobre o que já fez, o que pretende fazer e se há algum impedimento para a conclusão de suas tarefas; Deve ser rápida (≈15min.); Participam o SCRUM Master e a equipe; Todos os elementos da equipe devem participar; Normalmente após o almoço e em pé! 48/ Exemplo de metodologia ágil: SCRUM Cerimônias –Revisão da sprint (Sprint Review) Reunião de balanço (<4h) após o término da sprint; A equipe deve mostrar os resultados da sprint ao Product Owner → somente o que está 100% pronto! Dinâmica –Um membro da equipe apresenta a meta do sprint, os itens do Product Backlog e os itens concluídos; –Os membros da equipe fazem uma demonstração funcional dos itens desenvolvidos. Participantes –Product Owner, SCRUM Master, equipe e convidados; Mudanças ou inserções serão priorizadas e incorporadas ao Product Backlog. 49/ Exemplo de metodologia ágil: SCRUM Cerimônias –Retrospectiva da sprint (Sprint Retrospective) Realizada após uma revisão da sprint (<3h); Verifica o que houve de bom e o que pode ser melhorado em uma sprint; Aspectos: trabalho em equipe, pontos positivos e negativos, reflexões sobre estratégias de melhorias; Participam a equipe e o SCRUM Master → o SCRUM Owner pode participar como convidado; O SCRUM Master toma nota de tudo e a equipe se compromete a priorizar os itens apontados. 50/ Exemplo de metodologia ágil: SCRUM Artefatos –Product Backlog (SBROCCO; MACEDO, 2012) Itens a serem desenvolvidos no projeto. 51/ Exemplo de metodologia ágil: SCRUM Artefatos –Sprint Backlog (SBROCCO; MACEDO, 2012) Tarefas a serem desenvolvidas na sprint. 52/ Exemplo de metodologia ágil: SCRUM Artefatos –Task Board (SBROCCO; MACEDO, 2012) Quadro de acompanhamento das sprints. 53/ Exemplo de metodologia ágil: SCRUM Artefatos –Post-It (SBROCCO; MACEDO, 2012) Atividade a ser desenvolvida. 54/ Exemplo de metodologia ágil: SCRUM Artefatos –Gráfico Burndown Exibe o esforço restante para concluir o trabalho. http://joel.inpointform.net/software-development/burn-down-charts-tutorial-simple-agile-project-tracking/ http://joel.inpointform.net/software-development/burn-down-charts-tutorial-simple-agile-project-tracking/ http://joel.inpointform.net/software-development/burn-down-charts-tutorial-simple-agile-project-tracking/ http://joel.inpointform.net/software-development/burn-down-charts-tutorial-simple-agile-project-tracking/ http://joel.inpointform.net/software-development/burn-down-charts-tutorial-simple-agile-project-tracking/ http://joel.inpointform.net/software-development/burn-down-charts-tutorial-simple-agile-project-tracking/ http://joel.inpointform.net/software-development/burn-down-charts-tutorial-simple-agile-project-tracking/ http://joel.inpointform.net/software-development/burn-down-charts-tutorial-simple-agile-project-tracking/ http://joel.inpointform.net/software-development/burn-down-charts-tutorial-simple-agile-project-tracking/ http://joel.inpointform.net/software-development/burn-down-charts-tutorial-simple-agile-project-tracking/ http://joel.inpointform.net/software-development/burn-down-charts-tutorial-simple-agile-project-tracking/ http://joel.inpointform.net/software-development/burn-down-charts-tutorial-simple-agile-project-tracking/ http://joel.inpointform.net/software-development/burn-down-charts-tutorial-simple-agile-project-tracking/ http://joel.inpointform.net/software-development/burn-down-charts-tutorial-simple-agile-project-tracking/ http://joel.inpointform.net/software-development/burn-down-charts-tutorial-simple-agile-project-tracking/ http://joel.inpointform.net/software-development/burn-down-charts-tutorial-simple-agile-project-tracking/ http://joel.inpointform.net/software-development/burn-down-charts-tutorial-simple-agile-project-tracking/ http://joel.inpointform.net/software-development/burn-down-charts-tutorial-simple-agile-project-tracking/ http://joel.inpointform.net/software-development/burn-down-charts-tutorial-simple-agile-project-tracking/ 55/ Referências bibliográficas ABRAHAMSSON, P. et al. Agile software development methods : review and analysis. Espoo [Finland]: VTT, 2002. FOWLER, M.; HIGHSMITH, J. The agile manifesto. Software Development, v. 9, n. 8, p. 28–35, 2001. KROLL, P.; KRUCHTEN, P. The Rational Unified Process Made Easy: A Practitioner’s Guide to the RUP. Boston: Addison-Wesley, 2003. PRESSMAN, R. S. Software engineering: a practitioner’s approach. 7. ed. New York: McGraw-Hill Higher Education, 2010. SCHWABER, K. SCRUM Development Process. In: PROCEEDINGS OF THE ACM CONFERENCE ON OBJECT-ORIENTED PROGRAMMING–SYSTEMS, LANGUAGES AND APPLICATIONS (OOPSLA’95): WORKSHOP ON BUSINESS OBJECT DESIGN AND IMPLEMENTATION. 1995. SCHWABER, K. Agile project management with SCRUM. Redmond, Wash.: Microsoft Press, 2004. SBROCCO, J. H. T. DE C.; MACEDO, P. C. DE. Metodologias Ágeis: engenharia de software sob medida. São Paulo: Editora Érica, 2012. SOMMERVILLE, I. Software Engineering. 9. ed. Boston, MA: Pearson, 2011. TAKEUCHI, H.; NONAKA, I. The new new product development game. Harvard business review, v. 64, n. 1, p. 137–146, 1986.
Compartilhar