tecnologias de informação e comunicação. O mundo globalizado está cada vez mais interligado, as pessoas têm facilidade de acessar informações e de se comunicar a distância. Como a informação e a comunicação estão cada vez mais céleres, é imprescindível para as organizações agilizarem seus processos de produção, ao mesmo tempo que aprimoram a qualidade de seus serviços/produtos. Mas tanto a informação quanto a comunicação de alta performance necessitam de transmissores e receptores cada vez mais eficientes e eficazes. Hoje, hardwares e softwares são esses meios que permitem o tráfego ligeiro de dados e informações. Qualquer pessoa pode dispor das informações que precisa, bem como se comunicar com quem deseja, através de desktops, tablets e smartphones. Na indústria, possuir sistemas de informações estáveis e funcionais garantem a qualidade de comunicação e de abastecimento de informações entre os colaboradores, proporcionando eficiência na produção. Então, tanto para os consumidores quanto para as organizações, dispor de softwares de qualidade significa possuir informações e meios de comunicações de qualidade. Porém, a indústria de softwares ainda não domina uma receita eficiente de produção de programas. No início, atuavam com metodologias bastante burocráticas, como o modelo de produção em cascata, que nem sempre garantiam prazos, resultados e/ou a qualidade do produto final. Atualmente, a indústria de softwares está se adequando as metodologias ágeis, pois como supracitado, a informação e a comunicação atuais devem ser transmitidas e recebidas com velocidade, precisão e exatidão. Portanto, produzir um software de qualidade em curto espaço de tempo é a atual meta da indústria de software. Citado a premissa, este presente trabalho de conclusão de disciplina visa comparar os prós e os contras que as atuais metodologias empregadas pelo mercado possuem, além de apontar as tendências futuras para o Pós-Metodologias Ágeis.
Na década de 1980 e início da de 1990, havia uma visão
generalizada de que a melhor maneira para conseguir o melhor software era por meio de um planejamento cuidadoso do projeto, qualidade da segurança formalizada, do uso de métodos de análise e projeto apoiado por ferramentas CASE (Computer-aided software engineering) e do processo de desenvolvimento de software rigoroso e controlado. Essa percepção veio da comunidade de engenharia de software, responsável pelo desenvolvimento de sistemas de software grandes e duradouros, como sistemas aeroespaciais e de governo. (SOMMERVILLE, Ivan. Engenharia de Software 9ª Edição, 2011, p. 39)
Antes, acreditava-se que o planejamento burocrático era a forma
ideal para se desenvolver um software. Contudo, “apesar dos esforços para definir processos e métodos cada vez mais burocráticos e rigorosos, a 'crise do software' não foi totalmente resolvida.” (SATO, 2007, p.2). Isto é, mesmo seguindo planejamentos severos, os softwares desenvolvidos ainda apresentavam variáveis, que afetavam o projeto desde a sua produção até a sua validação. Ainda, de acordo SATO, “a indústria de software cresceu e, com o surgimento da Internet, transformou-se em uma das indústrias mais importantes do mundo. […] mudaram também as abordagens para desenvolvimento de software.” (2007, p. 2). Para resolver as variáveis que afetavam o desenvolvimento de softwares, cujas metodologias tradicionais não pareciam sanar totalmente e, acompanhar as transformações e demandas advindas da evolução da Internet e do mercado, foram concebidos os métodos ágeis de desenvolvimento de software.
A filosofia por trás dos métodos ágeis é refletida no
manifesto ágil, que foi acordado por muitos dos principais desenvolvedores desses métodos. Esse manifesto afirma: Estamos descobrindo melhores maneiras de desenvolver softwares, fazendo-o e ajudando outros a fazê-lo. Através desse trabalho, valorizamos mais: _____________
¹CIO é a sigla para Chief Information Officer
² Disponível em: < http://cio.com.br/tecnologia/2015/10/15/devops-um-mergulho-nos-detalhes/> Acesso em: 06/05/2017 Indivíduos e interações do que processos e ferramentas Software em funcionamento do que documentação abrangente Colaboração do cliente do que negociação de contrato Respostas a mudanças do que seguir um plano Ou seja, embora itens à direita sejam importantes, valorizamos mais os que estão à esquerda. (SOMMERVILLE, Ivan. Engenharia de Software 9ª Edição, 2011, p. 39)
Os Métodos Ágeis Substituem os Métodos Tradicionais?
Os métodos ágeis se propõem a resolverem as variáveis que
ocorrem nos processos das abordagens tradicionais. São focados mais no dinamismo e na comunicação que compõem os processos que em seus planejamentos iniciais e documentações.
Processos orientados a documentação para o
desenvolvimento de software são, de certa forma, fatores limitadores aos desenvolvedores e muitas organizações não possuem recursos ou inclinação para processos pesados de produção de software. Por esta razão, as organizações pequenas acabam por não usar nenhum processo. Isto pode levar a efeitos desastrosos na qualidade do produto final, além de dificultar a entrega do software nos prazos e custos predefinidos. (SOARES, Michel dos Santos. Comparação entre Metodologias Ágeis e Tradicionais para o Desenvolvimento de Software, 2004, p. 1)
Segundo SOMMERVILLE, “o sucesso dos métodos ágeis indica que
há um grande interesse em usar esses métodos para outros tipos de desenvolvimento de software.” (2011, p. 41). Contudo, o mesmo autor ressalta que “[…] devido a seu foco em pequenas equipes bem integradas, existem problemas em escalá-los para grandes sistemas.” (2011, p.41). Então, seriam os métodos ágeis funcionais apenas para os pequenos e médios projetos?
Por mais que seja interessante trabalhar com
metodologias ágeis, é necessário entender que existem projetos que funcionam melhor com esse método, enquanto outros precisam do planejamento completo e das previsões da metodologia tradicional. (MARÇAL, Angélika. Metodologias Tradicionais X Metodologias Ágeis, 2016)
_____________
¹CIO é a sigla para Chief Information Officer
² Disponível em: < http://cio.com.br/tecnologia/2015/10/15/devops-um-mergulho-nos-detalhes/> Acesso em: 06/05/2017 Ainda, seriam os métodos ágeis adequados para a manutenção de softwares? Afinal, parte dos esforços também é dirigido para a manutenção de softwares, não apenas para o desenvolvimento de novos projetos. De acordo SOMMERVILLE, sobre as práticas ágeis, “[…] usadas no processo de manutenção em si, provavelmente são mais eficazes, [...]. Entrega incremental, projeto para mudanças e manutenção da simplicidade — tudo isso faz sentido quando o software está sendo alterado.” (2011, p. 42). Ainda, podemos salientar o seguinte:
As metodologias pesadas devem ser aplicadas apenas
em situações em que os requisitos do software são estáveis e requisitos futuros são previsíveis. Estas situações são difíceis de serem atingidas, uma vez que os requisitos para o desenvolvimento de um software são mutáveis. Dentre os fatores responsáveis por alterações nos requisitos estão a dinâmica das organizações, as alterações nas leis e as mudanças pedidas pelos stakeholders, que geralmente têm dificuldades em definir o escopo do futuro software. (SOARES, Michel dos Santos. Comparação entre Metodologias Ágeis e Tradicionais para o Desenvolvimento de Software, 2004, p. 6)
A Opção DevOps
O movimento DevOps vem ganhando visibilidade no
mundo corporativo promovendo a integração e colaboração entre as áreas de desenvolvimento, operação e negócio, dando origem às organizações de alto desempenho, que estão colocando software em produção com frequência 30 vezes maior e com índice de falhas 50% menor do que a média do mercado. (SETE, Márcio. DevOps e a Teoria da Verticalidade, 2015)
Métodos como o Scrum e XP já podem estar com os seus dias
contados. Uma das mais novas opções do mercado, o DevOps, está se tornado a tendência para o futuro do desenvolvimento de softwares. De acordo Taurions “[...] nenhum CIO¹ discorda que velocidade, agilidade e inovação são pilares básicos da sobrevivência dos negócios na sociedade digital. (2015). Mas DevOps é apenas isso: velocidade, agilidade e inovação? Segundo o artigo do sítio CIO From IDG, DevOps é “[...] colocar os times de desenvolvimento e operações trabalhando juntos, sob uma mesma cultura, práticas, ferramentas e linguagens.”²
SOMMERVILLE, Ivan. Engenharia de Software 9ª Edição, São Paulo, 2011.
SOARES, Michel dos Santos. Comparação entre Metodologias Ágeis e
Tradicionais para o Desenvolvimento de Software, 2004. Artigo disponível em: <http://www.dcc.ufla.br/infocomp/index.php/INFOCOMP/article/view/68>. Acesso em 09/04/2017.
SATO, Danilo Toshiaki. Uso Eficaz de Métricas em Métodos Ágeis de
Desenvolvimento de Software, São Paulo, 2007. Artigo disponível em: <http://grenoble.ime.usp.br/~gold/orientados/dissertacao-DaniloSato.pdf>. Acesso em 09/04/2017.
MARÇAL, Angélika. Metodologias Tradicionais X Metodologias Ágeis, 2016.
Artigo disponível em: <https://hinc.com.br/metodologia-tradicionais-x- metodologias-ageis/>. Acesso em 09/04/2017.
SETE, Márcio. DevOps e a Teoria da Verticalidade, 2015. Artigo disponível em:
< http://cio.com.br/tecnologia/2015/03/12/devops-e-a-teoria-da-verticalidade/>. Acesso em 06/05/2017.