Prévia do material em texto
<p>Prof. MSc. Tarcísio Peres</p><p>UNIDADE II</p><p>Gerenciamento de</p><p>Projetos de Software</p><p> Priorização de backlog e roadmaps ágeis.</p><p> Ciclos de desenvolvimento iterativos: sprints.</p><p> Daily stand-ups e sincronização de equipe.</p><p> Gestão de backlogs e iterações.</p><p> Integração Contínua (CI) e Entrega Contínua (CD).</p><p> Testes automatizados e TDD (Test Driven Development).</p><p> Deployment e monitoramento em ambientes ágeis.</p><p>Conteúdo da Unidade II</p><p> O planejamento, a execução e a gestão ágil se destacam como abordagens essenciais para</p><p>garantir a entrega de valor contínuo e adaptativo às necessidades do cliente.</p><p> A priorização de backlog e a elaboração de roadmaps ágeis são etapas cruciais neste</p><p>processo, permitindo que a equipe se concentre nas funcionalidades e melhorias que trazem</p><p>maior benefício ao produto final.</p><p> A definição de um backlog claro e bem priorizado é fundamental para direcionar os esforços</p><p>da equipe, assegurando que os itens de maior valor sejam trabalhados primeiro.</p><p> Os ciclos de desenvolvimento iterativos, conhecidos como</p><p>sprints, são a espinha dorsal das metodologias ágeis,</p><p>permitindo ajustes rápidos e respostas ágeis às mudanças.</p><p>Planejamento e Execução Ágil</p><p>maria.chagas</p><p>Realce</p><p>uma lista de tarefas e projetos que precisam ser finalizado</p><p> As reuniões diárias ou daily stand-ups desempenham um papel vital na sincronização da</p><p>equipe durante os sprints, permitindo a comunicação contínua e transparente.</p><p> O backlog do produto é frequentemente revisitado e reavaliado à medida que novos insights</p><p>e feedbacks são obtidos, com o Product Owner tomando decisões informadas sobre</p><p>as prioridades.</p><p> Ao final de cada sprint, uma revisão detalhada é realizada para avaliar o trabalho concluído e</p><p>identificar áreas de melhoria.</p><p> A integração das práticas de priorização de backlog, ciclos de</p><p>desenvolvimento iterativos, daily stand-ups e gestão contínua</p><p>de backlogs e iterações constitui o núcleo da gestão ágil.</p><p>Sincronização e Comunicação</p><p>maria.chagas</p><p>Realce</p><p>reunião rápida, objetiva, "em pé", máximo 15 minutos</p><p>maria.chagas</p><p>Realce</p><p>epresenta os interesses de todos os envolvidos (Stakeholders), define as funcionalidades do produto e prioriza os itens de Product Backlog</p><p>maria.chagas</p><p>Realce</p><p>Product Backlog: é uma lista priorizada de itens sobre os quais o Time de Desenvolvimento trabalhará no decorrer do projeto.</p><p>maria.chagas</p><p>Realce</p><p>é um conceito da metodologia ágil que se refere a um período de tempo fixo em que uma equipe se concentra em um conjunto de tarefas e objetivos</p><p> O backlog do produto é uma lista ordenada de tudo o que é necessário para o produto,</p><p>contendo funcionalidades, melhorias, correções e requisitos técnicos.</p><p> A priorização é feita de maneira que os itens de maior valor e impacto sejam trabalhados</p><p>primeiro, com base em critérios como valor de negócio, feedback de usuários, urgência e</p><p>viabilidade técnica.</p><p> Métodos comuns como a matriz de Eisenhower e o WSJF (Weighted Shortest Job First) são</p><p>utilizados na priorização de backlog, garantindo que as tarefas com maior impacto relativo</p><p>sejam abordadas primeiro.</p><p> A matriz de Eisenhower organiza as tarefas com base em</p><p>urgência e importância, enquanto o WSJF avalia tarefas pelo</p><p>valor ao usuário, criticidade do tempo e redução de risco.</p><p>Priorização de Backlog</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Realce</p><p>Priorização de Backlog</p><p>Fonte: autoria própria.</p><p>maria.chagas</p><p>Lápis</p><p> O roadmap é uma representação visual e estratégica do planejamento de longo prazo do</p><p>desenvolvimento do produto, oferecendo uma visão de alto nível dos principais objetivos</p><p>e entregas.</p><p> Um roadmap ágil é flexível e adaptável, permitindo ajustes conforme necessário e</p><p>destacando marcos importantes ao longo do tempo.</p><p> A principal diferença entre o backlog e o roadmap está no nível de detalhe e no propósito,</p><p>sendo o backlog mais detalhado e operacional, enquanto o roadmap é mais abstrato</p><p>e estratégico.</p><p> Integrando backlog e roadmap, as equipes ágeis conseguem</p><p>planejar e executar o desenvolvimento de maneira eficiente,</p><p>garantindo o alinhamento com os objetivos do negócio.</p><p>Roadmap e Alinhamento Estratégico</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Realce</p><p>Roadmap</p><p>Fonte: imagem produzida pelo próprio autor com tecnologia DALL-E, uma</p><p>ferramenta de inteligência artificial desenvolvida pela OpenAI.</p><p> Perspectiva artística</p><p> Os sprints são períodos de tempo fixos durante os quais a equipe trabalha para completar</p><p>um conjunto específico de tarefas do backlog, permitindo que o produto evolua de maneira</p><p>incremental e adaptativa.</p><p> A técnica de time boxing, utilizada nos sprints, ajuda a criar um ritmo sustentável de trabalho,</p><p>evitando a sobrecarga e promovendo um ciclo contínuo de entrega de valor.</p><p> A duração fixa dos sprints facilita a previsão e o planejamento, permitindo que a equipe e os</p><p>stakeholders compreendam claramente o que pode ser realizado dentro de cada ciclo.</p><p> Ao final de cada sprint, há uma oportunidade para revisar o</p><p>trabalho realizado, coletar feedback e ajustar o plano conforme</p><p>necessário, promovendo uma abordagem iterativa</p><p>e incremental.</p><p>Ciclos de Sprints</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Comentário do texto</p><p>janela de tempo fechada, fixa</p><p> As reuniões do sprint no Scrum incluem o planejamento do sprint, a reunião diária (daily</p><p>stand-up), a revisão do sprint e a retrospectiva do sprint, cada uma desempenhando um</p><p>papel essencial na eficácia do processo.</p><p> O planejamento do sprint envolve a seleção dos itens do backlog que serão trabalhados, com</p><p>a equipe definindo uma meta clara e criando um plano detalhado para atingir essa meta.</p><p> Práticas comuns como os “Scrum Buts” podem comprometer a eficácia dos sprints,</p><p>especialmente quando a equipe não consegue completar as tarefas planejadas ou quando o</p><p>escopo é alterado durante o sprint.</p><p> A estrutura do “Scrum But” envolve três componentes</p><p>principais: a prática original do Scrum, a modificação ou</p><p>omissão feita e o impacto dessa mudança.</p><p> “Fazemos Scrum, mas nossos sprints são flexíveis e podem</p><p>ser estendidos se não completarmos o trabalho”.</p><p> “Fazemos Scrum, mas nossas reuniões diárias geralmente</p><p>duram 30 minutos ou mais porque discutimos detalhes</p><p>técnicos extensivamente”.</p><p>Rituais e Cerimônias do Scrum</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Realce</p><p> Durante o sprint, as daily stand-ups mantêm todos sincronizados e identificam problemas</p><p>rapidamente, sendo essencial que essas reuniões permaneçam rápidas e focadas.</p><p> Ao final do sprint, a equipe realiza duas reuniões importantes: a revisão do sprint e a</p><p>retrospectiva do sprint, garantindo o alinhamento com as expectativas e necessidades</p><p>dos stakeholders.</p><p> A revisão do sprint permite que a equipe apresente o trabalho concluído e colete feedback,</p><p>sendo crucial a participação ativa dos principais stakeholders.</p><p> A retrospectiva do sprint oferece uma oportunidade para a</p><p>equipe refletir sobre o processo, discutir o que funcionou bem</p><p>e identificar áreas de melhoria para os próximos sprints.</p><p> Ignorar ou minimizar a retrospectiva pode levar à repetição de</p><p>erros e à estagnação no desenvolvimento de práticas</p><p>mais eficazes.</p><p>Rituais e Cerimônias do Scrum</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Realce</p><p> Os sprints promovem uma cultura de entrega contínua e de alta qualidade, incentivando a</p><p>equipe a manter altos padrões em todas as etapas do desenvolvimento.</p><p> Cada incremento do produto deve ser funcional e potencialmente utilizável, assegurando que</p><p>o trabalho esteja sempre alinhado com as expectativas do cliente.</p><p> A abordagem iterativa e incremental dos sprints ajuda a gerenciar o risco, permitindo que a</p><p>equipe detecte e resolva problemas rapidamente.</p><p> A combinação dessas práticas ágeis resulta em um ambiente</p><p>de trabalho dinâmico, adaptável e centrado no cliente, focado</p><p>na entrega de valor contínuo e na melhoria contínua do</p><p>produto final.</p><p>Entrega Contínua e Qualidade</p><p>Na priorização</p><p>de backlog, qual técnica avalia as tarefas com base em urgência e importância?</p><p>a) WSJF (Weighted Shortest Job First)</p><p>b) Matriz de Eisenhower</p><p>c) Scrum</p><p>d) Daily stand-up</p><p>e) Sprint review</p><p>Interatividade</p><p>Na priorização de backlog, qual técnica avalia as tarefas com base em urgência e importância?</p><p>a) WSJF (Weighted Shortest Job First)</p><p>b) Matriz de Eisenhower</p><p>c) Scrum</p><p>d) Daily stand-up</p><p>e) Sprint review</p><p>Resposta</p><p> O principal objetivo das daily stand-ups é garantir que todos na equipe estejam cientes do</p><p>que está acontecendo e possam colaborar de forma mais eficaz.</p><p> Cada membro da equipe responde a três perguntas fundamentais: o que fizeram desde a</p><p>última reunião, o que planejam fazer até a próxima e se há algum impedimento.</p><p> A prática de realizar essas reuniões em pé visa reforçar a brevidade e a objetividade</p><p>das discussões.</p><p> A sincronização de equipe promovida pelas daily stand-ups é</p><p>vital para o sucesso das metodologias ágeis.</p><p>Daily Stand-ups e Sincronização de Equipe</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Realce</p><p> As daily stand-ups melhoram a comunicação e a colaboração, criando um ambiente de</p><p>transparência e responsabilidade.</p><p> Elas permitem que a equipe identifique rapidamente desvios do plano original e ajuste suas</p><p>ações conforme necessário.</p><p> A daily stand-up ajuda a construir confiança dentro da equipe</p><p>e assegurar o comprometimento com os objetivos do sprint.</p><p> Para entender a criticidade da sincronização, o termo "Scrum"</p><p>no desenvolvimento ágil deriva do jogo de rúgbi, que exige</p><p>intensa coordenação e trabalho em equipe.</p><p>Benefícios das Daily Stand-ups</p><p>Fonte: imagem produzida pelo próprio autor com</p><p>tecnologia DALL-E, uma ferramenta de inteligência</p><p>artificial desenvolvida pela OpenAI.</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Realce</p><p> No Scrum ágil, o sucesso de um projeto depende da capacidade da equipe de colaborar</p><p>efetivamente, ajustar-se às mudanças e focar em entregas incrementais.</p><p> As cerimônias e os papéis definidos no Scrum promovem a comunicação contínua, inspeção</p><p>e adaptação.</p><p> O termo "Scrum" foi popularizado no contexto de desenvolvimento de produtos por Hirotaka</p><p>Takeuchi e Ikujiro Nonaka em 1986.</p><p> Ferramentas de software são utilizadas para auxiliar na</p><p>condução de daily stand-ups, melhorando a comunicação e a</p><p>visibilidade das reuniões.</p><p>Scrum e Metodologias Ágeis</p><p> Preparar uma reunião diária é crucial; a reunião deve ser breve, estruturada e focada na</p><p>comunicação clara.</p><p> Para ser eficaz, é importante evitar que a reunião se estenda além do tempo alocado ou que</p><p>participantes não venham preparados.</p><p> A preparação garante que o tempo seja usado eficientemente e que todos os pontos</p><p>importantes sejam cobertos.</p><p> A preparação ajuda a identificar impedimentos rapidamente,</p><p>promovendo a responsabilidade e o compromisso com as</p><p>tarefas atribuídas.</p><p>Preparação para Daily Stand-ups</p><p> Um backlog é uma lista organizada e priorizada de tarefas, requisitos, melhorias e</p><p>funcionalidades para um projeto de software.</p><p> O Product Backlog é gerenciado pelo Product Owner e é dinâmico, sendo atualizado</p><p>continuamente.</p><p> O Sprint Backlog é uma lista mais específica, gerenciada pela equipe de desenvolvimento,</p><p>detalhando as tarefas para a iteração.</p><p> A boa gestão do backlog envolve a definição clara dos itens,</p><p>garantindo que cada item seja compreensível e estimável</p><p>pela equipe.</p><p>Gestão de Backlogs e Iterações</p><p>maria.chagas</p><p>Realce</p><p>é uma lista de histórias de usuário e tarefas que ajuda equipes ágeis a focarem em seus objetivos e priorizarem seu trabalho de forma eficaz durante o ciclo da sprint</p><p> User stories são descrições curtas e informais de funcionalidades do sistema, escritas do</p><p>ponto de vista do usuário final.</p><p> Elas são escritas em linguagem simples, evitando jargões técnicos, para que todos</p><p>compreendam as necessidades do usuário.</p><p> As user stories são centradas nas necessidades dos usuários finais, promovendo</p><p>comunicação e colaboração entre a equipe.</p><p> Cada user story deve incluir critérios de aceitação claros e específicos que definem as</p><p>condições para ser considerada completa.</p><p> Como [tipo de usuário], eu quero [ação ou funcionalidade],</p><p>para que [benefício ou valor].</p><p> Como um comprador online, eu quero poder salvar itens no</p><p>meu carrinho de compras, para que eu possa continuar</p><p>comprando mais tarde sem perder minha seleção.</p><p>User Stories no Desenvolvimento Ágil</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Realce</p><p> Revisões regulares do backlog ajudam a manter a qualidade dos itens e ajustar as</p><p>prioridades conforme necessário.</p><p> O backlog grooming, agora muitas vezes chamado de backlog refinement, envolve</p><p>esclarecer requisitos, priorizar itens e remover itens obsoletos.</p><p> Estimações e identificação de dependências durante o refinamento são cruciais para o</p><p>planejamento eficaz e a mitigação de riscos.</p><p> Um backlog bem organizado e priorizado facilita a</p><p>comunicação e o planejamento dentro da equipe.</p><p>Refinamento e Priorização do Backlog</p><p>maria.chagas</p><p>Realce</p><p>refinamento do backlog</p><p> Exemplo de backlog</p><p>Backlog</p><p>Fonte: autoria própria.</p><p>ID Título Descrição</p><p>Priori-</p><p>dade</p><p>Estima-</p><p>tiva</p><p>Status</p><p>Critérios de</p><p>Aceitação</p><p>Respon-</p><p>sável</p><p>Data de</p><p>Criação</p><p>1</p><p>Login de</p><p>usuário</p><p>Como um</p><p>usuário, eu</p><p>quero fazer</p><p>login no</p><p>sistema para</p><p>acessar minhas</p><p>informações</p><p>pessoais.</p><p>Alta 5 Novo</p><p>Usuário pode</p><p>fazer login com</p><p>credenciais</p><p>válidas, ver</p><p>mensagem de</p><p>erro para</p><p>credenciais</p><p>inválidas.</p><p>João 01/04</p><p>2</p><p>Página</p><p>inicial</p><p>Como um</p><p>usuário, eu</p><p>quero ver</p><p>informações</p><p>relevantes na</p><p>página inicial</p><p>para facilitar</p><p>a navegação.</p><p>Média 3</p><p>Em</p><p>andamento</p><p>Página inicial</p><p>carrega em</p><p>menos de dois</p><p>segundos, exibe</p><p>informações</p><p>personalizadas.</p><p>Maria 01/04</p><p>3</p><p>Carrinho de</p><p>compras</p><p>Como um</p><p>usuário, eu</p><p>quero adicionar</p><p>itens ao meu</p><p>carrinho.</p><p>Alta 8 Novo</p><p>Usuário pode</p><p>adicionar e</p><p>remover itens do</p><p>carrinho, ver</p><p>resumo do</p><p>carrinho.</p><p>Carlos 02/04</p><p> A transformação do backlog de produto em backlog da sprint é um processo essencial no</p><p>Scrum, envolvendo seleção e priorização de itens.</p><p> Durante a Sprint Planning, o Product Owner apresenta os itens prioritários do backlog de</p><p>produto para o time de desenvolvimento.</p><p> O time de desenvolvimento seleciona os itens que acredita ser capaz de concluir durante a</p><p>sprint, formando o backlog da sprint.</p><p> O progresso do backlog da sprint é monitorado por meio de práticas como reuniões diárias,</p><p>gráficos de burndown e quadros Kanban.</p><p>Transformação do Backlog de Produto em Backlog da Sprint</p><p>Fonte: autoria própria.</p><p>50</p><p>45</p><p>40</p><p>35</p><p>30</p><p>25</p><p>20</p><p>15</p><p>10</p><p>5</p><p>0</p><p>1 2 3 4 5 6 7 8 9 10 11 12 13 14 15</p><p>maria.chagas</p><p>Realce</p><p>sprint planning é uma reunião que marca o início</p><p>de um sprint, um período de tempo em que uma equipe</p><p>ágil trabalha para entregar um conjunto de tarefas ou funcionalidades</p><p> Gráficos de burndown são usados para mostrar o progresso da sprint, exibindo a quantidade</p><p>de trabalho restante ao longo do tempo.</p><p> Quadros Kanban ajudam a visualizar o fluxo de trabalho durante a sprint, promovendo a</p><p>entrega contínua e a melhoria contínua.</p><p> Limitar o trabalho em progresso (WIP) no Kanban impede que a equipe se sobrecarregue e</p><p>ajuda a identificar gargalos no processo.</p><p> O uso de quadros Kanban e gráficos de burndown facilita o</p><p>monitoramento e a visualização do progresso do</p><p>backlog da sprint.</p><p>Visualização e Monitoramento da Sprint</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Realce</p><p>metodologia de gestão visual que usa cartões e colunas coloridas para controlar o fluxo de trabalho de um projeto</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Linha</p><p> Exemplo de quadro Kanban.</p><p>Kanban</p><p>Fonte: autoria própria.</p><p>Implementar</p><p>gateway de</p><p>pagamento</p><p>Otimizar</p><p>carregamento</p><p>de páginas</p><p>Corrigir bug</p><p>no cálculo de</p><p>frete</p><p>Integrar</p><p>sistema de</p><p>feedback dos</p><p>clientes</p><p>Redesign da</p><p>página de</p><p>checkout</p><p>Atualizar</p><p>políticas de</p><p>privacidade</p><p>Adicionar</p><p>recomenda-</p><p>ções de</p><p>produtos</p><p>M</p><p>a</p><p>r</p><p>k</p><p>e</p><p>t</p><p>i</p><p>n</p><p>g</p><p>D</p><p>e</p><p>s</p><p>i</p><p>g</p><p>n</p><p>D</p><p>e</p><p>v</p><p>e</p><p>l</p><p>o</p><p>p</p><p>m</p><p>e</p><p>n</p><p>t</p><p>maria.chagas</p><p>Lápis</p><p> No final de cada sprint, a Sprint Review permite inspecionar o incremento do produto e</p><p>adaptar o backlog conforme necessário.</p><p> A Sprint Review envolve stakeholders e coleta feedback, que é essencial para ajustar o</p><p>backlog e alinhar o desenvolvimento às expectativas.</p><p> A Sprint Retrospective é uma reunião interna do Scrum Team focada na melhoria contínua</p><p>do processo de trabalho.</p><p> A retrospectiva permite identificar o que funcionou bem e o</p><p>que precisa ser melhorado, influenciando o backlog e as</p><p>próximas sprints.</p><p>Revisão e Retrospectiva da Sprint</p><p>maria.chagas</p><p>Realce</p><p>é uma reunião que acontece no final de cada Sprint, na metodologia ágil, para avaliar o trabalho realizado e discutir o que ainda precisa ser feito</p><p>maria.chagas</p><p>Realce</p><p>grupos e indivíduos que, de uma forma ou de outra, apresentam algum nível de interesse nos projetos, atividades e resultados de uma determinada organização</p><p>maria.chagas</p><p>Realce</p><p>é uma reunião que acontece no final de uma sprint no Scrum, com o objetivo de avaliar o trabalho realizado e criar um plano de ação para a próxima sprint</p><p>O que é um backlog no contexto do desenvolvimento ágil?</p><p>a) Uma lista de bugs que precisam ser corrigidos.</p><p>b) Um cronograma detalhado das entregas do projeto.</p><p>c) Uma lista organizada e priorizada de tarefas, requisitos, melhorias e funcionalidades a</p><p>serem desenvolvidas.</p><p>d) Um relatório diário de progresso do projeto.</p><p>e) Um documento que descreve as políticas de desenvolvimento da empresa.</p><p>Interatividade</p><p>O que é um backlog no contexto do desenvolvimento ágil?</p><p>a) Uma lista de bugs que precisam ser corrigidos.</p><p>b) Um cronograma detalhado das entregas do projeto.</p><p>c) Uma lista organizada e priorizada de tarefas, requisitos, melhorias e funcionalidades a</p><p>serem desenvolvidas.</p><p>d) Um relatório diário de progresso do projeto.</p><p>e) Um documento que descreve as políticas de desenvolvimento da empresa.</p><p>Resposta</p><p> Qualidade é definida como a capacidade de um produto ou serviço atender às expectativas</p><p>dos stakeholders.</p><p> Gestão da qualidade no PMI envolve planejamento, garantia e controle da qualidade.</p><p> Qualidade de software inclui requisitos funcionais e não funcionais, como segurança</p><p>e usabilidade.</p><p> Gold plating é a prática de adicionar funcionalidades extras não solicitadas, o que pode</p><p>introduzir riscos e comprometer a qualidade.</p><p>Qualidade no PMI e Abordagem Tradicional</p><p>maria.chagas</p><p>Realce</p><p>instituto de gestão de projetos</p><p>maria.chagas</p><p>Realce</p><p> CMMI (Capability Maturity Model Integration) define a qualidade de software como a</p><p>capacidade de atender às necessidades dos usuários.</p><p> O CMMI foca a melhoria contínua dos processos de desenvolvimento e a confiabilidade</p><p>do produto.</p><p> Práticas como gerenciamento de requisitos e verificação são fundamentais para a qualidade</p><p>no CMMI.</p><p> O modelo CMMI é metodológico e detalhado, fornecendo uma</p><p>estrutura clara para garantir alta qualidade no desenvolvimento</p><p>de software.</p><p>Qualidade de Software e CMMI</p><p>maria.chagas</p><p>Realce</p><p>é uma abordagem de melhoria de processos que fornece às organizações elementos essenciais de processos eficazes</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Realce</p><p> Nas metodologias ágeis, a qualidade é integrada ao longo de todo o processo</p><p>de desenvolvimento.</p><p> Os problemas são identificados e corrigidos mais cedo, reduzindo o risco de defeitos.</p><p> O gold plating é rigorosamente evitado, mantendo o foco nas necessidades reais do cliente.</p><p> A agilidade promove a entrega contínua de valor ao cliente e a adaptação rápida às</p><p>mudanças de requisitos.</p><p>Agilidade e Expansão dos Conceitos de Qualidade</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Realce</p><p> Os CMMI V2.0 e V3.0 incorporaram práticas ágeis como entregas incrementais e</p><p>feedback contínuo.</p><p> O modelo reconhece a necessidade de adaptação rápida e priorização com base no valor</p><p>entregue ao cliente.</p><p> Retrospectivas ágeis e reuniões diárias são alinhadas com os requisitos do CMMI.</p><p> CMMI V3.0 introduziu novos domínios focados em dados e pessoas, integrando ainda</p><p>mais a agilidade.</p><p>Integração de Práticas Ágeis no CMMI</p><p> Testes no ágil são contínuos e integrados em cada iteração do desenvolvimento.</p><p> BDD (Behavior Driven Development) e TDD (Test Driven Development) são métodos que</p><p>garantem que o código atenda aos requisitos desde o início.</p><p> A garantia de qualidade é uma responsabilidade compartilhada entre toda a equipe</p><p>de desenvolvimento.</p><p> A integração contínua de testes melhora a qualidade do produto final e facilita a adaptação</p><p>às mudanças.</p><p>Testes Contínuos no Contexto Ágil</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Realce</p><p>técnica de desenvolvimento de software que visa melhorar a qualidade do código e a comunicação entre equipes</p><p>maria.chagas</p><p>Realce</p><p>metodologia de desenvolvimento de software que consiste em escrever testes automatizados antes de escrever o código.</p><p> A CI propõe a integração frequente de código em um repositório central, facilitando a</p><p>detecção precoce de problemas.</p><p> Pipelines de CI/CD automatizam a compilação, testes e implantação do código.</p><p> A automação reduz a necessidade de intervenção manual e minimiza o risco de</p><p>erros humanos.</p><p> Ferramentas como Jenkins permitem a personalização dos pipelines para atender às</p><p>necessidades específicas dos projetos.</p><p>Integração Contínua (CI) e Melhoria da Qualidade</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Realce</p><p>sequência de ações de planejamento</p><p> CD garante que o código esteja sempre pronto para ser implantado em produção.</p><p> Pequenas alterações no código são testadas e integradas continuamente, facilitando a</p><p>identificação rápida de problemas.</p><p> A automação do processo de lançamento reduz riscos e aumenta a eficiência.</p><p> CD permite uma resposta rápida às necessidades dos clientes e melhora a colaboração</p><p>dentro da equipe de desenvolvimento.</p><p>Entrega Contínua (CD) e Feedback Rápido</p><p>maria.chagas</p><p>Realce</p><p> Exemplo pipeline CI/CD</p><p>Integração Contínua (CI) e Melhoria da Qualidade</p><p>Fonte: autoria própria.</p><p>Commit e</p><p>Detecção de</p><p>Mudanças</p><p>• Quando um desenvolvedor faz um commit de código em um repositório, o</p><p>pipeline é acionado automaticamente. Ferramentas como Jenkins, GitLab</p><p>CI, ou CircleCI monitoram o repositório em busca de mudanças.</p><p>Construção</p><p>• O código-fonte é compilado em um formato executável. Dependendo da</p><p>linguagem de programação e do projeto, isso pode envolver ferramentas</p><p>de construção com Maven, Gradle, ou Make.</p><p>Testes</p><p>Automatizados</p><p>• Uma série de testes automatizados são executados para garantir que o</p><p>novo código não quebre funcionalidades existentes. Isso pode incluir</p><p>testes unitários, testes de integração e testes de sistema.</p><p>Análise de</p><p>Qualidade de</p><p>Código</p><p>• Ferramentas de análise estática de código, como SonarQube, podem ser</p><p>usadas para verificar a qualidade do código, buscando padrões de código</p><p>ruim, vulnerabilidades de segurança e aderência a padrões de codificação.</p><p> Exemplo pipeline CI/CD</p><p>Integração Contínua (CI) e Melhoria da Qualidade</p><p>Empacotamento</p><p>e Criação de</p><p>Artefatos</p><p>• O código construído e testado é empacotado em artefatos que podem ser</p><p>distribuídos, como arquivos JAR, WAR, ou contêineres Docker.</p><p>Implantação em</p><p>Ambientes de</p><p>Teste</p><p>• Os artefatos são implantados em ambientes de teste para verificações</p><p>adicionais. Isso pode envolver a configuração de ambientes de teste</p><p>semelhantes ao ambiente de produção.</p><p>Testes de</p><p>Aceitação</p><p>• Testes de aceitação do usuário (UAT) e outros testes finais são realizados para</p><p>garantir que o software atenda aos requisitos especificados.</p><p>Implantação em</p><p>Produção</p><p>• Após a aprovação final, o software é implantado no ambiente de produção. Isso</p><p>pode ser feito de forma automática ou manual, dependendo das políticas</p><p>da organização.</p><p>Fonte: autoria própria.</p><p> A IA é</p><p>utilizada para otimizar testes de software e análise de código estático na CI.</p><p> Algoritmos de aprendizado de máquina podem prever falhas e priorizar testes críticos.</p><p> A IA facilita a gestão de recursos e a escalabilidade do ambiente de CI.</p><p> A análise preditiva da IA melhora a estabilidade do código e a confiabilidade do processo</p><p>de desenvolvimento.</p><p>Inteligência Artificial e CI/CD</p><p>Como as metodologias ágeis tratam o conceito de qualidade ao longo do ciclo de</p><p>desenvolvimento?</p><p>a) A qualidade é verificada apenas na fase final do desenvolvimento.</p><p>b) A qualidade é tratada como uma responsabilidade de um único membro da equipe.</p><p>c) A qualidade é integrada de forma contínua ao longo de todo o processo de</p><p>desenvolvimento.</p><p>d) A qualidade é garantida somente por meio de testes de aceitação ao final do projeto.</p><p>e) A qualidade é assegurada por meio de revisões externas ao final de cada sprint.</p><p>Interatividade</p><p>Como as metodologias ágeis tratam o conceito de qualidade ao longo do ciclo de</p><p>desenvolvimento?</p><p>a) A qualidade é verificada apenas na fase final do desenvolvimento.</p><p>b) A qualidade é tratada como uma responsabilidade de um único membro da equipe.</p><p>c) A qualidade é integrada de forma contínua ao longo de todo o processo de</p><p>desenvolvimento.</p><p>d) A qualidade é garantida somente por meio de testes de aceitação ao final do projeto.</p><p>e) A qualidade é assegurada por meio de revisões externas ao final de cada sprint.</p><p>Resposta</p><p> Testes automatizados são programas que verificam se outras partes do software estão</p><p>funcionando como esperado.</p><p> Eles são fundamentais para garantir a qualidade e a robustez do software durante seu</p><p>desenvolvimento e manutenção.</p><p> A automação dos testes garante que o software continue funcionando como esperado</p><p>mesmo após múltiplas alterações e atualizações.</p><p> Existem várias categorias de testes automatizados, cada uma</p><p>focada em diferentes aspectos do software.</p><p>Importância dos Testes Automatizados</p><p>maria.chagas</p><p>Realce</p><p>maria.chagas</p><p>Realce</p><p> Os testes unitários verificam partes individuais do código, como funções ou métodos de</p><p>forma isolada.</p><p> Testes de integração verificam se diferentes partes do sistema funcionam bem juntas.</p><p> Testes de sistema ou testes end-to-end verificam o software como um todo, simulando o</p><p>comportamento do usuário.</p><p> Testes de regressão são testes que verificam se novas alterações ou adições ao código não</p><p>introduziram novos erros.</p><p>Tipos de Testes Automatizados</p><p> Ferramentas como JUnit, PyTest e Selenium são populares para a criação e execução de</p><p>testes automatizados.</p><p> Um exemplo prático é a aplicação de cupons de desconto em uma aplicação web de vendas,</p><p>testando desde o cálculo do desconto até o checkout.</p><p> A automação desses testes significa que toda vez que uma mudança é feita no código, todos</p><p>os testes são executados automaticamente.</p><p> Isso proporciona uma confiança significativa de que o software</p><p>funciona conforme esperado, mesmo após múltiplas</p><p>alterações e atualizações.</p><p>Ferramentas e Exemplos de Testes Automatizados</p><p> O papel do QA (Quality Assurance) é fundamental no contexto dos testes automatizados,</p><p>garantindo que o software atenda aos padrões de qualidade desejados.</p><p> A integração de QA com testes automatizados começa no início do ciclo de desenvolvimento</p><p>em ambientes ágeis.</p><p> Desenvolvimento Orientado por Testes (TDD) é uma abordagem que prioriza a criação de</p><p>testes antes do código, seguindo etapas de "vermelho-verde-refatorar".</p><p> Refatorar o código após passar nos testes é crucial para</p><p>garantir que ele seja limpo, eficiente e fácil de manter.</p><p>Papel do QA e Desenvolvimento Orientado por Testes (TDD)</p><p>maria.chagas</p><p>Realce</p><p>é responsável por garantir a qualidade de produtos e serviços, através de processos que envolvem planejamento, execução e monitoramento de testes</p><p>maria.chagas</p><p>Realce</p><p> O processo de TDD começa escrevendo um teste automatizado antes mesmo de escrever o</p><p>código da funcionalidade.</p><p> O teste inicialmente falha porque a funcionalidade ainda não foi desenvolvida, marcando o</p><p>estágio "vermelho".</p><p> Depois de escrever o código para fazer o teste passar, o estágio "verde" é atingido,</p><p>indicando que a funcionalidade básica está correta.</p><p> A refatoração do código melhora sua estrutura e eficiência,</p><p>garantindo que todos os testes continuem passando.</p><p>Implementação e Benefícios do TDD</p><p>maria.chagas</p><p>Realce</p><p> Um exemplo concreto é o desenvolvimento de um aplicativo de delivery, no qual o valor total</p><p>de um pedido é calculado após se aplicar um cupom de desconto.</p><p> Refatorar o código envolve aprimorar sua estrutura interna sem alterar seu comportamento</p><p>externo, seguindo boas práticas de programação.</p><p> Melhorar a eficiência do código pode incluir reescrever loops ineficientes para usar</p><p>algoritmos mais eficientes, reduzindo o tempo de execução.</p><p> A remoção de duplicação de código durante a refatoração é</p><p>uma prática que melhora a reutilização e reduz erros.</p><p>Aplicação Prática de TDD e Refatoração</p><p>maria.chagas</p><p>Realce</p><p> Exemplo em C#, usando</p><p>NUnit para testes.</p><p>Vermelho</p><p>Fonte: autoria própria.</p><p> Exemplo em C#, usando</p><p>NUnit para testes.</p><p>Verde</p><p>Fonte: autoria própria.</p><p> Exemplo em C#, usando</p><p>NUnit para testes.</p><p>Refatorado</p><p>Fonte: autoria própria.</p><p> Deployment em ambientes ágeis envolve a entrega do software desenvolvido para um</p><p>ambiente de produção de forma contínua e rápida.</p><p> O ambiente de desenvolvimento é o lugar onde os programadores escrevem e testam o</p><p>novo código.</p><p> O ambiente de teste é onde o software é submetido a testes rigorosos para garantir que</p><p>funcione conforme o esperado.</p><p> O ambiente de homologação, ou pré-produção, permite uma</p><p>última verificação antes da implantação definitiva no ambiente</p><p>de produção.</p><p>Deployment e Ambientes de Desenvolvimento</p><p>maria.chagas</p><p>Realce</p><p>colocar no ambiente de produção</p><p>maria.chagas</p><p>Realce</p><p> O monitoramento é crucial para garantir a qualidade e desempenho contínuos do software</p><p>em produção.</p><p> A cultura DevOps integra as práticas de desenvolvimento e operações, promovendo uma</p><p>colaboração mais estreita entre essas áreas.</p><p> O monitoramento contínuo e feedback rápido são essenciais para identificar e resolver</p><p>problemas mais rapidamente.</p><p> Ferramentas de integração contínua e entrega contínua</p><p>automatizam o processo de build, teste e implantação</p><p>do software.</p><p>Monitoramento e Cultura DevOps</p><p>maria.chagas</p><p>Realce</p><p>é uma cultura e um conjunto de práticas e ferramentas que visam melhorar a colaboração e a integração entre as equipes de desenvolvimento de software e operações de TI</p><p>maria.chagas</p><p>Realce</p><p>CI/CD</p><p>Qual das seguintes ferramentas é amplamente utilizada para testes de integração e de</p><p>sistema?</p><p>a) Junit</p><p>b) PyTest</p><p>c) Selenium</p><p>d) Jenkins</p><p>e) Nunit</p><p>Interatividade</p><p>Qual das seguintes ferramentas é amplamente utilizada para testes de integração e de</p><p>sistema?</p><p>a) Junit</p><p>b) PyTest</p><p>c) Selenium</p><p>d) Jenkins</p><p>e) Nunit</p><p>Resposta</p><p> BECK, K. Test driven development: by example. Boston: Addison-Wesley Professional, 2021.</p><p> COHN, M. Agile estimating and planning. 1. ed. Londres: Pearson, 2005.</p><p> CRISPIN, L.; GREGORY, J. Agile testing: a practical guide for testers and agile teams.</p><p>Boston: Addison-Wesley Professional, 2009.</p><p> PMI. Project Management Institute, 2024. Disponível em: https://www.pmi.org/. Acesso em:</p><p>01 maio 2024.</p><p> TAKEUCHI,H. ; NONAKA, I. The New New Product Development Game. Harvard Business</p><p>Review, v. 64, n. 1, p. 137-146, jan. 1986.</p><p>Referências</p><p>ATÉ A PRÓXIMA!</p>