Prévia do material em texto
<p>Universidade Federal de Minas Gerais</p><p>Instituto de Ciências Exatas</p><p>Departamento de Ciências da Computação</p><p>Curso de Bacharelado em Sistemas de Informação</p><p>O uso de Métodos Ágeis para o Desenvolvimento de</p><p>Software</p><p>por</p><p>GRUPO 5</p><p>Fábio Dayrell Ferreira Martins Rosa</p><p>Jéssica Taís Carvalho Rodrigues</p><p>Maria Isná Alencar de Castro</p><p>Priscila Izabelle De - Stefano Santos</p><p>Rômulo Rafael da Silva</p><p>Artigo de Engenharia de Software</p><p>Apresentado como artigo acadêmico na disciplina de Engenharia</p><p>de Software do curso de Bacharelado em Sistemas de Informação</p><p>da UFMG.</p><p>Belo Horizonte</p><p>2017 / 2º semestre</p><p>1. INTRODUÇÃO</p><p>Diferentes métodos e modelos têm sido introduzidos por pesquisadores ao</p><p>longo dos tempo destinados ao desenvolvimento de software. Um processo de</p><p>software pode ser considerado como um conjunto de ferramentas, métodos e</p><p>práticas que são usados para produzir um produto de software.</p><p>Desde o início, diferentes metodologias foram introduzidas e usadas pela</p><p>comunidade de engenharia de software. Em 1998, o termo “ágil” (em inglês, “agile”)</p><p>foi associado a primeira vez com o termo de “processo de software” (em inglês,</p><p>“software process”). Daí, os métodos ágeis iniciaram seu processo de ascensão</p><p>culminando com surgimento do Manifesto Ágil (do inglês, “Agile Manifesto”) no ano</p><p>de 2001, como resposta à ineficiência do métodos de desenvolvimento de software</p><p>existentes em ambientes com rápida mudança.</p><p>“Ágil” (ou “Agile”) significa não somente rápido, mas também ativo e</p><p>responsivo. Este método representa uma grande saída das abordagens baseadas</p><p>em planos tradicionais para engenharia de software. Segundo William e Cockburn</p><p>(2003), o desenvolvimento ágil é “sobre feedback e mudança”, uma vez que as</p><p>metodologias ágeis são desenvolvidas para “abraçar, ao invés de rejeitar, maiores</p><p>taxas de mudança” (Muhammad e Tahir, 2004).</p><p>Os métodos ágeis são a mistura de desenvolvimento iterativo com um</p><p>conjunto de melhores práticas para lidar com mudanças de software e aumentar a</p><p>satisfação do cliente. Nos últimos anos, muitas organizações estão se adaptando</p><p>para a adoção de métodos ágeis de desenvolvimento de software.</p><p>Consequentemente, isso é impulsionado pela necessidade contínua de desenvolver</p><p>soluções de softwares melhores, mais rápidas e economicamente eficientes, além</p><p>de satisfazer as necessidades dos clientes.</p><p>Os métodos convencionais de desenvolvimento de software não são muito</p><p>eficientes para se utilizar com a rápida alteração nos requisitos e as iterações curtas</p><p>que são necessárias para uma entrega eficiente do produto.</p><p>1.1 Visão geral do assunto</p><p>As metodologias ágeis, como um conceito relativamente recente para a</p><p>engenharia de software, estão se tornando populares tanto na indústria quanto na</p><p>academia. Uma resposta mais rápida geralmente é produzida pelas pessoas</p><p>envolvidas usando metodologias ágeis, que por sua vez melhora o desempenho do</p><p>sistema e acelera o processo de desenvolvimento.</p><p>Embora as práticas modernas padronizadas, ferramentas e tecnologias</p><p>avançadas tenham mudado o cenário de desenvolvimento de software, segundo</p><p>Beck et al. (2001) a indústria ainda não conseguiu produzir o crescimento bem</p><p>sucedido esperado.</p><p>No desenvolvimento de software, vários são os desafios encontrados:</p><p>mudanças de escopo do projeto, os resultados percebidos pelo cliente, o</p><p>cumprimento de prazos do projeto, motivação e competências da equipe do projeto,</p><p>2</p><p>custos para a execução de projetos, rentabilidade dos projetos etc. Na realidade de</p><p>um projeto mudanças ocorrem, o cliente não sabe o que quer, as estimativas não se</p><p>confirmam, as pessoas da equipes são diferentes e os recursos são escassos.</p><p>Diante deste cenário, as metodologias ágeis propõem crenças e princípios: (i)</p><p>retorno sobre o investimento, (ii) melhoria de processos, (iii) desenvolvimento</p><p>de pessoas e da cultura, (iv) comunicação, (v) adaptação e (vi) inovação.</p><p>O Manifesto Ágil (2001) tem por principais pontos: (i) indivíduos e interação</p><p>mais que processos e ferramentas, (ii) software funcional mais que</p><p>documentação abrangente, (iii) colaboração do cliente mais que negociação</p><p>de contrato, (iv) responder a mudanças mais que seguir um plano, (v)</p><p>mudança de postura dando mais ênfase às pessoas do que a processos, (vi)</p><p>desenvolvimento iterativo e incremental, e (vii) visão ágil, ou seja, prioriza o que</p><p>é mais importante e foca nisso.</p><p>Assim, enquanto as metodologias tradicionais têm um planejamento para</p><p>prevenção de mudanças, as metodologias ágeis incorporam as mudanças ao</p><p>projeto devido à necessidade, oportunidade, requisitos incompletos e outros fatores</p><p>geradores de mudanças. Daí, faz-se necessário entender os princípios, técnicas e</p><p>ferramentas das metodologias ágeis, pontuando-se as vantagens e desvantagens</p><p>delas que não implique numa “defesa cega” destas metodologias em oposição às</p><p>metodologias tradicionais, uma vez que ambas podem contribuir para projetos de</p><p>desenvolvimento de software que gere produtos finais de melhor qualidade e maior</p><p>valor percebido pelo cliente.</p><p>1.2 Objetivo, justificativa e motivação</p><p>1.2.1 Objetivos</p><p>● apresentar as principais metodologias ágeis;</p><p>● identificar as vantagens e desvantagens destas metodologias;</p><p>● relacionar as metodologias ágeis com a área de engenharia de software;</p><p>● caracterizar o cenário atual quanto ao uso das metodologias ágeis;</p><p>● apresentar o cenário futuro quanto às metodologias ágeis e a engenharia de</p><p>software.</p><p>1.2.2 Justificativa</p><p>Metodologias ágeis é um assunto atual, emergente e relacionado com a área</p><p>de Engenharia de Software, representando um tema recorrente entre os atores</p><p>desta área; relaciona-se diretamente com as atividades de desenvolvimento de</p><p>software através de métodos e ferramentas que, segundo defensores, potencializam</p><p>o desenvolvimento de softwares a partir da eficiência, desenvolvimento ágil e</p><p>geração de valor e benefícios para cliente. Os rápidos avanços da tecnologia, as</p><p>importantes transformações econômicas percebidas e outras necessidades têm</p><p>aumentado as exigências quanto à qualidade dos softwares e sistemas em “menor</p><p>3</p><p>tempo possível”.</p><p>1.2.3 Motivação</p><p>Conhecer as metodologias ágeis que dão suporte a área de engenharia de</p><p>software, compreender sua utilização no processo de desenvolvimento de software,</p><p>projetar-se quanto às tendências futuras das metodologias ágeis, desenvolvimento</p><p>de software e engenharia de software e identificar as vantagens e desvantagens das</p><p>metodologias ágeis quanto ao desenvolvimento softwares, uma vez que o mercado</p><p>tem pedido (ou mesmo, exigido), requisitos dos profissionais que envolvam</p><p>conhecimento teórico e prático sobre metodologias ágeis.</p><p>2. CONTEXTUALIZAÇÃO E TRABALHOS RELACIONADOS</p><p>Metodologias ágeis é um tema recente na área de Engenharia de Software.</p><p>Vários fatores e motivos podem ser enumerados sobre a adoção de metodologias</p><p>ágeis no desenvolvimento de software: mudanças dos requisitos definidos no início</p><p>do projeto, objetivos no início do projeto podem não estar muito claros, incertezas</p><p>do projeto, estimativas iniciais, índices de erros, necessidade de processos mais</p><p>flexíveis e menos controlados, acompanhar o aumento das</p><p>necessidades e das</p><p>demandas por softwares entre outros que poderiam ser facilmente citados.</p><p>Vários pesquisadores trabalharam em metodologias ágeis como, por</p><p>exemplo, Jeffrey et al. (2007), Tore et al. (2009) e Ahmad et al. (2010). Jeffrey et al.</p><p>(2007) conduziram uma pesquisa revelando que existe uma correlação significativa</p><p>entre a implementação bem sucedida da metodologia e o treinamento sobre a</p><p>metodologia.</p><p>Tore et al. (2009) mencionaram que os desenvolvedores estavam</p><p>principalmente satisfeitos com métodos ágeis: as empresas que estavam usando o</p><p>XP (extreme programming) relataram que os funcionários estavam mais satisfeitos</p><p>com o produto e as conclusões sobre a eficácia da programação em par foram</p><p>diversas, com vários desenvolvedores considerando isso como uma prática</p><p>exaustiva porque exige muita concentração.</p><p>Ahmed et al (2010) realizaram uma pesquisa que mostrou que a metodologia</p><p>mais comumente utilizada no Paquistão é a Scrum, com cerca de 31% da indústria</p><p>utiliza Scrum (ou uma versão próxima) em 50% dos projetos.</p><p>Outros trabalhos sobre metodologias ágeis são citados: uma pesquisa de</p><p>artigos acadêmicos e científicos publicados por Rico (2008); uma pesquisa online</p><p>com mais de 3 mil pessoas pela VersionOne (2008); um trabalho de comparação</p><p>rigorosa de 26 projetos ágeis com uma base de 7.500 projetos tradicionais por Mah</p><p>(2008) da QSMA; uma pesquisa online com 642 pessoas pelo Dr. Dobb’s Journal</p><p>(2008). O artigo A decade of agile methodologies: Toward explaining agile software</p><p>development (Dingsoyr, 2012) examina publicações e citações para mostrar como a</p><p>pesquisas sobre metodologias ágeis progrediram nos 10 anos posteriores a</p><p>publicação do Manifesto Ágil.</p><p>4</p><p>Assim, é possível considerar que há uma série de fatores que podem</p><p>influenciar direta ou indiretamente os projetos de desenvolvimento em um quadro</p><p>ágil. A adoção de metodologias de desenvolvimento ágil tem um impacto positivo na</p><p>produtividade e na qualidade: Tore et al. (2009) articularam que o desenvolvimento</p><p>ágil de software teve um enorme impacto em como o software é desenvolvido em</p><p>todo o mundo e em uma pesquisa de 2005 nos EUA e Europa, por exemplo, revelou</p><p>que 14% das empresas que usavam métodos ágeis e 49% das empresas estavam</p><p>cientes dos métodos ágeis e estavam interessadas em adotá-los. Outras pesquisas,</p><p>como a já citada por Mah (2008), trata sobre produtividade em projetos ágeis e</p><p>indica que projetos ágeis são 16% mais produtivos.</p><p>Atualmente, as metodologias ágeis estão se tornando cada vez mais</p><p>requeridas nas atividades relacionadas ao desenvolvimento de software. Do outro</p><p>lado, as metodologias tradicionais estão em um panorama de declínio, porém</p><p>convém destacar que as metodologias ágeis são produtos das metodologias</p><p>tradicionais, a partir do momento que estas contribuíram de diferentes maneiras:</p><p>● seja pelas necessidades que emergiram com os avanços das</p><p>tecnologias;</p><p>● os problemas e os desafios originados da aplicação de antigas</p><p>metodologias que não suportavam eficientemente o desenvolvimento</p><p>de software;</p><p>● pesquisas em engenharia de software com as finalidades de</p><p>desenvolver novas práticas ou de aperfeiçoá-las para atender as</p><p>demandas dos clientes e;</p><p>● as necessidades das equipes de desenvolvimento entre outros fatores.</p><p>3. MÉTODO DE PESQUISA</p><p>O método de pesquisa adotado no desenvolvimento deste artigo</p><p>compreende, em síntese, as seguintes etapas:</p><p>1. Definição do tema: realizada durante o mês de Agosto de 2018 entre</p><p>os membros do grupo. A definição do tema foi orientada por um</p><p>assunto mais atual dentro das várias possibilidades existentes dentro</p><p>da área de Engenharia de Software e, ao mesmo tempo, útil para o</p><p>aprendizado acadêmico e profissional;</p><p>2. Entrega da proposta de artigo: submissão através do ambiente</p><p>Moodle da disciplina de Engenharia de Software, 2017/02, em</p><p>30/08/2017. Um modelo/gabarito com a seção de “Introdução” foi o</p><p>objeto de entrega;</p><p>3. Revisão da literatura: durante o mês de Setembro, trabalhos</p><p>acadêmicos (artigos, monografias, teses, dissertações etc.) e</p><p>profissionais (ou seja, materiais disponibilizados por diferentes tipos de</p><p>organizações - empresas, comitês etc - e profissionais da área) foram</p><p>pesquisados e selecionados aqueles que estivessem congruentes aos</p><p>objetivos do trabalho;</p><p>4. Desenvolvimento do artigo: a partir dos referenciais bibliográficos</p><p>selecionados - isso não significa que novas pesquisas não foram</p><p>5</p><p>realizadas mediante alguma necessidade - foi realizado o</p><p>desenvolvimento do trabalho ao longo do mês de Outubro;</p><p>5. Revisão do artigo: as duas primeiras semanas de Novembro</p><p>compreenderam atividades de revisão do desenvolvimento do</p><p>trabalho, apresentação e discussão dos resultados e conclusão do</p><p>artigo;</p><p>6. Apresentação do artigo: em 13/11/2017, como requisito de avaliação</p><p>da disciplina de Engenharia de Software, uma apresentação do artigo</p><p>desenvolvido foi realizada ao professor e alunos;</p><p>7. Revisão final: a partir dos feedbacks da apresentação do artigo,</p><p>novas revisões das partes de Desenvolvimento, Resultados e</p><p>Conclusão foram realizadas, para se obter uma versão final e</p><p>qualificada para submissão como entrega final;</p><p>8. Entrega final: a entrega final ocorreu através do ambiente Moodle da</p><p>disciplina em 20/11/2017.</p><p>Este artigo trata-se de uma pesquisa bibliográfica, não se fazendo</p><p>necessárias ferramentas, metodologias ou outros recursos sofisticados para o</p><p>desenvolvimento deste trabalho. Portanto, compreende um artigo de revisão da</p><p>literatura disponível sobre metodologias ágeis. Não é considerado uma revisão</p><p>sistemática por não utilizar os métodos fundamentais para este tipo de trabalho.</p><p>É importante destacar que, a partir dos objetivos, o artigo recorre a</p><p>referências bibliográficas acadêmicos e de mercado, uma vez que se trata de um</p><p>tema de interesse e de pesquisas por atores destes dois conjuntos. Ciente dos</p><p>objetivos e da importância de assegurar qualidade das fontes bibliográficas</p><p>utilizadas, a revisão e seleção demandou maior tempo e esforço por parte dos</p><p>autores para originar um trabalho final com qualidade.</p><p>4. DESENVOLVIMENTO DO TRABALHO</p><p>4.1 BREVE HISTÓRICO DA ENGENHARIA DE SOFTWARE</p><p>Segundo Macro (1990), “A Engenharia de Software é o estabelecimento do</p><p>uso de bons princípios de engenharia e boas práticas de gerenciamento, além da</p><p>evolução de ferramentas e métodos para uso apropriado, a fim de obter, dentro dos</p><p>limites existentes, um software de alta qualidade.”</p><p>O principal desafio na área de Engenharia de Software nos últimos anos (ou</p><p>mesmo décadas) tem sido o estudo e a melhoria da qualidade e redução de custo</p><p>do software produzido. Em 1980, conforme recordado por Pressman (1995), a</p><p>revista Business Week publicou uma reportagem com o título “Software: A Nova</p><p>Força Propulsora”. Essa reportagem simboliza uma atenção quanto aos benefícios</p><p>do desenvolvimento de software para as organizações.</p><p>Em meados da década de 1980, a revista Fortune lança uma reportagem de</p><p>capa “Uma Crescente Defasagem de Software” e, ao final da década, novamente a</p><p>Business Week traz um alerta ao mercado de software, aos seus autores e seus</p><p>leitores através da reportagem “A Armadilha do Software - Automatizar ou Não”. O</p><p>6</p><p>ponto de inflexão na indústria de desenvolvimento de software emerge no início da</p><p>década de 1990 através de duas reportagens: uma da Newsweek, “Podemos</p><p>Confiar em Nosso Software”, e pelo Wall Street Journal em “Criar Software Novo:</p><p>Era uma Tarefa Agonizante…”.</p><p>A história da computação é marcada por três desafiantes períodos descritos</p><p>por Pressman (1995): inicialmente, o principal desafio era desenvolver o hardware</p><p>que reduzisse o custo de processamento e armazenagem de dados, então a década</p><p>de 1980 apresenta avanços na microeletrônica que resultam em maior poder de</p><p>computação com menor custo. Na década de 1990, o desafio foi melhorar a</p><p>qualidade e reduzir os custos das soluções baseadas em computador - isto é,</p><p>soluções em software.</p><p>Atualmente, quando se trata de desenvolvimento de software (e de</p><p>engenharia de software) se percebe que estes assuntos estão em constante e</p><p>rápido desenvolvimento, pois softwares de qualidade são cada vez mais requeridos.</p><p>A engenharia e o desenvolvimento de software possuem ferramentas novas e</p><p>poderosas que são suporte para o processo de desenvolvimento (Peters, 2001).</p><p>Entre 1950 e 2000, o desenvolvimento de software passou por importantes</p><p>desafios e mudanças para acompanhar as diferentes necessidades que surgiam.</p><p>Pressman (1995), divide este intervalo em quatro grandes períodos, conforme figura</p><p>1 abaixo:</p><p>Figura 1 - A evolução do Software (Pressman, 1995)</p><p>O período atual, denominado quinta era, é sintetizado por Pressman (1995)</p><p>em três problemas macros: (1) a sofisticação do software ultrapassou a capacidade</p><p>de construir software que extraia o potencial do hardware; (2) a capacidade de</p><p>construir programas não pode acompanhar o ritmo da demanda de novos</p><p>programas e (3) a capacidade de manter os programas existentes é ameaçada por</p><p>projetos ruins e recursos inadequados.</p><p>Reitera essa visão o posicionamento de Peters (2001) ao considerar que os</p><p>desafios que os engenheiros de software encontram hoje são semelhantes aos</p><p>existentes quando a engenharia de software ainda engatinhava, ou seja, os esforços</p><p>para desenvolver softwares confiáveis são contínuos.</p><p>O processo de desenvolvimento de qualquer software impõe uma série de</p><p>problemas às equipes: dificuldades acidentais e dificuldades essenciais, problemas</p><p>conceituais, especificação de requisitos, definição e cumprimento de prazos, custo</p><p>de um projeto, produtividade, qualidade e teste de software, trabalho em equipe,</p><p>capacitação de pessoal, planejamento, motivação, manutenibilidade, gerência de</p><p>7</p><p>projeto, análise crítica (Prikladnicki, 2004).</p><p>Ainda por Prikladnicki (2004), quanto aos desafios do desenvolvimento de</p><p>software, é possível considerar os novos ambientes de desenvolvimento</p><p>(e-business, desenvolvimento Web, outsourcing, ambientes fisicamente</p><p>distribuídos), gerenciamento de riscos, capacitação de pessoal, planejamento,</p><p>padrões de desenvolvimento de software, certificação, aprendizagem</p><p>organizacional, produtividade e motivação.</p><p>A evolução da tecnologia resolveu desafios anteriores ao que se refere às</p><p>áreas da Engenharia de Software, mas ao mesmo tempo novos desafios emergiram</p><p>devido às diferentes formas possíveis de desenvolver um sistema. Ficar preso a</p><p>uma abordagem, a um modelo ou a alguma metodologia já não é mais possível</p><p>quanto à atividade de desenvolvimento de software, então é possível considerar que</p><p>a combinação de diferentes abordagens, técnicas e ferramentas podem</p><p>potencializar resultados mais precisos, adequados, elegantes e econômicos.</p><p>O bom uso e integração das partes ferramentas, métodos e processo é</p><p>necessário para que a qualidade final do software atenda aos requisitos e às</p><p>necessidades do cliente, uma vez que este é uma das principais partes</p><p>interessadas. As relações entre o proprietário do produto (e equipe) e o cliente,</p><p>entretanto, não são sempre amistosas e positivas. Para além disso, o ambiente, a</p><p>organização e as interações entre os membros da equipe de desenvolvimento</p><p>(fatores internos) e fatores externos também corroboram.</p><p>Neste breve histórico descrito sobre a Engenharia de Software, mais</p><p>especificamente para o processo de desenvolvimento de software, as metodologias</p><p>ágeis surgem como um tema recorrente entre os atores envolvidos com esse</p><p>processo. A área de Engenharia de Software é especificamente grande, com vários</p><p>assuntos integrantes, uma gama de abordagens, técnicas, ferramentas e</p><p>metodologias existentes, relacionadas e complementares para fazer frente aos</p><p>desafios e problemas inerentes da área.</p><p>Este trabalho está organizando da seguinte forma: após esse breve histórico,</p><p>discorre-se sobre o processo de desenvolvimento de software; em seguida, sobre</p><p>as metodologias tradicionais do processo de desenvolvimento de software; depois,</p><p>com maior foco, as metodologias ágeis são abordadas; trata-se, também, dos</p><p>principais problemas do desenvolvimento de software e, finalmente, os atuais</p><p>desafios quanto ao desenvolvimento de software e as conclusões e considerações</p><p>que os autores chegaram ao fim do trabalho.</p><p>4.2 PROCESSO DE DESENVOLVIMENTO DE SOFTWARE</p><p>Segundo Pressman (2001) - no livro “Software Engineering. A Practitioner’s</p><p>Approach” - “o principal desafio na área de Engenharia de Software nas últimas</p><p>duas décadas tem sido o estudo e a melhoria da qualidade e redução de custo do</p><p>software produzido.” Este desafio é também uma realidade atual e, talvez, com</p><p>exigências ainda maiores quanto o aumento da qualidade e a redução de custos,</p><p>uma fórmula perseguida não somente para o sucesso das organizações, quanto</p><p>para aumento da rentabilidade e lucratividade delas. Atualmente, o software ao</p><p>atender um cliente, indiretamente, atende aos interesses de vários outros</p><p>8</p><p>stakeholders, em alguns casos, interesses conflituosos.</p><p>A literatura apresenta diferentes definições sobre a Engenharia de Software,</p><p>muitas delas complementares entre si. Das definições encontradas, considera-se a</p><p>mais apropriada a este artigo ao definir a Engenharia de Software como “(...) o</p><p>estabelecimento e o uso de bons princípios de engenharia e boas práticas de</p><p>gerenciamento, além da evolução de ferramentas e métodos para uso apropriado, a</p><p>fim de obter, dentro dos limites existentes, um software de alta qualidade” (Macro,</p><p>1990).</p><p>A partir da definição anterior, destaca-se os seguinte trechos: (i) “ uso de</p><p>bons princípios”, (ii) “boas práticas de gerenciamento”, (iii) “além da evolução</p><p>de ferramentas e métodos” e (iv) “dentro dos limites existentes, um software</p><p>de alta qualidade”. Estes trechos destacados da definição permite importantes</p><p>considerações, as quais podem ser extensivas às metodologias ágeis:</p><p>1. em (i) fundamenta que bons princípios são necessários no processo de</p><p>desenvolvimento de software, independente dos métodos, abordagens,</p><p>ferramentas e metodologias adotadas e vai de encontro das capacidades e</p><p>habilidades dos membros que compõem as equipes de desenvolvimento;</p><p>2. já (ii), orienta para a importância de boas práticas de gerenciamento. Em</p><p>nível macro, o Gerente de</p><p>especialmente quando há diferentes fatores e atores pressionando.</p><p>12</p><p>4.3.3 MODELO DE CICLO DE VIDA ESPIRAL</p><p>Este modelo, segundo Boehm (2000), foi desenvolvido para englobar as</p><p>melhores características dos ciclos de vida clássico e incremental, ao mesmo tempo</p><p>em que adiciona um novo elemento, a análise de risco.</p><p>Figura 5 - Modelo de Ciclo de Vida Espiral (Peters e Pedrycz, 2001)</p><p>Este ciclo de vida abrange quatro importantes atividades, conforme</p><p>Pressman (1995) e Peters e Pedrycz (2001): planejamento, análise dos riscos ,</p><p>engenharia e avaliação do cliente. Este modelo é considerado a abordagem mais</p><p>realística para o desenvolvimento de software e sistemas em grande escala, uma</p><p>vez que capacita a equipe de desenvolvimento e o cliente a entender e a reagir aos</p><p>riscos em cada etapa evolutiva da espiral.</p><p>Pressman (1995) e Peters e Pedrycz (2001), este modelo tem como</p><p>vantagens: (i) permite um desenvolvimento evolutivo do software, (ii) permite uma</p><p>interação com o usuário, (iii) os requisitos não precisam ser todos definidos no</p><p>começo, (iv) é iterativo, com um marco para avaliação final de cada iteração, (v)</p><p>busca integração do desenvolvimento tradicional com a prototipação e (vi) introduz</p><p>a análise de risco. Como desvantagens, enumeram-se: (i) pode ser difícil</p><p>convencer grandes clientes de que a abordagem evolutiva é controlável, (ii) se um</p><p>grande risco não for descoberto, com certeza ocorrerão problemas, (iii) é mais</p><p>complexo e tem um custo mais alto do que os outros ciclos de vida; (iv) pode não</p><p>convergir para uma solução e (v) dependendo do projeto, a relação custo/benefício</p><p>pode ser duvidosa.</p><p>13</p><p>4.4 METODOLOGIAS ÁGEIS DE CICLOS DE VIDA DO PROCESSO DE</p><p>DESENVOLVIMENTO DE SOFTWARE</p><p>Vários fatores influenciaram e catalisaram o desenvolvimento de</p><p>metodologias ágeis para o desenvolvimento de software, de maneira que o</p><p>processo pudesse atender em boa medida esses fatores derivados das crescentes</p><p>pressões do mercado por inovação, prazos, produtividade, flexibilidade, melhoria no</p><p>desempenho e na qualidade dos projetos de desenvolvimento de software e, ainda,</p><p>atingir o foco principal: satisfação do cliente.</p><p>Satisfação do cliente, seja em metodologias ágeis ou tradicionais, é um</p><p>atributo, uma consequência final desejável na execução de qualquer projeto. A</p><p>qualidade final, então, será diretamente determinada pela execução da parte vital de</p><p>um projeto: o gerenciamento do projeto, cujas responsabilidades estão sobre o</p><p>Gerente de Projetos, distribuídas para a Equipe de Desenvolvimento.</p><p>Segundo uma pesquisa realizada pela Standish Group - Chaos Report (s.d) e</p><p>citada por Steffen (2012), a área de TI possuía nas últimas duas décadas,</p><p>significativas taxas de erros.</p><p>Tabela 1 - Avaliações de projetos entregues nas últimas duas décadas (Standish Group - Chaos</p><p>Report, s.d.)</p><p>Cerca de 66% dos projetos apresentaram problemas (atrasos, estouro de</p><p>orçamentos, defeitos, não atendem as necessidades do cliente etc.) ao longo do seu</p><p>processo de desenvolvimento até a conclusão e, criticamente, resultaram em 24%</p><p>de projetos fracassados, outrora 44% com algum problema que, em maior ou menor</p><p>grau, afeta a qualidade final do software. Além disso, é importante destacar que dos</p><p>32% projetos que são considerados de sucesso, aproximadamente 20% da</p><p>funcionalidade do software é realmente útil. Estes são números um tanto quanto</p><p>críticos, preocupantes.</p><p>Deste cenário, emergiram as metodologias ágeis como uma nova forma de</p><p>gestão e desenvolvimento de software através de uma abordagem de planejamento</p><p>e execução iterativa e incremental voltado para processos empíricos: complexos,</p><p>caóticos, muitas incertezas, mudanças ao longo do processo, imprevisibilidade e</p><p>sem repetições). Divide-se o problema em problemas menores que geram</p><p>produtos também menores e visa entregar um produto funcionando</p><p>14</p><p>regularmente (entregas constantes de partes operacionais), aproximação e</p><p>colaboração da Equipe de Desenvolvimento com aqueles com significativo</p><p>know-how do negócio, comunicação , redução dos riscos associados às</p><p>incertezas do projeto (integração e testes contínuos), adaptativa (respostas às</p><p>mudanças de forma mais rápida e natural) e, por fim, satisfação final do cliente</p><p>devido à adoção de práticas de gestão (como, por exemplo, feedbacks) e</p><p>engenharia de software baseados nos valores e princípios do Lean e do Agile.</p><p>Reconhece-se, assim, que o desenvolvimento de software é um processo</p><p>complicado e imprevisíveis, mas com mecanismos voltados para ações corretivas.</p><p>4.4. BREVE HISTÓRIA</p><p>O termo “Metodologias Ágeis” surgiu em 2001, nos Estados Unidos, a partir</p><p>da iniciativa de 17 especialistas em desenvolvimento de software cujo objetivo era</p><p>discutir formas de melhorar o desempenho dos seus projetos. Apesar de cada</p><p>envolvido ter suas próprias práticas teorias sobre o desenvolvimento de um projeto</p><p>de software para se ter sucesso, havia um senso comum que um certo conjunto de</p><p>princípios são necessários ser respeitados para potencializar o sucesso de um</p><p>projeto.</p><p>A partir daí, cria-se a Aliança Ágil, bem como o Manifesto Ágil, o qual contém</p><p>conceitos e princípios comuns compartilhados entre entre as metodologias ágeis.</p><p>Sob a ótica do Manifesto Ágil, o processo de desenvolvimento de software</p><p>precisaria valorizar:</p><p>● Indivíduos e interação entre eles mais que processo e</p><p>ferramentas;</p><p>● Software em funcionamento mais que documentação abrangente;</p><p>● Colaboração com o cliente mais que negociação de contratos;</p><p>● Responder a mudanças mais que seguir um plano.</p><p>Conforme analisa Soares (s.d.), o Manifesto Ágil não rejeita os processos e</p><p>ferramentas, a documentação, a negociação de contratos ou o planejamento, mas</p><p>simplesmente mostra que eles têm importância secundária quando comparado com</p><p>os indivíduos e interações, com o software funcionando, com a colaboração com o</p><p>cliente e as respostas rápidas a mudanças e alterações.</p><p>4.4.1 METODOLOGIAS ÁGEIS EXISTENTES E APLICAÇÕES</p><p>Segundo Steffen (2012), “desenvolvimento ágil é o termo utilizado por</p><p>diferentes metodologias e frameworks que desenvolvem software de forma iterativa</p><p>e incremental. Algumas são mais prescritivas ou menos.”</p><p>Então, mencionando algumas das metodologias ágeis existentes: Agile at</p><p>scale methods (A-Scale), Agile Unified Process (AUP), Extreme Programming (XP),</p><p>Feature-Driven Development (FDD), Kanban, Lean Development, OpenUP, RUP e</p><p>Scrum.</p><p>Conforme será apresentado mais adiante, pesquisas apontam que o Scrum é</p><p>15</p><p>a metodologia mais utilizada. É importante destacar que cada uma das</p><p>metodologias ágeis têm suas particularidades e práticas sugeridas, sendo possível</p><p>também um mix (hibridismo) entre elas, ou seja, uma mescla dessas metodologias,</p><p>de tal maneira que as melhores práticas sejam aplicada a um processo</p><p>customizado.</p><p>Então, analisar a necessidade, a maturidade da equipe, o projeto a</p><p>desenvolver e outros fatores são importantes para que os conceitos, princípios e</p><p>práticas ágeis possa gerar benefícios esperados e não simplesmente implementar</p><p>“às cegas”. Ainda, adotar uma metodologia ágil pode evidenciar as fraquezas</p><p>das</p><p>partes que compõem o processo de desenvolvimento de software, permitindo atuar</p><p>ativamente sobre elas, discutindo mudanças e as implementando através de uma</p><p>colaboração em equipe.</p><p>Logo, não é uma tarefa fácil, pois exige disciplina e determinação das partes</p><p>envolvidas, pois envolve mudanças de comportamentos. E, como toda atividade que</p><p>provoque mudanças e rupturas comportamentais, falhas podem surgir na adoção de</p><p>uma metodologia ágil: (i) filosofia ou a cultura da empresa conflita com valores e</p><p>princípios do agile, (ii) falta de suporte gerencial para apoiar as mudanças, (iii) alta</p><p>de experiência ou treinamento insuficiente no novo processo e/ou (iv) boicote, falta</p><p>de compromisso da própria equipe, sendo fundamental reconhecer que melhorias</p><p>são necessárias.</p><p>Este trabalho não possui o foco de discorrer sobre metodologias ágeis</p><p>específicas, uma vez que não compreende um dos objetivos, bem como há uma</p><p>significativa bibliografia, física e digital, sobre esse assunto. Tal atividade de</p><p>pesquisa é sugerida e incentivada, recomendando-se iniciar pelas metodologias</p><p>mencionadas neste tópico de trabalho por serem as principais utilizadas nas</p><p>organizações como será percebido nos próximos tópicos</p><p>4.4.2 CONTEXTO ATUAL DAS METODOLOGIAS ÁGEIS</p><p>No ano de 2015, a Reifer Consultants publicou um estudo para verificar o</p><p>nível de adoção das metodologias ágeis e a percepção de benefícios superiores</p><p>com a aplicação delas quando comparados com metodologias tradicionais (cascata,</p><p>prototipação, incremental etc.). Por representar um estudo de alcance global,</p><p>envolvendo diferentes tipos de projetos (tamanho, complexidade, duração etc.),</p><p>apresentar e analisar este estudo é congruente com dois objetivos deste trabalho: (i)</p><p>caracterizar o cenário atual quanto ao uso das metodologias ágeis e (ii) apresentar</p><p>o cenário futuro quanto às metodologias ágeis e a engenharia de software.</p><p>Esta pesquisa foi realizada junto a 150 organizações localizadas em todo o</p><p>mundo e a base de análise compreende dados de 3.000 projetos dos quais 1.500</p><p>foram concluídos através de abordagens das metodologias ágeis e outros</p><p>1.500 foram concluídos por meio das metodologias tradicionais. Nenhum dos</p><p>projetos possuíam mais de 10 anos de conclusão.</p><p>Sobre esta pesquisa, Reifer e Hastie (2017), realizou um trabalho</p><p>apresentado através do artigo “Quantitativa Analysis of Agile Methods Study (2017):</p><p>Twelve Major Findings”, o qual enumera 12 evidências que os autores consideram</p><p>ser importantes obtidas a partir de análise sobre o estudo publicado pela Reifer</p><p>16</p><p>Consultants (2015). Neste trabalho, serão destacadas as evidências que são</p><p>congruentes aos nosso objetivos e com considerações sobre os resultados</p><p>evidenciados.</p><p>4.4.2.1 PREDOMINÂNCIA DOS MÉTODOS ÁGEIS PARA O DESENVOLVIMENTO</p><p>DE SOFTWARE</p><p>Gráfico 1 - Introdução ágil mundial por número de organizações por fase de adoção da tecnologia</p><p>(Reifer e Hastie, 2017)</p><p>O gráfico acima mostra que as</p><p>metodologias ágeis continuam sendo a</p><p>abordagem para desenvolvimento de software</p><p>dominante no mundo. Importa observar,</p><p>também que a adoção das metodologias ágeis</p><p>ocorreu mais recentemente na maioria das</p><p>organizações, em maior número, entre os anos</p><p>de 2009 e 2014, sendo as organizações</p><p>localizadas no continente americano aquelas</p><p>que mais têm adotado tais abordagens.</p><p>O processo de introdução mais recente (isto é, após 2014) continua</p><p>ocorrendo em um número significativo de organizações, principalmente na América</p><p>e na Ásia, possivelmente por serem os continentes que concentram atualmente um</p><p>significativo de organizações de base tecnológica ou ligadas a tecnologia - em</p><p>nações desenvolvidas (Canadá e Estados Unidos) e emergentes (Brasil, China,</p><p>México e Rússia). Convém destacar as barras que representam a Austrália,</p><p>apontando para um número significativo de organizações naquele país que</p><p>adotaram ou estão adotando as metodologias ágeis.</p><p>4.4.2 SCRUM É A METODOLOGIA ÁGIL MAIS POPULAR</p><p>17</p><p>Gráfico 2 - Introdução ágil mundial por número de organizações por fase de adoção da</p><p>tecnologia (Reifer e Hastie, 2017)</p><p>O gráfico acima claramente aponta para a adoção do Scrum como</p><p>metodologia ágil para o desenvolvimento de software. Porém, algumas análises são</p><p>importantes: (i) o Scrum é fortemente utilizado para projetos que possuem</p><p>características quanto a envolver pequenos e poucos times de desenvolvimento (até</p><p>5 times) e localizados no mesmo local para desenvolvimento de produtos (small and</p><p>medium projects); (ii) projetos cujas características são mais de 5 times de</p><p>desenvolvimento localizados em diferentes lugares, percebe-se uma preferência em</p><p>adotar A-Scale (metodologias agile-at-scale como, por exemplo, SAFe) e Híbridas</p><p>(metodologias que agregam características de outras para personalizar e se</p><p>adequar às características do projeto, abarcando metodologias tradicionais e/ou</p><p>Kanban e conceitos enxutos - lean concepts); (iii) em síntese, as metodologias mais</p><p>utilizadas no mundo, em números absolutos, são Scrum, A-Scale e metodologias</p><p>Híbridas.</p><p>4.4.3 OUTRAS EVIDÊNCIAS</p><p>O trabalho de Reifer e Hastie (2017) traz outras 10 evidências sobre o atual</p><p>contexto das metodologias ágeis quanto ao processo de desenvolvimento de</p><p>software. Estas evidências são sucintamente apresentadas a seguir:</p><p>● uso de metodologias híbridas e metodologias agil-at-scale em projetos</p><p>grandes são quase iguais: essa evidência tem relação com as dificuldades</p><p>18</p><p>de escalar metodologias ágeis para grandes projetos, uma vez que os</p><p>esforços são difíceis e os prazos apertados.As versões múltiplas, muitas</p><p>vezes, precisam ser desenvolvidas em paralelo por equipes distintas,</p><p>localizadas em locais diferentes e/ou distantes e em ambientes distribuídos.</p><p>As entregas devem ser planejadas, coordenadas e sincronizadas de tal forma</p><p>que o desenvolvimento, a integração e os testes ocorram nos momentos</p><p>oportunos. Reifer e Hastie (2017) analisam que a adoção de metodologias</p><p>ágeis (híbridas e agile-at-scale) foi significativa, uma que aproximadamente</p><p>dois anos atrás, o uso de ágil em grandes projetos era a metade do que se vê</p><p>atualmente;</p><p>● queda da taxa de reversão de metodologias ágeis diminuiu: durante a</p><p>década de 2000 a 2010, a taxa de reversão média foi de cerca de 25% ao</p><p>tentar introduzir metodologias ágeis no mainstream. À medida que essas</p><p>metodologias obtiveram maior aceitação e amadurecimento, a taxa de</p><p>reversão melhorou e convergiu para aproximadamente 15%. Segundo Reifer</p><p>e Hastie (2017), com base em dados analisados, apenas 10% das</p><p>metodologias ágeis foram substituídas (revertidas) para outras tradicionais.</p><p>Gráfico 3 - Taxa de reversão de Metodologias Ágeis por Ano (Reifer e Hastie, 2017)</p><p>● estabilização do ganho de produtividade ágil: segundo Reifer e Hastie</p><p>(2017), a produtividade ágil, medida por saídas / unidades de entrada (linhas</p><p>de código equivalentes ou pontos de função / mês da equipe), estabilizou-se.</p><p>Para eles, as metodologias atingiram um estado estacionário na maioria das</p><p>empresas em que foram adotadas, ou seja, os ganhos realizados durante a</p><p>adoção tendem a se nivelar quando</p><p>atingem um status operacional. Porém,</p><p>quando comparados os ganhos de produtividade de metodologias ágeis com</p><p>as tradicionais, há diferenças significativas. Outras questões que impactam</p><p>na produtividade das empresas, especialmente em grandes projetos ou</p><p>empresas que aplicam metodologias ágeis em toda organização, é o uso de</p><p>técnicas de gerenciamento tradicionais e adoção de um conjunto de práticas</p><p>repaginadas, porém burocráticas;</p><p>● estabilização da redução de custos ágil: com base nos dados atuais,</p><p>Reifer e Hastie (2017) identificaram que os custos, medidos em termos de $ /</p><p>unidade de produção, continuam a ser entre 5 a 12% por ano mais baratos</p><p>que as metodologias tradicionais. Os dados revelam que as reduções de</p><p>custos realizadas nos últimos 3 anos se estabilizaram à medida que as</p><p>empresas ampliaram o uso de metodologias ágeis em toda a empresa. Não</p><p>19</p><p>necessariamente os custos foram traduzidos por redução de equipe, mas por</p><p>redução nos esforços, em geral, para se obter bons resultados. Porém, em</p><p>projetos ágeis em escala, os custos de gerenciamento são maiores para</p><p>projetos maiores, pois as despesas ágeis variam amplamente ao considerar o</p><p>domínio e contexto da aplicação;</p><p>● distribuição ágil de esforços e duração diferentes das metodologias</p><p>tradicionais: a partir de dados analisados por Reifer e Hastie (2017), a</p><p>maneira como o tempo e os esforços são distribuídos durante o</p><p>desenvolvimento de software usando metodologias ágeis difere daquela</p><p>experimentada em projetos direcionados por metodologias tradicionais.</p><p>Segundo eles, o principal motivo para essa diferença é que aqueles que</p><p>utilizam ágil enfocam seus esforços na criação de produtos funcionais em</p><p>intervalos curtos, em vez de criar documentação. Os desenvolvedores ágeis</p><p>criam e revisam o código de trabalho com o usuário, ao invés de dedicar</p><p>tempo e esforços para gerar requisitos e especificações de projeto antes do</p><p>início da codificação;</p><p>Gráfico 4 - Esforços por estágio do ciclo de desenvolvimento (Reifer e Hastie, 2017)</p><p>● ágil melhora a capacidade de cumprir prazos programados: o tempo de</p><p>mercado ágil, medido pelo tempo do calendário desde o início até a entrega</p><p>de software, oferece às empresas a capacidade de realizar prazos apertados</p><p>de agendamento entre 75 a 90% do tempo em relação ao desempenho</p><p>médio de 40 a 60 % dos projetos semelhantes em metodologias tradicionais.</p><p>Porém, é importante destacar que a porcentagem dos cursos que foram</p><p>prometidos e realmente entregue varia de 80 a 90% em ágil contra 95 a</p><p>100% para desenvolvimentos tradicionais (Reifer e Hastie, 2017);</p><p>● qualidade ágil é melhor do que as normas tradicionais: com base nos</p><p>resultados dos estudos de Reifer e Hastie (2017), a qualidade do software</p><p>ágil é superior ao desempenho de metodologias tradicionais por um fator de 6</p><p>a 12% em cerca de 3 anos. A qualidade do software melhora durante o</p><p>desenvolvimento e o pós-lançamento porque é projetada no produto pela</p><p>equipe de desenvolvimento à medida que o software é gerado. Quando</p><p>métodos ágeis são usados, a qualidade é considerada ao longo do processo</p><p>de desenvolvimento primeiro através dos teste e, em seguida, por</p><p>20</p><p>abordagens contínuas de integração e teste, além da qualidade ser abordada</p><p>pelo próprio time e não por terceiros;</p><p>● valor ágil (agile value) é difícil de quantificar: as metodologias ágeis</p><p>colocam ênfase no fornecimento aos seus usuários/clientes com valor,</p><p>fornecendo produtos de software de trabalho continuamente ao longo do ciclo</p><p>de vida do desenvolvimento. O valor é geralmente medido em termos do</p><p>benefício financeiro e/ou competitivo que as organizações recebem para suas</p><p>despesas. Embora existam algumas orientações disponíveis para o</p><p>planejamento de valor, segundo Reifer e Hastie (2017), é oferecida pouca</p><p>ajuda sobre como quantificar o valor derivado desses esforços. Os autores,</p><p>sugerem então medidas clássicas devido à falta de clareza: custo/benefícios,</p><p>retorno ou retorno sobre o investimento para quantificar os retornos derivados</p><p>das abordagens ágeis;</p><p>● ágil continua a oferecer aos seus usuários uma vantagem competitiva:</p><p>muitas conclusões parecem acreditar que metodologias ágeis podem</p><p>representar uma vantagem competitiva quando as organizações aproveitam</p><p>plenamente os pontos fortes e compensam suas fraquezas. Não só as</p><p>metodologias ágeis proporcionam recompensas de produtividade, custo e</p><p>tempo de mercado, proporcionam aos usuários a capacidade de atrair e reter</p><p>o talento. Reifer e Hastie (2017) recomendam a institucionalização destas</p><p>metodologias em toda a empresa para aproveitar aqueles e outros</p><p>benefícios, estar atento ao futuro e aproveitar as melhores abordagens que</p><p>tenham funcionado para a empresa e nos projetos bem-sucedidos;</p><p>● os impactos ágeis nas práticas de aquisição do governo podem ser</p><p>importantes: Reifer e Hastie (2017) destaca que o impacto das metodologias</p><p>ágeis não se limita às práticas de desenvolvimento. Quando ágil é usado em</p><p>contratos, os impactos quanto ao planejamento, tempo, orçamentos,</p><p>requisitos, gerenciamento, progresso e o desempenho geral podem obter</p><p>benefícios significativos, principalmente quando governo e os fornecedores</p><p>estabelecem um gerenciamento colaborativo.</p><p>Outras evidências são descritas por Reifer e Hastie (2017) em seus estudos,</p><p>porém estes não serão aqui tratados. As 12 evidências apresentadas neste</p><p>trabalho, com destaque para as 3 primeiras permitem elucidar o atual cenário da</p><p>aplicação de metodologias ágeis seja no desenvolvimento de software seja em toda</p><p>a organização.</p><p>4.4.4 VANTAGENS E DESVANTAGENS DAS METODOLOGIAS ÁGEIS</p><p>Este tópico apresenta as vantagens e desvantagens das metodologias ágeis</p><p>quanto ao desenvolvimento de software. Tomás (2009), em seu trabalho “Métodos</p><p>ágeis: características, pontos fortes e fracos e possibilidades de aplicação”</p><p>apresenta e analisa seus pontos fortes e fracos.</p><p>A empresa Outsystems em seu paper “Transitioning to Agile in an AgileWay -</p><p>Amplifying Traditional Approches with Agile Technology” (2009) e citado por Tomás</p><p>(2009) comparou as duas metodologias (ágil e tradicional em cascata) em relação</p><p>21</p><p>aos ganhos de valor para o cliente e stakeholders.</p><p>Gráfico 5 - Diagrama de comparação entre metodologias ágil e tradicional (em cascata)</p><p>quanto aos ganhos de valor para clientes/stakeholders</p><p>Pelo gráfico acima:</p><p>● (i) no período inicial, ágil entrega uma primeira versão que satisfaz requisitos</p><p>mínimos, enquanto a tradicional em cascata ainda está em evolução,</p><p>normalmente sem algo funcional para entregar ao cliente;</p><p>● (ii) em ágil, o produto/software está em produção de acordo com o valor que</p><p>o cliente pretende, com entregas ao longo do tempo de versões mais</p><p>adequadas; no tradicional em cascata, há uma longa planificação que atrasa</p><p>a entrega de algo visível e essa entrega inicial é que tem maior</p><p>correspondência com o que o cliente requisita, posteriormente os requisitos</p><p>tendem a mudar, a adaptação do produto a estas mudanças é difícil</p><p>(demorada, maiores custos etc.) implicando em certo retorno menor de valor</p><p>para os clientes/stakeholders.</p><p>Para o item (ii), um gráfico complementar da VersionOne (2004-2006) e que</p><p>apresenta uma realidade mais crível e menos tendenciosa é apresentado por</p><p>Tomás (2009). Neste gráfico, as metodologias partem de um mesmo ponto e</p><p>chegam ao mesmo resultado, mas com percursos diferentes, de tal maneira que os</p><p>resultados serem relativamente próximos.</p><p>22</p><p>Gráfico 6 - Proposta de valor em desenvolvimento ágil</p><p>Convém destacar que ao analisar sob esta perspectiva, pontos em comum e</p><p>resultados finais próximos, os caminhos seguidos pela equipe de desenvolvimento</p><p>de software, ao serem diferentes (ágil e tradicional), serão influenciados por vários</p><p>fatores no percurso que impactaram a visibilidade, adaptabilidade, valor de negócio</p><p>e risco e, por consequência, os resultados finais obtidos em tempo, custos e outras</p><p>variáveis com importantes diferentes.</p><p>Outra vantagem do ágil é o aumento do controle por parte dos gestores ,</p><p>pois se baseia no que está realmente em produção e no que será feito a curto prazo</p><p>(menor especulação, mais visibilidade, melhor adequação das medições e</p><p>avaliações do estado das funcionalidades e tarefas realizadas). Essa vantagem</p><p>promove aproximação entre desenvolvedores e gestores, maior e melhor</p><p>comunicação, potencializa a produtividade dos indivíduos.</p><p>Tomás (2009) destaca algumas desvantagens das metodologias ágeis:</p><p>● difícil escalabilidade: o ágil não foi desenhado para projetos muito longos e</p><p>com grandes times, por isso, metodologias híbridas são, por vezes,</p><p>requeridas como solução para este problema;</p><p>● menor controle de custos: tipicamente, no ágil o projeto termina quando o</p><p>cliente não requer mais funcionalidades relevantes que se deseja, em</p><p>oposição a ser acordado um preço e um plano. Assim custos e durações</p><p>podem variar e se tornam difíceis para gestão da organização.</p><p>23</p><p>4.4.5 METODOLOGIAS ÁGEIS E INOVAÇÃO</p><p>Metodologias ágeis também são aplicadas em empresas cujo o</p><p>desenvolvimento de software não seja a principal atividade ou, ainda, quando</p><p>sequer se trata de uma organização relacionada a área de tecnologia de</p><p>informação.</p><p>Denning (2015) em seu artigo “Agile: The World’s Most Popular Innovation</p><p>Engine” discorre faz uma análise sobre a inovação, os problemas e os desafios da</p><p>indústria quanto à inovação e algumas comparações com a atividade de</p><p>desenvolvimento de software.</p><p>Segundo Curtis Carlson (2006), citado em Denning (2015), “inovação é o</p><p>principal motor de prosperidade, crescimento do emprego, responsabilidade social,</p><p>sustentabilidade ambiental e segurança nacional.” Denning discorre que, em toda</p><p>economia, o desempenho inovador ainda é fraco: em um artigo dele em fevereiro de</p><p>2015, ele trata sobre uma pesquisa da MindMatters de 150 empresas com equipes</p><p>de inovação cujo tamanho variava entre menos de 100 até mais de 1000</p><p>funcionários em diferentes segmentos de indústrias. Essa pesquisa mostrou que</p><p>apenas 5% dos entrevistados disseram que a equipe de inovação se sente</p><p>altamente motivada para inovar e, apenas 6% acreditam que seus empregadores</p><p>consideram o desenvolvimento do capital intelectual como uma função de missão</p><p>crítica. Por fim, 75% dizem que suas novas ideias são mal analisadas ou</p><p>analisadas.</p><p>Por fim, Denning considera que um dos principais elementos para os</p><p>resultados ruins da imagem da inovação em toda economia é que não há um</p><p>conjunto de processos geralmente acordados para criar sistematicamente inovações</p><p>que gerem produtos e serviços melhores, mais baratos, mais rápidos, mais leves,</p><p>mais convenientes e mais personalizados para os clientes. Ao contrário, a inovação</p><p>geralmente prossegue de forma ad-hoc, em projetos com grandes perseguidos de</p><p>forma sequencial que raramente ocorrem como esperado.</p><p>5. RESULTADOS E DISCUSSÃO</p><p>Nesta seção, propõe-se uma análise discursiva sobre os dados, descrições e</p><p>gráficos apresentados nas seções anteriores com destaque para os tópicos que</p><p>tratam das evidências encontradas por Reifer e Hastie (2017) em suas pesquisas,</p><p>as quais agregaram bastante valor e informações para este artigo sobre</p><p>metodologias ágeis e a adoção delas em desenvolvimento de software.</p><p>As metodologias ágeis são predominantes no contexto atual das atividades</p><p>que envolvem o desenvolvimento de softwares. Dentre as existentes, o Scrum se</p><p>revela, a partir de dados quantitativos, a metodologia ágil mais empregada nas</p><p>organizações e/ou por equipes de desenvolvimento. Entretanto, o Scrum possui</p><p>suas limitações quando se considera os tamanhos de projeto e de equipe,</p><p>recomendando-se sua adoção para projetos de pequeno e médio escopo com</p><p>respectivas equipes pequenas e médias localizadas em um mesmo ambiente (ou</p><p>com maior proximidade possível). Essas características são importantes para que</p><p>24</p><p>os valores, princípios e valores possam fluir com maior qualidade e potencializar</p><p>benefícios quanto ao desenvolvimento de softwares (ou outras atividades que se</p><p>possa apropriar da metodologia).</p><p>A atual dinâmica para o desenvolvimento de software é fortemente</p><p>influenciado por fatores externos e, em outra medida, pelos internos também.</p><p>Softwares úteis, de boa qualidade e eficientes são traduzidos em competitividade,</p><p>eficiência e eficácia para as organizações que deles necessitam para suportar ou</p><p>executar muitas de suas tarefas. Competitividade significa, no atual contexto, estar a</p><p>frente da concorrência, acompanhar tendências, gerar / entregar valor aos clientes e</p><p>outras partes interessadas e, potencialmente, aumentos de lucratividade,</p><p>rentabilidade e retornos sobre investimentos.</p><p>Nos tópicos anteriores, é possível identificar evidências positivas quanto às</p><p>metodologias e quando a adoção delas: ganho de produtividade, redução de custos,</p><p>distribuição de esforços, aumento da capacidade para cumprimento de prazos,</p><p>potencializada aumento da qualidade, permite a geração de vantagens competitivas</p><p>e a adoção das metodologias em outras atividades pode se apresentar benéfica.</p><p>Essas evidências positivas, porém, não são consequências naturais ao se adotar o</p><p>ágil. Como qualquer metodologia, ágil também possui suas limitações e orientações</p><p>(como, quando, onde, por que) ao se adotar.</p><p>Os trabalhos relacionados neste artigo elucidam sobre as vantagens,</p><p>desvantagens e orientações sobre a adoção de metodologias ágeis. Não é só</p><p>adotar e os problemas de desenvolvimento de softwares estarão solucionados. As</p><p>própria metodologias ágeis estão sujeitas a erros e outros efeitos colaterais e</p><p>compreender isso faz toda diferença. Os variados contextos, as diferentes partes</p><p>interessadas, as possíveis limitações e outros desafios são fatores que sempre</p><p>afetarão a qualidade final de um software e, as metodologias ágeis (bem como as</p><p>tradicionais) não foram desenvolvidas para solucioná-los, mas sim para prover</p><p>orientações e caminhos para agir. Pode-se destacar dois desafios que as</p><p>metodologias ágeis ainda não consegue tratar facilmente: escalabilidade e</p><p>controle de custos.</p><p>Por fim, é relevante destacar que, ao se aplicar e adotar metodologias ágeis</p><p>seja no desenvolvimento de software ou em outras atividades nas quais elas</p><p>possam gerar</p><p>benefícios, identificar os contextos em que os projetos e as equipes</p><p>de desenvolvimento estão / serão inseridos é pertinente para que se minimizem</p><p>erros, falhas, defeitos e outros efeitos colaterais nas atividades que serão</p><p>suportadas pelo ágil ou pelo tradicional. Dois focos importantes podem nortear nas</p><p>decisões: qualidade final para o software e agregar / gerar valor para o cliente</p><p>(e, por consequência, para a pessoa, equipe ou organização responsáveis pelo</p><p>desenvolvimento do software).</p><p>6. CONCLUSÃO</p><p>O desenvolvimento de software é uma atividade com grande importância na</p><p>economia de informação devido ao uso cada vez mais constante de softwares para</p><p>o apoio e/ou a execução de diversas atividades em diversas áreas (indústria,</p><p>comércio, serviços etc.) e segmentos (saúde, entretenimento, lazer, finanças,</p><p>25</p><p>economia, educação etc.).</p><p>Este artigo se propôs a apresentar as principais metodologias ágeis, suas</p><p>vantagens e desvantagens, sem se ater especificamente a uma ou outra. Contextos,</p><p>análises e evidências foram apresentados para contextualizar as metodologias</p><p>ágeis quanto à engenharia de software, pois elas foram desenvolvidas com a</p><p>finalidade de fornecer orientações, princípios e valores para a complexidade cada</p><p>vez maior quanto ao desenvolvimento de softwares.</p><p>Pesquisas recentes, especialmente de Reifer e Hastie (2017) por sua</p><p>atualidade e análise profunda a partir de diferentes fontes de dados, caracterizam</p><p>com boa referência e claridade o cenário atual de implantação, desenvolvimento e</p><p>desafios quanto às metodologias ágeis, permitindo projetar um futuro quanto estas</p><p>abordagens e a área de engenharia de software que, é importante considerar, não</p><p>pode ser estudada e compreendida isoladamente. Tecnologias emergentes</p><p>(aprendizagem de máquina, inteligência artificial, internet das coisas etc.) gerarão</p><p>impactos sobre a engenharia software e consequentemente em assuntos que</p><p>tangenciam esta área.</p><p>Apesar de um foco maior em metodologias ágeis, não se pode desmerecer</p><p>as contribuições que as metodologias tradicionais conceberam e foram úteis para o</p><p>desenvolvimento do ágil. Ainda, em algumas situações, é preferível adoção de</p><p>abordagens tradicionais ou, alternativamente, metodologias híbridas que se utilizam</p><p>de princípios, valores, ferramentas e outros subsídios advindos das tradicionais e/ou</p><p>ágeis. Além disso, metodologias ágeis estão em implementação em outros setores</p><p>relacionados ou nada relacionados com o desenvolvimento de software, focalizando</p><p>assim os conceitos, princípios e valores de inovação.</p><p>O artigo também dá referências e indicativos de quão importante é considerar</p><p>o contexto da aplicação, as partes interessadas, o ambiente da organização, o</p><p>histórico de projetos, as características (técnicas e relacionais) da equipe de</p><p>desenvolvimento, os processos da empresa, as ferramentas de suporte e vários</p><p>outros fatores para que, ao se adotar o ágil, não seja feito somente por</p><p>conveniências, modismos ou outros interesses que, mais a frente, poderão minar ou</p><p>reduzir a qualidade dos projetos e os resultados finais. Gerar valor ao cliente com</p><p>um projeto de qualidade é competitivamente importante, mas antes de se alcançar</p><p>isso, o caminho que as organizações e as equipes precisam seguir exige esforços</p><p>de vários atores.</p><p>7. BIBLIOGRAFIA CITADA</p><p>Agile Manifesto, Disponível em http://agilemanifesto.org/</p><p>BOEHM, B. Spiral Development: Experience, Principles and Refinements. Spiral</p><p>Development Workshop, 2000.</p><p>DENNING, Steve. “Agile: The World’s Most Popular Innovation Engine”. Forbes.</p><p>26</p><p>http://agilemanifesto.org/</p><p>http://agilemanifesto.org/</p><p>Acessado 18 de novembro de 2017.</p><p>https://www.forbes.com/sites/stevedenning/2015/07/23/the-worlds-most-popular-inno</p><p>vation-engine/.</p><p>DINGSOYR, Torgeir, Sridhar Nerur, VenuGopal Balijepally, e Nils Brede Moe. “A</p><p>Decade of Agile Methodologies: Towards Explaining Agile Software Development”.</p><p>Journal of Systems and Software 85, n o 6 (junho de 2012): 1213–21.</p><p>https://doi.org/10.1016/j.jss.2012.02.033.</p><p>MACRO, A. Software Engineering – Concepts and Managements. Prentice Hall,</p><p>1990.</p><p>PETERS, J. F., PEDRYCZ, W. Engenharia de Software, Teoria e Prática, Brasil,</p><p>Editora Campus, 2001.</p><p>PRESSMAN, R. S. Engenharia de Software. Makron Books, 1995. Cap. 1, 7, 8 e 12,</p><p>1995.</p><p>PRIKLADNICKI, Rafael. “, Desafios e Abordagens do Processo de Desenvolvimento</p><p>de Software” Curso de Mestrado, Trabalho Individual I - 13 de fevereiro de 2004.</p><p>Disponível em: < http://www.inf.pucrs.br/munddos/docs/TI1.pdf > Acesso em</p><p>outubro-novembro / 2017.</p><p>REIFER, Donald J., Shane Hastie. “Quantitative Analysis of Agile Methods Study</p><p>(2017): Twelve Major Findings”. InfoQ. Acessado 18 de novembro de 2017.</p><p>https://www.infoq.com/articles/reifer-agile-study-2017 .</p><p>SOARES, Michel dos Santos, Comparação entre Metodologias Ágeis e Tradicionais</p><p>para o Desenvolvimento de Software. Unipac - Universidade Presidente Antônio</p><p>Carlos, Faculdade de Tecnologia e Ciências de Conselheiro Lafaiete</p><p>Software Engineering. A Practitioner’s Approach. Fifth Edit, 2001.</p><p>STEFFEN, Juliana B. “O que são essas tais de metodologias Ágeis ?”. Blog da IBM</p><p>- 23 de janeiro 2012. Disponível em:</p><p><https://www.ibm.com/developerworks/community/blogs/rationalbrasil/entry/mas_o_</p><p>que_s_c3_a3o_essas_tais_de_metodologias__c3_a1geis?lang=en > Acesso em</p><p>27</p><p>http://www.inf.pucrs.br/munddos/docs/TI1.pdf</p><p>https://www.infoq.com/articles/reifer-agile-study-2017</p><p>https://www.infoq.com/articles/reifer-agile-study-2017</p><p>https://www.ibm.com/developerworks/community/blogs/rationalbrasil/entry/mas_o_que_s_c3_a3o_essas_tais_de_metodologias__c3_a1geis?lang=en</p><p>https://www.ibm.com/developerworks/community/blogs/rationalbrasil/entry/mas_o_que_s_c3_a3o_essas_tais_de_metodologias__c3_a1geis?lang=en</p><p>outubro-novembro / 2017</p><p>28</p>benefícios, identificar os contextos em que os projetos e as equipes de desenvolvimento estão / serão inseridos é pertinente para que se minimizem erros, falhas, defeitos e outros efeitos colaterais nas atividades que serão suportadas pelo ágil ou pelo tradicional. Dois focos importantes podem nortear nas decisões: qualidade final para o software e agregar / gerar valor para o cliente (e, por consequência, para a pessoa, equipe ou organização responsáveis pelo desenvolvimento do software). 6. CONCLUSÃO O desenvolvimento de software é uma atividade com grande importância na economia de informação devido ao uso cada vez mais constante de softwares para o apoio e/ou a execução de diversas atividades em diversas áreas (indústria, comércio, serviços etc.) e segmentos (saúde, entretenimento, lazer, finanças, 25 economia, educação etc.). Este artigo se propôs a apresentar as principais metodologias ágeis, suas vantagens e desvantagens, sem se ater especificamente a uma ou outra. Contextos, análises e evidências foram apresentados para contextualizar as metodologias ágeis quanto à engenharia de software, pois elas foram desenvolvidas com a finalidade de fornecer orientações, princípios e valores para a complexidade cada vez maior quanto ao desenvolvimento de softwares. Pesquisas recentes, especialmente de Reifer e Hastie (2017) por sua atualidade e análise profunda a partir de diferentes fontes de dados, caracterizam com boa referência e claridade o cenário atual de implantação, desenvolvimento e desafios quanto às metodologias ágeis, permitindo projetar um futuro quanto estas abordagens e a área de engenharia de software que, é importante considerar, não pode ser estudada e compreendida isoladamente. Tecnologias emergentes (aprendizagem de máquina, inteligência artificial, internet das coisas etc.) gerarão impactos sobre a engenharia software e consequentemente em assuntos que tangenciam esta área. Apesar de um foco maior em metodologias ágeis, não se pode desmerecer as contribuições que as metodologias tradicionais conceberam e foram úteis para o desenvolvimento do ágil. Ainda, em algumas situações, é preferível adoção de abordagens tradicionais ou, alternativamente, metodologias híbridas que se utilizam de princípios, valores, ferramentas e outros subsídios advindos das tradicionais e/ou ágeis. Além disso, metodologias ágeis estão em implementação em outros setores relacionados ou nada relacionados com o desenvolvimento de software, focalizando assim os conceitos, princípios e valores de inovação. O artigo também dá referências e indicativos de quão importante é considerar o contexto da aplicação, as partes interessadas, o ambiente da organização, o histórico de projetos, as características (técnicas e relacionais) da equipe de desenvolvimento, os processos da empresa, as ferramentas de suporte e vários outros fatores para que, ao se adotar o ágil, não seja feito somente por conveniências, modismos ou outros interesses que, mais a frente, poderão minar ou reduzir a qualidade dos projetos e os resultados finais. Gerar valor ao cliente com um projeto de qualidade é competitivamente importante, mas antes de se alcançar isso, o caminho que as organizações e as equipes precisam seguir exige esforços de vários atores. 7. BIBLIOGRAFIA CITADA Agile Manifesto, Disponível em http://agilemanifesto.org/ BOEHM, B. Spiral Development: Experience, Principles and Refinements. Spiral Development Workshop, 2000. DENNING, Steve. “Agile: The World’s Most Popular Innovation Engine”. Forbes. 26 http://agilemanifesto.org/ http://agilemanifesto.org/ Acessado 18 de novembro de 2017. https://www.forbes.com/sites/stevedenning/2015/07/23/the-worlds-most-popular-inno vation-engine/. DINGSOYR, Torgeir, Sridhar Nerur, VenuGopal Balijepally, e Nils Brede Moe. “A Decade of Agile Methodologies: Towards Explaining Agile Software Development”. Journal of Systems and Software 85, n o 6 (junho de 2012): 1213–21. https://doi.org/10.1016/j.jss.2012.02.033. MACRO, A. Software Engineering – Concepts and Managements. Prentice Hall, 1990. PETERS, J. F., PEDRYCZ, W. Engenharia de Software, Teoria e Prática, Brasil, Editora Campus, 2001. PRESSMAN, R. S. Engenharia de Software. Makron Books, 1995. Cap. 1, 7, 8 e 12, 1995. PRIKLADNICKI, Rafael. “, Desafios e Abordagens do Processo de Desenvolvimento de Software” Curso de Mestrado, Trabalho Individual I - 13 de fevereiro de 2004. Disponível em: < http://www.inf.pucrs.br/munddos/docs/TI1.pdf > Acesso em outubro-novembro / 2017. REIFER, Donald J., Shane Hastie. “Quantitative Analysis of Agile Methods Study (2017): Twelve Major Findings”. InfoQ. Acessado 18 de novembro de 2017. https://www.infoq.com/articles/reifer-agile-study-2017 . SOARES, Michel dos Santos, Comparação entre Metodologias Ágeis e Tradicionais para o Desenvolvimento de Software. Unipac - Universidade Presidente Antônio Carlos, Faculdade de Tecnologia e Ciências de Conselheiro Lafaiete Software Engineering. A Practitioner’s Approach. Fifth Edit, 2001. STEFFEN, Juliana B. “O que são essas tais de metodologias Ágeis ?”. Blog da IBM - 23 de janeiro 2012. Disponível em: <https://www.ibm.com/developerworks/community/blogs/rationalbrasil/entry/mas_o_ que_s_c3_a3o_essas_tais_de_metodologias__c3_a1geis?lang=en > Acesso em 27 http://www.inf.pucrs.br/munddos/docs/TI1.pdf https://www.infoq.com/articles/reifer-agile-study-2017 https://www.infoq.com/articles/reifer-agile-study-2017 https://www.ibm.com/developerworks/community/blogs/rationalbrasil/entry/mas_o_que_s_c3_a3o_essas_tais_de_metodologias__c3_a1geis?lang=en https://www.ibm.com/developerworks/community/blogs/rationalbrasil/entry/mas_o_que_s_c3_a3o_essas_tais_de_metodologias__c3_a1geis?lang=en outubro-novembro / 2017 28