Metodologia de desenvolvimento de software: importância, conceitos e princípios
O software é o combustível utilizado pelos negócios modernos, construir e manter software de qualidade, de forma repetitível e previsível é difícil hoje e se tornará cada vez mais difícil. São sintomas típicos de problemas no desenvolvimento de software: falha no entendimento das necessidades dos usuários; inabilidade de tratar mudança de requisitos; descobrimento tardio de demandas importantes do projeto; falta de um processo definido para o desenvolvimento de software
Geralmente os projetos de desenvolvimento de software falham devido às seguintes causas: gerência “por demanda” dos requisitos; comunicação ambígua e imprecisa; arquitetura fracamente definida; complexidade sub-estimada; inconsistências não identificadas nos requisitos, projeto e no código e testes insuficientes. Ao tratar essas causas, através de uma metodologia de desenvolvimento de software, os sintomas serão eliminados e será mais fácil desenvolver e manter um software de qualidade de forma previsível e que possa ser repetida.
Segundo o dicionário Aurélio metodologia é o estudo dos métodos; caminho pelo qual se atinge um objetivo. Modo de proceder, maneira de agir.
As principais características de uma metodologia de desenvolvimento são o peso da metodologia – refere-se a quantos elementos a metodologia especifica, e o tamanho da metodologia – refere-se ao número de elementos de controle da metodologia
A figura abaixo ilustra os elementos que formam uma metodologia
O escopo de uma metodologia abrange a quantidade de papéis; atividades e os seus entregáveis
Os três princípios de uma metodologia
1. Quando mais pessoas estão envolvidas em um projeto, uma metodologia maior é necessária
2. Um pequeno aumento na metodologia, acresce muito o custo do projeto
3. Relacionamento entre tamanho da metodologia x tamanho do projeto x tamanho do problema
Uma metodologia de desenvolvimento de software é importante pois pode ser um marco para iniciar as melhorias, traz benefícios para todo o grupo, compartilhando as experiências; estabelece uma linguagem comum ; é um caminho para definir metas de melhoria contínua; traz facilidade na manutenção de sistemas ; reduz dependência de pessoas chaves e facilita o processo de testes
Ao se adotar uma nova metodologia, deve-se considerar que durante o processo de implantação da mesma haverá aumento do trabalho e da burocracia e a tendência de tornar o trabalho mais lento; dificuldade do aprendizado e que o treinamento custa tempo e dinheiro; a carga de trabalho aumenta no início do uso da metodologia, e os benefícios só são vistos mais tarde; a manutenção da documentação pode ser tediosa; a metodologia deve ser adaptada para cada tipo de situação
Principais metodologias do Mercado
RUP, XP, Select Perspective, Dynamic Systems Development Methodology (DSDM)
Scrum, Rapid Application Development, Feature-Driven Development (FDD)
Crystal Clear Methodology, U.K.-based Skills Framework for the Information Age (SFIA)
Foundation’s Profitable Information by Design (PRIDE) Through Phased Planning and Control and the Structured Systems Analysis and Development Method (SSADM)
Fujitsu’s Macroscope, Allen Systems Group’s Visual Process,
Gantthead Processes, Microsoft Solutions Framework
Acesse http://delicious.com/prasabermais para ter acesso a um conjunto de links sobre metodologias de desenvolvimento de software
Artigo adaptado de http://alistair.cockburn.us/Methodology+space e do livro Princípios de Análise e Projeto de Sistemas com UML; Eduardo Bezerra; Editora Campus;2007
Related posts: