Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prof. Ricardo Black Análise e Desenvolvimento de Sistema ADS Prof. Ricardo Black Professor - NEAD - FECAF - 2021 Programação Basic - 1988 PMESP - Setor de Inteligência - 1992 Professor Acadêmico - 2005 Formação: Graduação Tecnologia em Sistema de Informação. Pós Engenharia de Sistema Pós Gestão e Tecnologia em Segurança da Informação. MBA Profissional em Redes de Computadores MBA Gestão de Projetos. MBA Gestão de TI. Pós Jogos Digitais Pós Ciência de Dados e Big Data Analytics Pós Business Analytics Data Science, Big Data e Artificial Intelligence - FECAF Pós Full Stack Development - Design, Egineering & Deployment - FECAF Certificação em Segurança: Csirt Foundation Cybersecurity Ethical Hacking Essentials Security Officer Currículo Profissional PE - MÉTODOS ÁGEIS UNIDADE I Desafios e evolução da Engenharia de Software Princípios ágeis: O Manifesto Ágil e O que é ser Ágil hoje Ciclo de vida do desenvolvimento Ágil de software UNIDADE II Ferramentas de apoio: User Story, Planning Poker e Burndown Simulação Ágil: User Story e Planning Poker Métodos ágeis de desenvolvimento de software: Kanban, Scrum, XP, ... PE - MÉTODOS ÁGEIS UNIDADE III O método Kanban Simulação Ágil: Kanban e Burndown PE - MÉTODOS ÁGEIS UNIDADE IV O framework SCRUM Os 10 erros e mitos das metodologias ágeis PE - MÉTODOS ÁGEIS Bibliografia Básica AMBLER,Scott and HOLITZA,Matthew. Agile for Dummies. Ed2. John Wiley & Sons,Inc,2012. ISBN: 978-1- 118-30554-6 BRANDÃO,Marcius;et.al.;Monitoramento e Controle de Projetos com Kanban e Burndown: Um relato de experiência. Simpósio Brasileiro de Qualidade de Software, 2012. KNIBERG,Henrik and SKARIN,Mattias. Kanban and Scrum making the most of both. USA, C4Media Inc, 2010. KNIBERG,Henrik and SKARIN,Mattias.Kanban and Scrum obtendo o melhor de ambos.USA,C4Media Inc,2009 PMBOK. Project Management Institute (PMI) (a) (2008) Um Guia do Conhecimento em Gerenciamento de Projetos (Guia PMBoK), 14 Campus Boulevard Newtown Square, Pennsylvania, Estados Unidos, 4º Edição. PRIES,H Kim e QUIGLEY,M. Jon.Scrum Project Management.New York,CRC Press,2010. PRESSMAN,R. Engenharia de Software 6a ed.São Paulo,McGraw-Hill,2006. SCHWABER,Ken and SUTHERLAND,Jeff. The Scrum Guide – The Definitive Guide to Scrum: The Rules of the Game. Scrum.org, 2011. SCHWABER,Ken and SUTHERLAND,Jeff. Guia do Scrum – Um guia definitivo para o SCRUM: As regras do jogo.Scrum.org, 2011. PE - Modelagem de Banco de Dados - SQL - NoSQL Framework Framework é uma definição que vai além do mercado de software. Em outros contextos, refere-se a uma série de ações e estratégias que visam solucionar um problema bem específico. Assim, quando se deparam com esse cenário, os profissionais recorrem a um conjunto pronto de abordagens e otimizam os seus resultados. Metodologias ágeis são conjuntos de práticas que proporcionam uma forma de gerenciar projetos mais adaptável às mudanças. Elas são estruturadas em ciclos curtos sendo que, a cada novo ciclo, é entregue um conjunto de funcionalidades pré- determinado. Portanto, as metodologias ágeis têm como principal restrição o tempo e são caracterizadas por produzirem entregas rápidas e frequentes. É importante ressaltar que as metodologias ágeis partem do pressuposto que a condução do projeto será feita por uma equipe pequena e autogerenciável. Essa equipe normalmente será sênior, multidisciplinar e concentrada em um único local. Todo o esforço da equipe será empregado na qualidade da solução apresentada, que deverá acrescentar alto valor para o cliente do projeto. Metodologia de desenvolvimento ágil é uma forma de construir software que possibilita obter as vantagens do sistema antes de ele estar pronto. Também encoraja os desenvolvedores a se aprimorarem constantemente. Com isso, seus colaboradores menos experientes são treinados com a mão na massa, pelos profissionais mais experientes. O uso de metodologia de desenvolvimento ágil de software está cada dia mais popular. Metodologias desse tipo são alternativas ao modelo tradicional de construção de aplicações. São utilizadas para agilizar o trabalho dos desenvolvedores e gerar melhoria contínua para os processos. Entendendo o conceito mais a fundo Também conhecidas como Métodos Ágeis, essas metodologias incentivam a comunicação. Deste modo, os diversos agentes envolvidos no processo de desenvolvimento de um software interagem. Todos devem ser incluídos no processo de desenvolvimento: desde o cliente final até os técnicos de infraestrutura, passando por programadores, analistas, testadores e usuários. Ao utilizar as metodologias ágeis de desenvolvimento de software, os gestores de projetos conseguem tornar o processo mais interativo e com chances de atingir o resultado esperado em menos tempo. Também há a vantagem de os métodos ágeis oferecerem novas maneiras de administrar as equipes de desenvolvimento de software, sobretudo por colocarem os usuários como participantes ativos na construção das soluções. Diferentes tipos de metodologias ágeis de desenvolvimento de software São inúmeros os métodos conhecidos coletivamente como ágeis. Todos eles promovem os valores do chamado Manifesto Ágil, um movimento iniciado em 2001, que, entre outros pontos, delimitou a valorização de: • Indivíduos e interações mais do que apenas processos e ferramentas; • Softwares que trabalham com documentação muito mais abrangente; • Colaboração do cliente que vai além da negociação de contratos; • Respostas rápidas, testes contínuos e mudanças ao longo do projeto seguindo um planejamento estruturado. TIPOS MAIS AMPLAMENTE ADOTADOS DE METODOLOGIA ÁGIL EM TODO O MUNDO! Dynamic Systems Development Method (DSDM) O Dynamic Systems Development é provavelmente o método original do desenvolvimento ágil de software. Ele já existia antes mesmo do termo “ágil” ter sido inventado e está ancorado em todos os princípios que citamos. Apesar de ser adotada em todo o mundo, a DSDM é uma metodologia muito conhecida e utilizada no Reino Unido. Ela preza pelo desenvolvimento iterativo e incremental, que enfatiza o envolvimento constante dos usuários destinatários da solução. SCRUM Muito popular no Brasil, este método de desenvolvimento ágil se concentra principalmente no gerenciamento de tarefas dentro de um ambiente de desenvolvimento baseado em time. Ele é relativamente simples de implementar e aborda muitos dos aspectos complexos de gestão que costumam representar dor de cabeça para os times de desenvolvimento. Em suma, podemos dizer que o uso de Scrum impõe uma certa disciplina, que permite um acompanhamento mais próximo do andamento do projeto. Suas entregas podem ser até semanais, entregando valor mais rápido. Extreme Programming (XP) Como o próprio nome já sugere, a Extreme Programming é uma das metodologias ágeis de desenvolvimento de software mais radicais. Ela se concentra mais sobre o processo de engenharia das soluções e aborda análise, desenvolvimento e testes com abordagens inovadoras, que fazem grande diferença na qualidade final dos sistemas. MSF O Microsoft Solutions Framework é a forma como a gigante do Vale do Silício gerencia e desenvolve seus softwares. Essa metodologia preza, entre outras coisas, pela parceria com o cliente. Assim como nas demais metodologias de desenvolvimento ágil, existe a cultura de se adaptar a mudanças. A comunicação aberta é encorajada, gerando transparência no processo. Lean O método Lean preza a busca por eficiência. Com comunicação constante e integração entre colaboradores, consegue se adaptar rapidamente a mudanças. Para que os objetivos sejam alcançados, atitude se sobrepõe a planejamento. Neste método, a capacidade de adaptação é uma habilidade fundamental a ser desenvolvida pelos colaboradores. Principais certificações em metodologias ágeis de desenvolvimento de software Outro ponto importante quando falamos em métodos ágeis de desenvolvimentoé o conhecimento em profundidade que gestores de projetos e profissionais de desenvolvimento devem ter para lidar com eles. Veja, a seguir, uma lista com as principais certificações que podem garantir a expertise de uma equipe focada em desenvolver soluções a partir das metodologias ágeis: Agile Certified Practitioner (ACP): concebida pelo Project Management Institute (PMI), é voltada para profissionais de gerenciamento de projetos; APMG International: também direcionada a gestores de projetos ágeis de desenvolvimento; Strategyex Certificate: direcionada a desenvolvedores plenos e gestores de projetos, é oferecida pela Twenty Eighty Strategy Execution, em parceria com a George Washington University; Professional Scrum Master (PSM): é a certificação número um no mundo em Scrum, recomendada a todo profissional que quer provar seu conhecimento neste método. https://brasil.pmi.org/brazil/CertificationsAndCredentials/PMI-ACP.aspx http://www.apmg-international.com/en/qualifications/certifications.aspx https://www.scrum.org/professional-scrum-certifications/professional-scrum-master-i-assessment Principais fatores que todo profissional deveria saber sobre metodologias ágeis de desenvolvimento de software Recentemente o Gartner, maior organização de pesquisa em tecnologia da informação do mundo, listou 10 princípios básicos sobre métodos ágeis. De uma maneira resumida, aqui estão eles: As metodologias ágeis são plurais, apesar de comporem um conjunto de abordagens com uma filosofia: fazer mais e melhor em menos tempo; 2 Não devem ser implementadas pela metade, pois podem atrapalhar mais do que ajudar quando não seguidas à risca do começo ao fim; 3 TI e negócios devem se integrar ao trabalhar com métodos ágeis, uma vez que os desenvolvedores atuam mais focados nos objetivos estratégicos das empresas; 4 É melhor dominar o básico antes de evoluir para o avançado — a experiência dos profissionais diz muito sobre os resultados obtidos e, nós sabemos, experiências vêm com o tempo; Lições aprendidas devem ser tiradas de todos os projetos, sempre visando melhorias nas próximas rodadas de desenvolvimento; 6 O trabalho em equipe deve ser sempre estimulado e reverenciado: divergir e colaborar são dois verbos fundamentais! 7 É importante trabalhar para combater as chamadas “lacunas técnicas”, ou seja, configurar elementos necessários para a refatoração; Todo cuidado é pouco na hora de terceirizar, especialmente por conta da necessidade de interação com os usuários para os quais a solução está sendo desenvolvida; 8 É importante preparar a equipe para as mudanças, pois o conceito de entrega contínua requer constantes modificações nas práticas de trabalho; 9 Nem todas as aplicações devem ser desenvolvidas com métodos ágeis, algumas se adequam mais a metodologias incrementais, interativas ou tradicionais. 10 Conhecendo algumas ferramentas Todo processo tem seus métodos. A seguir, você será transportado para dentro de uma sala de projetos ágeis. Iremos listar as principais ferramentas utilizadas em uma metodologia de desenvolvimento ágil. Sprint Para ter agilidade, é necessário ter entregas constantes. Ao intervalo de trabalho entre uma entrega e outra, chamamos de Sprint. Cada sprint tem objetivos claros de entrega. No início dele, é feita uma reunião entre a equipe e o dono do produto. Nessa reunião, é definido o que será entregue no final daquele sprint. Protótipos são aprovados e a equipe começa o trabalho. Durante o sprint, o que foi combinado é desenvolvido. Diariamente, a equipe se reúne por 15 minutos para passar o status das atividades. Ao final do sprint, existe outra reunião em que as atividades são entregues e aprovadas. Kanban Quadro de Kanban O método Kanban é composto por checklists e oferece uma ótima visão de todo o projeto que está sendo desenvolvido. Ele é um dos métodos mais ágeis e simples utilizados atualmente. Essa metodologia ganhou posição de destaque nos últimos anos por ser uma maneira de realizar o gerenciamento de projetos, com um poder de adaptação para qualquer tipo de negócio. O principal objetivo desse método é buscar a evolução e não a revolução, permitindo que a organização dos processos seja feita de uma forma visual. Trata-se de um quadro em que as tarefas são colocadas. Normalmente são utilizados post-its para cada tarefa. O kanban é dividido basicamente entre tarefas a fazer, em andamento e prontas para entregar. Durante o andamento do sprint, os membros da equipe vão atualizando o progresso das tarefas. O cliente e os gestores também tem acesso ao Kanban. Assim, todos podem acompanhar o andamento do sprint. Acompanhar essa lista de atividades é vital para o bom funcionamento do método, de forma que todos os integrantes da equipe atualizem os dados inseridos constantemente. Burndown Chart Gráfico de queima O Burndown chart ou gráfico de Burndown é o gráfico utilizado pelas equipes Scrum para representar diariamente o progresso do trabalho em desenvolvimento. Ou seja, após cada dia de trabalho o gráfico apresenta a porção de trabalho finalizada em comparação com o trabalho total planejado. É comum a Equipe de Desenvolvimento usar esse gráfico ao longo da Sprint, para medir os pontos das histórias finalizadas ao longo dos dias da Sprint e ter uma visibilidade do seu ritmo de trabalho, verificando se o ritmo está adequado para atingir a meta da sprint, cumprindo com o que foi planejado. É uma das ferramentas mais interessantes do SCRUM, ele fornece uma projeção sobre possíveis atrasos no sprint. Este gráfico é atualizado conforme as tarefas vão sendo concluídas. Apenas olhando para ele, é possível ter uma ideia se o sprint está atrasado ou se será um sucesso, entregando tudo o que foi prometido. Com o uso dessa ferramenta, pode-se tomar atitudes antecipadamente. Smart Se você alguma vez já precisou traçar metas para seu negócio, provavelmente já ouviu falar sobre esse método. O Smart é uma excelente forma de criar objetivos mais reais e atingíveis para sua empresa – ou para você mesmo – para utilizá-lo você deve apenas ter em mente os princípios dessa metodologia, que são indicados por cada uma das letras do seu nome. • S – de Specific (Especifico): em primeiro lugar, sua meta precisa ser clara e bastante específica. Ela deve abordar apenas um ponto de cada vez e não abrir margem para interpretações errôneas ou equivocadas. •M – de Measurable (mensurável): segundo, sua meta precisa ser mensurável e quantificável. Lembre-se de sempre estabelecer objetivos exatos e numéricos que possam realmente comprovar que sua meta foi atingida. Smart • A – de Attainable (Atingível ): os objetivos que você define devem ser desafiadores, mas eles devem ser alcançáveis, levando-se em conta o tempo estabelecido e as condições atuais da empresa. Lembre-se disso! • R – de Relevant (Relevante ): não adianta nada você ter uma meta se o atingimento dela, no final das contas, não gerar nenhum impacto para você ou sua empresa. Na hora de definir seus objetivos, busque por pontos relevantes e cuidado com as métricas de ego! • T – de Time-related (Relacionado ao tempo ): ao estabelecer um objetivo, é muito importante que ele tenha um prazo máximo para ser alcançado. Dessa forma, você evita procrastinações e pode mensurar melhor se houve o atingimento da meta ou não. Derrubando os principais mitos das metodologias ágeis de desenvolvimento de software Por fim, também é importante reconhecer que existem muitos mitos em torno dos métodos ágeis de desenvolvimento. Conheça os principais. Métodos ágeis são bagunçados ou ajudam a burlar processos É um engano pensar em bagunça ou “jeitinho” durante um projeto de desenvolvimento ágil. Pelo contrário, as metodologias ágeis de desenvolvimento são disciplinadas e exigem testes recorrentes, obtenção de feedbacks, envios de partes da solução aos usuários antes da finalização, mudanças e atualização do plano deações do projeto etc. Métodos ágeis servem apenas para equipes pequenas ? Não importa o tamanho do projeto e não importa a quantidade de pessoas envolvidas, as metodologias ágeis de desenvolvimento podem ser aplicadas em qualquer time. Também são aplicáveis em equipes geograficamente dispersas, melhorando significativamente a colaboração entre profissionais com atuação remota. Métodos ágeis provocam muito retrabalho ? Totalmente ao contrário! As metodologias ágeis promovem a diminuição de erros e refações, pois preveem ciclos menores e mais rápidos de entrega, testes contínuos e avaliações com usuários. consertos, refazimentos, reparações, reparos, restabelecimentos, restaurações. Métodos ágeis são “anti-documentação” ? É importante lembrar que toda metodologia de desenvolvimento ágil de software é focada em rapidez e eficácia. Logo, projetos menos burocráticos, com menos documentação, tendem a surgir dessas práticas. Isso não significa que o planejamento e as fases de construção e entrega não precisem ser documentados. Significa apenas que se perde menos tempo com papelada para ganhar mais tempo em construção! Um resumo sobre metodologia ágil de desenvolvimento Nesta aula você aprendeu que esse modo de construir software consiste em entregas constantes. Essas entregas possibilitam obter os resultados dos projetos antecipadamente. Outra característica importante de toda metodologia ágil de desenvolvimento é valorizar a comunicação progressiva. Isso trás a vantagem de identificar problemas antes e solucioná-los mais rapidamente. Benefícios das metodologias ágeis 1.Assertividade Nas metodologias ágeis, o foco na entrega de valor agregado para o cliente do projeto fica muito mais evidente do que na maioria dos projetos clássicos. É comum que o cliente seja envolvido diversas vezes na construção do projeto. A divisão do projeto em ciclos curtos, normalmente de até um mês, permite a validação mais rápida das entregas. Uma vez que você já tenha alinhado partes do projeto às expectativas do cliente, o resultado final será muito mais assertivo. Esse feedback constante também ajuda a aprender com os erros e consolidar as chamadas lições aprendidas. 2. Flexibilidade Ao contrário das metodologias preditivas, em que o objetivo é seguir o planejamento previamente elaborado, nas metodologias ágeis existe mais flexibilidade às mudanças. Isso acontece porque há uma percepção de que as mudanças são parte constante do gerenciamento do projeto e precisam ser atendidas para gerar valor. 3. Colaboração As metodologias ágeis envolvem equipes multidisciplinares, que trabalham em conjunto na busca das soluções. Por serem equipes menores, isso facilita a criação de um ambiente colaborativo e motivador. Afinal, a proximidade da equipe será maior, facilitando o relacionamento no dia a dia e criando laços entre as pessoas. Além disso, uma das práticas do ágil é o envolvimento do cliente durante a execução do projeto. Dessa forma, o cliente passa a ser um parceiro do time. 4. Comunicação Outro ponto bastante considerado nas metodologias ágeis é estabelecer uma boa comunicação entre as partes interessadas no projeto. O recomendado é que as conversas sejam feitas cara a cara, pois a presença física da outra pessoa permite uma melhor interpretação do que está sendo colocado. Isso evita ambiguidades que podem comprometer o resultado do projeto. Além disso, no ágil tudo é muito visual: trabalhamos com painéis, kanban e dashboard, que são atualizados diariamente, permitindo assim que qualquer pessoa saiba a situação do projeto, seus riscos e desvios. 5. Simplicidade Se você comparar a documentação gerada por um projeto que utiliza metodologia preditiva e a documentação gerada por um projeto que utiliza metodologia ágil, verá que a diferença é gigantesca. Enquanto uma metodologia preditiva exige um esforço de planejamento muito grande, pois o foco é antecipar o máximo possível de trabalho, em uma metodologia ágil é suficiente ter um backlog (acúmulo) com as entregas pendentes do projeto. * adjetivo Refere-se à predição, ao ato de predizer, de dizer por antecipação, com antecedência; em que há previsão; prevista. [Por Extensão] Compreendido por meio de deduções, a partir de dados, ações ou informações previamente apresentadas: sucesso preditivo. https://www.euax.com.br/2019/04/metodologias- ageis/#:~:text=S%C3%A3o%20consideradas%20metodologias%20ou%20frameworks,Feature%20Driven%2DDevelopment%2 0(FDD)%3B https://blog.cronapp.io/metodologias-ageis-de-desenvolvimento-de- software/#:~:text=Metodologia%20de%20desenvolvimento%20%C3%A1gil%20%C3%A9,desenvolvedores%20a%20se%20apri morarem%20constantemente.&text=Metodologias%20desse%20tipo%20s%C3%A3o%20alternativas%20ao%20modelo%20tr adicional%20de%20constru%C3%A7%C3%A3o%20de%20aplica%C3%A7%C3%B5es. https://rockcontent.com/br/blog/metodologias-ageis/ Fonte : https://sambatech.com/blog/insights/metodos-ageis/ https://www.devmedia.com.br/conceitos-basicos-sobre- metodologias-ageis/10596 https://www.projectbuilder.com.br/blog/quais-sao-os- principais-tipos-de-metodos-ageis/ https://ufabcjr.com.br/como-ser-agil-na-gestao-de- projetos/?gclid=EAIaIQobChMI6InopeLq7gIVhAWRCh0wyAg2E AAYBCAAEgKir_D_BwE https://gyncursos.com.br/unit/aula-03-metodos-ageis- desenvolvimento-agil-e-dirigido-a-planos/ Aula 03 – Métodos ágeis, desenvolvimento ágil e dirigido a planos = Curso de Engenharia de Software Básico Univesp https://escolaconquer.com.br/metodologias-ageis-o-que-sao-e- quais-os-principais-tipos/ https://www.projectbuilder.com.br/blog/quais-sao-os-principais-tipos-de-metodos-ageis/ https://gyncursos.com.br/unit/aula-03-metodos-ageis-desenvolvimento-agil-e-dirigido-a-planos/
Compartilhar