Como lidamos com as mudanças na engenharia de software: a importância do processo unificado e da agilidade

Existe uma complexidade em entender as necessidades dos clientes e usuários, ressaltando que mesmo que possam expressar suas necessidades, estas podem mudar ao longo do projeto de engenharia de software.

Para tanto, vamos consultar o livro de Engenharia de Software, do Roger Pressman, que diz o seguinte:

“Antes de iniciar qualquer trabalho técnico, é uma
boa ideia criar um conjunto de requisitos para todas as
tarefas de engenharia. Ao estabelecer um conjunto de
requisitos, você obtém um entendimento de qual será o
impacto do software sobre o negócio, o que o cliente
quer e como os usuários vão interagir com o software.”

Ou seja, muitos profissionais na área enfrentam esses desafios sem encontrar soluções eficazes, resultando em sistemas ou software construídos sobre bases frágeis (daí a importância de sempre conferir os detalhes levantados e revisar eles com os stakeholders).

Mas como que revertemos essa cacofonia entre as partes?

Vamos conferir com a vídeo aula sobre Processos Unificados:

Os processos unificados são uma forma de podermos atualizar constantemente o nosso processo, sem deixar de atentar as necessidades do stakeholders e aos demais exemplos de boas práticas.

E os métodos ágeis?

Eles também são um método de processo de engenharia de software e o Pressman diz o seguinte:

A engenharia de software ágil combina filosofia
com um conjunto de princípios de desenvolvimento. A
filosofia defende a satisfação do cliente e a entrega
incremental antecipada; equipes de projeto pequenas e
altamente motivadas; métodos informais; artefatos de
engenharia de software mínimos; e, acima de tudo,
simplicidade no desenvolvimento geral. Os princípios
de desenvolvimento priorizam a entrega mais do que a
análise e o projeto (embora essas atividades não sejam
desencorajadas).

Pressman também afirma que, embora seja benéfica, o desenvolvimento ágil não é indicado para todos os projetos, produtos, pessoas e situações. Tampouco, não é a antítese da prática
de engenharia de software confiável e pode ser aplicado como uma
filosofia geral para todos os trabalhos de software.

Contudo, com os avanços nos nossos tempos até na área computacional, podemos dizer que é muito difícil prever como um sistema computacional vai evoluir com o tempo e como o seu ciclo de vida se comportará. As condições de mercado mudam rapidamente, as necessidades dos usuários se alteram, e novas ameaças competitivas surgem sem aviso prévio.

Ou seja, como diria Lavoisier, tudo se evolui, e grande parte do mercado tecnológico, hoje, conta com o modelo ágil de desenvolvimento (mas lembre-se, maioria não é totalidade). Vamos acompanhar o segundo vídeo:

No desenvolvimento de software, há uma percepção comum de que os custos de mudança aumentam de forma não linear à medida que o projeto avança, como ilustrado na Figura 3.1 do livro (reproduzida abaixo).

Inicialmente, durante a fase de coleta de requisitos, é relativamente fácil e barato acomodar mudanças. No entanto, à medida que o projeto avança e se aproxima da fase final, como durante os testes de validação, o custo e o esforço necessários para implementar mudanças significativas aumentam drasticamente.

Isso ocorre porque as mudanças exigem alterações na arquitetura do software, desenvolvimento de novos componentes, modificações em componentes existentes, entre outros, tornando os custos crescentes e os esforços necessários cada vez mais significativos.

Páginas: 1 2

·

últimas aulas

confira mais [ -> ]

Descubra mais sobre Apprendendo

Assine agora mesmo para continuar lendo e ter acesso ao arquivo completo.

Continuar lendo

Descubra mais sobre Apprendendo

Assine agora mesmo para continuar lendo e ter acesso ao arquivo completo.

Continuar lendo