Soluções em Desenvolvimento de Sistemas

  • Português
  • English
  • Facebook
  • Twitter
  • LinkedIn
  • Google+
  • RSS
  • Skype

contato@softerize.com.br

  • Início
  • Serviços
    • Análise de Sistemas
    • Desenvolvimento de Sistemas
    • Suporte a Sistemas
  • Soluções
    • Help Desk
  • Projetos
  • Sobre
    • História
    • Blog
  • Contato

Metodologias de Desenvolvimento

Publicado:
03/06/2014

Tags:
extreme programming, kanban, metodologias, métodos ágeis, scrum, unified process, waterfall

Comments: 0

Metodologias de Desenvolvimento

Neste artigo vamos descrever o que são metodologias de desenvolvimento. O objetivo é informar pessoas que estejam iniciando na área ou clientes buscando entender mais um pouco como funciona um projeto de desenvolvimento de sistemas. Vamos começar falando sobre as metodologias tradicionais, para depois abordar os métodos ágeis. Para encerrar um pequeno comparativo entre diferentes técnicas.

Metodologias de desenvolvimento são uma série de técnicas aplicadas durante um projeto de desenvolvimento de software com o objetivo de auxiliar na realização do projeto. Devido a natureza complexa da tarefa, a ausência de uma metodologia pode transformar um projeto de software em um verdadeiro caos. No início se utilizavam o que chamamos hoje de metodologias tradicionais, mais burocráticas e sequenciais, a  exemplo do que era feito na engenharia. Com o tempo começaram a ganhar espaço as metodologias ágeis, voltadas para projetos mais dinâmicos, melhorando a resposta a mudanças durante o projeto.

Metodologias Tradicionais

Quando a computação surgiu, os programas desenvolvidos eram criados para resolver problemas pontuais, como ler informações do disco ou realizar cálculos matemáticos. Com o crescimento da tecnologia, surgimento de sistemas operacionais e sistemas corporativos, criou-se a necessidade de gerenciar estes grandes projetos. As metodologias tradicionais de desenvolvimento apareceram como uma resposta a essa necessidade.

Na criação destas metodologias, os projetos de engenharia foram utilizados como referência. Portanto as metodologias tradicionais seguem o paradigma de coletar requisitos, desenhar, construir e dar manutenção. Sequencialmente. Por isso a primeira metodologia utilizada foi a metodologia em cascata, ou waterfall. Devido a óbvia limitação com relação a mudanças nos requisitos, logo surgiram as metodologias Unified Process (processo unificado) e Espiral.

A metodologia de processo unificado agregava diversas técnicas de construção de software, utilizando diagramas UML. Nesta metodologia, as fases não eram finalizadas antes do início da próxima fase. As fases eram sobrepostas umas as outras, permitindo com que alterações ocorressem durante o projeto. Já a metodologia em espiral era semelhante a metodologia em cascata. Mas uma vez finalizado o desenvolvimento, voltava-se para o início para que novas funcionalidades fossem agregadas ao projeto.

Ciclo do processo unificado

Ciclo do processo unificado

Métodos Ágeis

Com a disseminação da computação e a utilização de sistemas para diversas atividades, surgiu a necessidade e tornar o processo de criação de softwares mais dinâmico. O momento chave para a criação dos chamados métodos ágeis foi a criação do Manifesto para Desenvolvimento Ágil de Software, em 2001. A partir do manifesto a ideia de que um software de qualidade e, principalmente, a satisfação do cliente só seriam atingidos com metodologias mais ágeis e menos restritivas ganhou força. Diversas técnicas surgiram, entre elas a programação extrema, o Scrum e o Kanban.

A programação extrema, ou eXtreme Programming (XP), é o oposto aos longos ciclos de desenvolvimento das metodologias tradicionais. O processo XP é caracterizado por ciclos de desenvolvimento curtos, planejamento incremental, feedback e revisões contínuas, além de um design em constante evolução. Com essas características, os desenvolvedores conseguem responder as mudanças com muito mais qualidade. Entre outras técnicas a XP introduziu a técnica de programação em pares, onde dois programadores trabalham em apenas um computador), a técnica de refatoração (melhorias no código, mesmo que ele esteja funcionando) e a simplificação do design (colocando a enfase no design da solução mais simples para resolver o problema).

O Scrum é um dos métodos ágeis mais conhecidos e utilizados. Ele é um processo iterativo e incremental de desenvolvimento de software. As atividades a serem desenvolvidas no projeto ficam alocadas em um conjunto chamado backlog – nesse caso o backlog do produto. O trabalho é dividido em iterações chamadas sprints. As tarefas que serão executadas em um determinado sprint são definidas em uma reunião de planejamento, sendo movidas do backlog do produto para o backlog do sprint. O Scrum também define reuniões diárias, de apenas 15 minutos, onde todos devem relatar o andamento e se possuem alguma dificuldade que pode bloquear o processo.

Processo Scrum

Processo Scrum

Outra metodologia ágil bastante utilizada é o Kanban. Originalmente criado para a indústria, o Kanban se baseia em três princípios básicos: visibilidade do que deve ser feito, limite do trabalho em execução e fluxo de trabalho melhorado. Um quadro com as tarefas é utilizado para dar a visibilidade e controlar o andamento das tarefas. Pelo dinamismo do Kanban, ele é apropriado para projetos onde as prioridades são constantemente alteradas.

Conclusão

Quando comparamos as metodologias tradicionais e ágeis, vemos nas metodologias processos mais fixos, com documentação detalhada e pouca flexibilidade para atender as mudanças. Justamente neste ponto surgiram os métodos ágeis, criados pensando nas mudanças. Os métodos ágeis são orientados as pessoas, fazem com que o planejamento seja balanceado com flexibilidade, além de focarem na simplicidade e na colaboração.

O mais importante de todas essas técnicas, tradicionais ou ágeis, é que elas não excluem umas as outras. Uma equipe de software só vai ter um desempenho ótimo, quando as pessoas envolvidas entenderem e concordarem com o modo de trabalho. Pode-se por exemplo utilizar um visão mais tradicional no momento da venda de um sistema, apresentando uma documentação mais completa para que o cliente tenha uma ideia completa da proposta. Mas durante o desenvolvimento pode-se utilizar técnicas do Scrum e do Kanban para garantir a adaptabilidade do processo. Deste modo, caso surjam ideias durante o processo, elas podem ser apresentadas para o cliente e incluídas no processo.

Referências

Se você quer saber mais sobre metodologias de desenvolvimento pode dar uma olhada nos sites e artigos abaixo. Você encontrará muita informação no Google também.

Artigos:

  • “Comparative Study on Agile software development methodologies” – http://arxiv.org/ftp/arxiv/papers/1307/1307.3356.pdf (inglês)
  • “Software Development Life Cycle AGILE vs Traditional Approaches” – http://ipcsit.com/vol37/030-ICINT2012-I2069.pdf (inglês)
  • “A Comparison between Agile and Traditional Software Development Methodologies” – https://xa.yimg.com/kq/groups/71601056/324265895/name/A_comparision_between_Agile_and_Traditional_SW_development_methodologies.pdf (inglês)
  • “Comparação entre Metodologias Ágeis e Tradicionais para o Desenvolvimento de Software” – http://xps-project.googlecode.com/svn/!svn/bc/6/trunk/outros/Met._Ageis.pdf

Links:

  • Manifesto for Agile Software Development – http://agilemanifesto.org/ (inglês)
  • Desenvolvimento ágil de Software – Wikipédia – http://pt.wikipedia.org/wiki/Desenvolvimento_ágil_de_software
  • Agile Alliance – http://www.agilealliance.org/ (inglês)
  • Agile Brazil 2014 – conferência sobre métodos ágeis – http://www.agilebrazil.com/2014/

  • extreme programming
  • kanban
  • metodologias
  • métodos ágeis
  • scrum
  • unified process
  • waterfall

Compartilhar Este Post

  • Facebook
  • Twitter
  • LinkedIn
  • Google Plus

Posts Relacionados

Laravel ElePHPant

Laravel ElePHPant

10/07/2015
Você está pronto para o Windows 10?

Você está pronto para o Windows 10?

21/06/2015
O que é SEO?

O que é SEO?

15/07/2014

Deixe um Comentário

Clique aqui para cancelar a resposta.

Nome*

E-mail*

Website

Compartilhe

  • Facebook
  • Twitter
  • LinkedIn
  • Google Plus

Categorias

  • Blog
  • Notícias

Artigos Mais Recentes

Estágio Desenvolvimento PHP e Laravel
Estágio Desenvolvimento PHP e Laravel
Nova Vaga para Estágio
Nova Vaga para Estágio
Vaga para Desenvolvedor PHP
Vaga para Desenvolvedor PHP
Estágio em Programação – Duas Vagas
Estágio em Programação – Duas Vagas
Compre do Pequeno Negócio
Compre do Pequeno Negócio

Softerize

Rua Com. Rheingantz, 50/503 - Auxiliadora - Porto Alegre

(51) 3574.3803

E-mail: contato@softerize.com.br

Assine nossa newsletter

Conecte-se

  • Facebook
  • Twitter
  • Linkedin
  • Google Plus
  • RSS
  • Skype

Língua

  • Português
  • English
  • Início
  • Serviços
  • Projetos
  • Contato
  • Sobre
  • Blog

© 2017 Softerize Sistemas Ltda.

Nós utilizamos cookies para garantir que você tenha a melhor experiência no nosso website. Se você continuar a usar nosso site entenderemos que você está de acordo com isso.Ok