INOVAÇÃOInstituto de Ciências Exatas e Geociências Ciência da Computação Engenharia de Software Curva de Adoção de Tecnologia Rogers (2003, apud GRINYER, 2007) introduz o conceito de “decisão sobre a inovação”, o qual indica que um grupo (ou indivíduo) procura determinar as vantagens e desvantagens de uma inovação, com o objetivo de reduzir a incerteza antes de sua adoção. Prof. Eder Pazinatto Processo de Desenvolvimento de Software Modelos Ágeis www.upf.br Modelos Ágeis www.upf.br Modelos Ágeis Processo de Desenvolvimento de Software Manifesto Ágil - Princípios WebSite: http://www.agilemanifesto.org/ Modelos Ágeis Métodos ágeis é uma coleção de metodologias baseada na prática para modelagem efetiva de sistemas baseados em software. É uma filosofia onde muitas metodologias se encaixam. As metodologias ágeis aplicam uma coleção de práticas, guiadas por princípios e valores que podem ser aplicados por profissionais de software no dia a dia. www.upf.br Indivíduos e interações são mais importantes que processos e ferramentas. Software funcionando é mais importante do que documentação completa e detalhada. Colaboração com o cliente é mais importante do que negociação de contratos. Adaptação a mudanças é mais importante do que seguir o plano inicial. www.upf.br 1 O objetivo dos métodos ágeis é reduzir o overhead nos processos de software (ex.br 2 . limitando a documentação) e permitir uma resposta rápida aos requisitos em constante mudança sem retrabalho excessivo.org.upf. desenvolvendo software com requisitos que mudam rapidamente e são vagos” www.agile-aliance. Têm foco no código ao invés de no projeto. ajustando o seu comportamento entregar ao cliente a próxima versão (incremento) do sistema no prazo prometido Colaboração Maior prioridade na satisfação do cliente. entregando software com valor e em tempo hábil entre si e com o cliente www.br www.upf. www.Modelos Ágeis Modelos Ágeis O que são modelo Ágeis? Os princípios dos métodos ágeis “São metodologias leves para pequenas e médias equipes.br Modelos Ágeis Modelos Ágeis Princípios – algumas características Perfil da Equipe Entregar versões funcionais com frequência e de preferência no menor espaço de tempo Competência talento nato habilidades específicas de desenvolvimento de software As equipes devem trabalhar juntas durante todo o projeto conhecimento do processo a ser usado A simplicidade é essencial Foco comum De tempo em tempo a equipe reflete sobre como se tornar mais eficaz. São baseados em uma abordagem iterativa de desenvolvimento de software. São planejados para entregar rapidamente o software em funcionamento e evoluí-lo rapidamente para alcançar os requisitos em constante mudança.br www.upf.upf. br www.Modelos Ágeis Modelos Ágeis Perfil da Equipe Aplicabilidade dos métodos ágeis Autonomia autoridade para planejamento tomar decisões técnicas e de Versatilidade aceitar o fato de que o problema sendo resolvido hoje pode mudar amanhã Respeito e confiança mútuos o conjunto é maior do que a soma das partes Auto-organização A equipe se auto gerencia com relação ao trabalho a ser feito.br Para a engenharia de software.upf. tendo em vista a ênfase no processo de minimização da documentação formal? Desenvolvimento dirigido a planos Os métodos ágeis podem ser usados efetivamente. Devido ao foco em equipes pequenas e fortemente integradas. uma abordagem dirigida a planos.br Modelos Ágeis Modelos Ágeis Métodos ágeis e manutenção de software Desenvolvimento ágil x Dirigido a planos (tradicionais) É possível dar suporte aos sistemas que são desenvolvidos usando uma abordagem ágil. para que os métodos ágeis obtenham sucesso. projeto. Iterações ocorrem dentro das atividades.upf. com os produtos a serem produzidos em cada um desses estágios planejados antecipadamente. quando existe um compromisso claro do cliente em se envolver no processo de desenvolvimento e quando não existem muitas regras e regulamentos externos que afetam o software.upf. para evoluir um sistema em resposta a mudanças nos requisitos do cliente? A maioria das organizações gasta mais na manutenção de softwares existentes do que no desenvolvimento de softwares novos. Desenvolvimento de sistema personalizado dentro de uma organização. os softwares devem receber tanta manutenção quanto o desenvolvimento original. quando a empresa de software está desenvolvendo um produto pequeno ou médio para venda.upf. www. durante o processo de desenvolvimento do software. implementação e teste são intercalados e os produtos do processo de desenvolvimento são decididos através de um processo de negociação. existem problemas na escalabilidade de métodos ágeis em sistemas grandes. www. O desenvolvimento incremental é possível no modelo cascata dirigido a planos. www. às adaptações ao processo e ao calendário Desenvolvimento de produto. Devido a isso. é baseada em estágios de desenvolvimento separados.br 3 . Desenvolvimento ágil Especificação. www. Disso usualmente decorre uma grande quantidade de erros. Adaptative Software Development (ASD). www.upf. ou seja. uma abordagem disciplinada para o desenvolvimento de software com o objetivo de tornar o processo mais previsível e eficiente (FOWLER. Priorizar mudanças pode ser difícil onde existem múltiplos stakeholders. Os contratos podem ser um problema assim como em outras abordagens que usam o desenvolvimento iterativo.br 4 . em uma longa etapa que sempre estende o prazo inicialmente proposto. Dynamic Systems Development Methodology (DSDM).Modelos Ágeis Modelos Ágeis Problemas com os métodos ágeis Especificações dirigida a planos e ágil Pode ser difícil manter o interesse dos clientes que estão envolvidos no processo. SCRUM.upf. Feature-Driven Development (FDD). www. A maior parte dos projetos de desenvolvimento de software pode ser descrita simplesmente como “programar e corrigir”.br O movimento original de melhoria no setor foi o que introduziu a noção de metodologia.upf. Manter a simplicidade requer trabalho extra. Crystal Methods(CM). Membros da equipe podem não se adaptar ao envolvimento intenso que caracteriza os métodos ágeis. 2005). sendo desenvolvidos sem planejamento ou uma fase organizada de design do sistema. Lean Development (LD).br Modelos Ágeis www. os quais precisam ser resolvidos.br Conceitos Exemplos de Metodologia implementam métodos ágeis Extreme Programming (XP).upf. Conceitos Conceitos Em 2001. uma metodologia pode ser dita ágil quando efetua o desenvolvimento de software de forma: Trabalharam por dois dias para criar um conjunto de valores. direta (o método em si é simples de aprender e modificar) www.br incremental (liberação de pequenas versões. www. um grupo de profissionais reuniu-se para delinear os valores e princípios que permitiriam às equipes de desenvolvimento produzir rapidamente e responder às mudanças. em constante comunicação) adaptativa (capaz de responder às mudanças até o último instante).upf. Eles chamaram a si mesmos de Aliança Ágil. em iterações de curta duração) colaborativa (cliente e desenvolvedores trabalhando juntos. Embora as metodologias que compõem o movimento ágil já estivessem no mercado há alguns anos. o Manifesto Ágil é considerado oficialmente como o início do movimento ágil. com a denominação de “metodologias leves”.upf. Abrahamsson (2002). 2002).br 5 . movidos pela observação de que equipes de desenvolvimento de software nas mais diversas organizações estavam presas por processos cada vez mais burocráticos. O resultado foi o Manifesto da Aliança Ágil (MARTIN.