desenvolvimento_agil

Metodologias de Desenvolvimento de Software na atualidade

Com o dinamismo dos projetos de Software na Atualidade, a escolha de uma metodologia de desenvolvimento de software adequada se torna imprecindível

Em continuidade a série de posts sobre Arquitetura de Software e o fenômeno dos aplicativos para dispositivos móveis. Vamos falar hoje sobre metodologia de Desenvolvimento de Software para projetos da atualidade, onde com os grandes desafios das empresas no âmbito de competitividade através dos benefícios da tecnologia, surgem uma série de iniciativas demandadas por diversos departamentos que buscam automatizar processos, obter e gerir informações estratégicas e de mercado. Para essas iniciativas, muitos projetos de tecnologia acabam por surgir visando suportar e viabilizar esses projetos. Nesse momento a gestão desses projetos alinhada com a expectativa da área de negócios é fundamental.

"Time to Market" é um termo muito utilizado para descrever essas necessidades de se agilizar cada vez mais os projetos de tecnologia. Consiste no tempo gasto que um projeto ou produto leva para ser entendido, concebido e entregue ao "mercado", dado que estamos falando de concorrência, uma vez que quanto antes esses projetos forem viabilizados e entregues, mais rápido esse projeto e ou produto trará benefícios e ou servirá para coletar feedbacks para projetos futuros.

A vantagem de se entregar projetos de forma rápida é que o foco se concentra no que realmente é necessário e principalmente depois de entregue em caso de um nicho de mercado novo, pode representar uma exclusividade de mercado. Sua empresa pode ser considerada a única a ter determinado produto, serviço no mercado e com isso vem a exclusividade de menor concorrência, alem de inúmeros benefícios organizacionais e estratégicos.

Com esse cenário, viabilizar projetos de tecnologia de forma rápida e eficiente, não deixando de lado a qualidade mas sim potencializando os esforços no que é necessário, escolher corretamente uma metodologia de gestão e desenvolvimento desses projetos é imprescindível.

O modelo de Desenvolvimento de Software tradicional RUP traz vantagens como maior controle e foco na qualidade das funcionalidades no ambito de artefatos e componentes, documentação e SLAs, e por outro lado traz maior tempo de trabalho e maiores prazos  de entrega é uma necessidade.

O modelo de Desenvolvimento de Software ágil traz vantagens como maior controle das atividades que são na verdade funcionalidades bem definidas que possuem um nível de entendimento claro o suficiente para que ela seja realizada com agilidade, potencializando a entrega de mais código e menos documentação.

Vamos entender melhor cada modelo de Desenvolvimento de Software de forma a entender o motivo pelo qual grandes empresas estão migrando para o modelo ágil de desenvolvimento.

 

 

RUP: o modelo tradicional de desenvolvimento de software

A Rational é bem conhecida pelo seu investimento em orientação em objetos. A empresa foi a criadora da Unified Modeling Language (UML), assim como de várias ferramentas que a suportam, sendo a mais conhecida o Rational Rose. O Rational Unified Process (RUP) é uma metodologia completa criada pela Rational para viabilizar que grandes projetos de software sejam bem sucedidos.

Um grande problema nos projetos atuais é o grande dinamismo e complexidade dos negócios nos dias de hoje. Cada vez mais os sistemas são complexos e precisam estar prontos em menos tempo. Mais do que isso, as necessidades mudam ao longo do tempo e a especificação de um sistema provavelmente será alterada durante seu desenvolvimento. Além disso, temos tecnologias novas (software e hardware) surgindo a cada dia. Algumas funcionam bem. Outras não. Visando atacar estes problemas, o RUP adota as seguintes premissas básicas:

  • Uso de iterações para evitar o impacto de mudanças no projeto,
  • Gerenciamento de mudanças
  • Abordagens dos pontos de maior risco o mais cedo possível.
Desenvolvimento de Software
Ciclo de Desenvolvimento de Software tradicional com RUP

O RUP como metodologia de desenvolvimento para projetos em que o tempo de mercado é importante, em empresas onde o modelo de processo segue muitas etapas e workflows pode ser uma desvantagem, uma vez que muitos desses processos e workflows não permitem abrir mão de alguns artefatos de projeto que são gerados ao longo do desenvolvimento, isso é favorável ao controle, rastreabilidade e a maturidade do proprio processo, mas é uma desvantagem por gastar mais tempo na geraçao desses artefatos como documentaçao UML, etc.

E importante analisar os requisitos de software e ter em mente que para projetos experimentais os chamados MVPs é comum empresas de desenvolvimento indicarem a metodologia ágil que é amplamente utilizada e cada vez mais vem sendo adotadas nas empresas não somente na área de TI mas em diversas outras áreas.

Ágil: O modelo moderno de desenvolvimento de software

Nesse momento, vamos falar do Framework SCRUM! Como ferramenta de gestão de projetos e desenvolvimento ágil.

A metodologia ágil de desenvolvimento através do manifesto ágil busca descobrir e criar novas formas de desenvolver os projetos visando promover essa agilidade através dos seguintes fatores:

  • Interação entre os integrantes do projeto,
  • Pratica de desenvolvimento de funcionalidades do software e menos documentação abrangente
  • Mais colaboração com o cliente do que negociações de contratos
  • Responder as mudanças mais que seguir um plano
metodologias-agiles-index
Ciclo de Desenvolvimento de Software Ágil com SCRUM

Olhando para o cenário de requisitos de projeto descrito acima, o modelo ágil pode ser uma vantagem em relação ao modelo RUP, uma vez que a empresa precisa de uma resposta rápida no tempo de desenvolvimento e lançamento do aplicativo e inicialmente contem um conjunto de funcionalidades que é reduzido e será expandido no futuro. Ainda assim o modelo ágil não abre mão de documentação e sim promove uma documentação simplificada e minimamente suficiente para identificação de componentes, funcionalidades, casos de teste e uso, etc. O ponto central do modelo ágil com SCRUM é agregar valor ao negócio do cliente através de entregas mais rápidas e centradas nas funcionalidades mesmo que documentação, gestão de contratos e planos de ação tenham sua importância.

Agilidade nas entregas é a aposta das grandes empresas

Uma vez que os projetos são cada vez mais dinâmicos e precisam de "jogo de cintura" para absorver mudanças rapidamente, sem perder o foco do objetivo do projeto e potencializar os esforços de forma a estar sempre entregando cada vez mais e em cada vez menos tempo, o modelo ágil de desenvolvimento é uma aposta cada vez mais efetiva das empresas.

A empresa não quer ter que esperar 6 meses de projeto para conseguir lançar o produto e somente depois de tanto tempo analisar sua eficiência e qualidade, e ainda esperar tanto tempo para coletar o feedback do mercado ou setor, com relação a aceitação do produto entregue, produto que no caso é o próprio software, ou seja, somente depois de concebido em sua totalidade se deparar com funcionalidades em desacordo com o especificado, o famosos bugs e ainda no fim descobrir que não compensou investir tanto na solução.

scrumciclo
Ciclo do SCRUM

O modelo ágil focado na entrega das funcionalidades, mesmo que no primeiro momento não esteja 100% completo na sua totalidade de produto, permite que mediante a entrega dessa funcionalidade a área já faça um avaliação prévia e com isso já antecipe correções e melhorias (feedback), e ainda possa utilizar a funcionalidade de forma a obter algum benefício já naquele momento.  

Profissionais com habilidade em gestão de projetos ágeis, bem como desenvolvedores e analistas de tecnologia são muito bem empregados por essas empresas na atualidade e essa demanda de profissionais vai crescer ainda mais.

Caso queira ser um profissional qualificado para esse cenário, considere fazer cursos como SCRUM, Gestão ágil de projetos.

E você que tipo de metodologia prefere? Vamos continuar conversando? Deixe um comentário!

 

Deixe um comentário