Páginas

sábado, 20 de outubro de 2012

Software não é Prédio, Ponte ou qualquer outra Obra da Engenharia Civil

Sou aluno de Pós-Graduação Engenharia de Software de uma instituição renomada no RS e hoje escutei um dos maires absurdos que poderia ter escutado em curso de pós-graduação, um dos meus professores na aula de hoje depois de um questionamento que lhe fiz sobre desenvolver todo o projeto antes para depois codificar me respondeu que: "..imagina construirmos um prédio sem projetarmos encanamento, sem projetarmos a fiação elétrica, sem projetarmos estacionamentos e cômodos...".

Foi o maior absurdo que ouvi nos últimos tempos, e olha que faz um certo tempo que ouço e vejo absurdos no desenvolvimento de software.

Não quis e não quero imaginar um software como um prédio, um SOFTWARE não é uma obra de ENGENHARIA CIVIL, um SOFTWARE pode ser comparado a um organismo vivo que ira evoluir ao longo do tempo, ou alguém já projetou um software todo antes e no fim do projeto aquele software era exatamente como o projeto inicial, acho pouco provável, até mesmo esse querido professor( é claro se ele já fez algum software profissionalmente).

Essa explicação dada por esse senhor me fez refletir muito sobre quanto um comentário como esse tem um impacto em nossos projetos de software, pois todos que estavam na sala e que ouviram o que foi dito podem levar para suas empresas e times essa metáfora que lhes foi dita.

No inicio do desenvolvimento de software acredito que essa metáfora tenha sido de grande valia, uma vez que projetávamos e desenvolvíamos softwares bastante simples em comparação aos desenvolvidos atualmente, porem nos tempos de hoje onde os negócios mudam em um piscar de olhos, onde os sistemas são imensamente mais complexos que antes e que nossos softwares a cada dia que passa tentam imitar mais os seres humanos é IMPOSSÍVEL projetar um sistema inteiro antes do desenvolvimento.

O software tem que evoluir ao longo do tempo isso não sou eu quem esta dizendo isso já é discutido a tempos, Craig Larman em artigo recente escreveu sobre isso.


"A metáfora do edifício [aplicada ao desenvolvimento de software] já perdeu sua utilidade; é hora de mudar novamente. As estruturas conceituais que hoje construímos são complexas demais para serem especificadas detalhadamente com antecedência; são também complexas demais para serem construídas sem defeitos. Devemos, portanto, adotar uma abordagem radicalmente diferente. Vamos nos voltar à natureza e estudar a complexidade das coisas vivas, em vez dos trabalhos mortos do homem.

Nesse contexto, encontramos estruturas com uma complexidade imensa: o cérebro, por exemplo, é mais complexo do que é possível mapear e mais poderoso do que se pode imitar; é rico em diversidade, autoprotetor e auto-renovador. O segredo é que o cérebro evolui; não é construído. O mesmo deve acontecer com nossos sistemas de software; alguns anos atrás, Harlan Mills propôs que qualquer sistema de software deve ser evoluído através do desenvolvimento incremental."[Fred Brooks, 1986 
]


O trecho do artigo  "Não Existe Bala de Prata – Essência e Acidente em Engenharia de Software" [Brooks 1986], é de 1986 e isso mostra que esse pensamento não é algo recente, porem ainda nos tempos atuais ainda temos que escutar que o software é um "trabalho morto" feito pelo homem, para encerrar só tenho mais uma afirmação para fazer, SOFTWARE NÃO É PRÉDIO, PONTE OU QUALQUER OUTRA OBRA DE ENGENHARIA CIVIL.




Um comentário:

  1. Muito bom o artigo! Acredito que esse conceito "vivo" de constante evolução se aplica a tudo. Pensar de outra forma, na atualidade, me parece totalmente descabível. Somos insignificantes, a qualquer instante, num piscar de olhos, tudo pode mudar.

    ResponderExcluir