Introdução
O processo de desenvolvimento de software vem passando por profundas transformações nestes últimos trinta anos. Apesar das técnicas e ferramentas terem evoluído, tais como a Unified Modelling Language (UML), Scrum, CMMI, linguagens orientadas a objetos, SOA, entre outros.
Após o terminar a Pós de Engenharia de Software, senti a necessidade de ter em mãos um guia, um processo de desenvolvimento de software. O que piorou a necessidade era ter um processo de desenvolvimento de software ideal. Qual é o melhor? Qual utilizar? Com a variedade de proposta para este tipo de processo fiquei meio perdido.
A maior dúvida é. Qual o melhor processo de desenvolvimento de software adotar? Fiquei navegando de RUP, OpenUP, Scrum, CMMI , XP e PMI. Apenas com estas 03 metodologia encontrei varias formas de implementar um processo de desenvolvimento de software.
Em um primeiro momento pensei em construir uma aplicação, um software, que concentrasse todas estas funcionalidades e necessidade e que focasse disposto na internet, com isso teríamos uma aplicação disponível para todos e englobando as de um processo de desenvolvimento de software. Fui frustrado pelo professor, pois a probabilidade desta aplicação não sair do papel era muito grande. O outro motivo alegado pelo professor era que fazer software era coisa bacharelado.
Tudo bem justificativas aceitas. Mas ainda continuava com o meu problema. Qual o melhor processo de desenvolvimento de software?
Conta tantas opções cheguei a seguinte conclusão. A necessidade de um processo de desenvolvimento é basicamente definir quem irá fazer o que e como deve ser feito para que o objetivo "construir um software ou melhorar um já existente" seja alcançado. Com a utilização de um processo de desenvolvimento de software formal e documentado são várias. Podemos destacar as seguintes. 1 - Ter um roteiro para definir e executar as atividades da equipe;
2 - Oferece critérios para monitoração e medição dos produtos e atividades do projeto;
3 - Dar suporte do negócio para os stakeholders e desenvolvedores; 4 - Distribuir as tarefas individuais e das equipes;
5 - Redução dos riscos
6 - Deixar o projeto mais previsível
7 - Equalização do negocio para equipe de desenvolvimento;
8 - Definir os artefatos que devem ser construídos e desenvolvidos;
9 - Um patterns de projetos que pode ser reutilizado
Com base nestes itens quero desenvolver uma proposta de comparação entre os processos RUP, OpenUP, Scrum, CMMI , XP e PMI e tentar chegar em um processo de desenvolvimento de software hibrido.
Existem equipes de desenvolvimento de software que cria seu próprio processo de desenvolvimento, o que é muito eficaz e normalmente contribui para uma maior disseminação da cultura de planejar.
Temos os que levar em consideração alguns fatores:
1 – Tamanho a empresa
2 – O que a aplicação era fazer e sua complexidade
3 – Prioridade do Projeto
4 – Flexibilidade em alterar prazos
Após o terminar a Pós de Engenharia de Software, senti a necessidade de ter em mãos um guia, um processo de desenvolvimento de software. O que piorou a necessidade era ter um processo de desenvolvimento de software ideal. Qual é o melhor? Qual utilizar? Com a variedade de proposta para este tipo de processo fiquei meio perdido.
A maior dúvida é. Qual o melhor processo de desenvolvimento de software adotar? Fiquei navegando de RUP, OpenUP, Scrum, CMMI , XP e PMI. Apenas com estas 03 metodologia encontrei varias formas de implementar um processo de desenvolvimento de software.
Em um primeiro momento pensei em construir uma aplicação, um software, que concentrasse todas estas funcionalidades e necessidade e que focasse disposto na internet, com isso teríamos uma aplicação disponível para todos e englobando as de um processo de desenvolvimento de software. Fui frustrado pelo professor, pois a probabilidade desta aplicação não sair do papel era muito grande. O outro motivo alegado pelo professor era que fazer software era coisa bacharelado.
Tudo bem justificativas aceitas. Mas ainda continuava com o meu problema. Qual o melhor processo de desenvolvimento de software?
Conta tantas opções cheguei a seguinte conclusão. A necessidade de um processo de desenvolvimento é basicamente definir quem irá fazer o que e como deve ser feito para que o objetivo "construir um software ou melhorar um já existente" seja alcançado. Com a utilização de um processo de desenvolvimento de software formal e documentado são várias. Podemos destacar as seguintes. 1 - Ter um roteiro para definir e executar as atividades da equipe;
2 - Oferece critérios para monitoração e medição dos produtos e atividades do projeto;
3 - Dar suporte do negócio para os stakeholders e desenvolvedores; 4 - Distribuir as tarefas individuais e das equipes;
5 - Redução dos riscos
6 - Deixar o projeto mais previsível
7 - Equalização do negocio para equipe de desenvolvimento;
8 - Definir os artefatos que devem ser construídos e desenvolvidos;
9 - Um patterns de projetos que pode ser reutilizado
Com base nestes itens quero desenvolver uma proposta de comparação entre os processos RUP, OpenUP, Scrum, CMMI , XP e PMI e tentar chegar em um processo de desenvolvimento de software hibrido.
Existem equipes de desenvolvimento de software que cria seu próprio processo de desenvolvimento, o que é muito eficaz e normalmente contribui para uma maior disseminação da cultura de planejar.
Temos os que levar em consideração alguns fatores:
1 – Tamanho a empresa
2 – O que a aplicação era fazer e sua complexidade
3 – Prioridade do Projeto
4 – Flexibilidade em alterar prazos
5 – Tamanho da equipe e facilidade em distribuir os trabalhos entre as equipes
Segundo o ISG (1994), como pode ser observado abaixo, os principais problemas referentes ao desenvolvimento de projetos de software estão distribuídos da seguinte forma:



