Randell, Brian.
"Fifty Years of Software Engineering -or- The View from Garmisch."
(2018).
Cientista da computação, professor na Newcastle University, nos anos 60 esteve envolvido na NATO Software Engineering Conferences, conferência que popularizou o termo Engenharia de Software.
Aconteceu em 68 e 69, contou com a participação de experts do software que aceitaram o desafio de definir as melhores práticas de software.
https://en.wikipedia.org/wiki/NATO_Software_Engineering_Conferences
Neste artigo, apresentado no ICSE 2018, Brian Randell faz uma revisão histórica da Engenharia de Software partindo dessas duas edições da NATO.
Randell começa o artigo lembrando que foi convidado a relembrar as conferências NATO e o surgimento da Engenharia de Software ainda em 79 no ICSE em homenagem ao 10º aniversário da conferência NATO.
Esta foi a primeira ocasião onde aceitou falar no tema Engenharia de Software pois ficou tão desiludido com a NATO 69 que por anos evitou o uso do termo.
O artigo apresentado na conferência ICSE 79 tinha o título “Software Engineering As It Was In 1968” com foco na primeira edição da NATO 68.
Randell, B.: "Software Engineering: As It Was": "4th International Conference on
Software Engineering. Munich, Germany" (IEEE Computer Society, 1979), pp. 1-10.
Entre os outros autores convidados para esta mesma edição do ICSE 1979 estavam:
O mundo da computação no final dos anos 60:
Os projetos de software eram quase todos projetos sob encomenda, desenvolvidos para clientes específicos, e muitos dos maiores projetos eram caracterizados por “subestimativas e excessivas expectativas”, como disse Licklider.
Licklider, J.C.R.: "Underestimates and Overexpectations": "ABM: An Evaluation
of the Decision to Deploy an Antiballistic Missile System" (Harper and Row,
1969), pp. 118-129.
Foi apenas em 1969 quando a IBM “separou” seu software do hardware, precificando-o separadamente, que o software se tornou uma commodity e uma indústria de software e a noção de software de pacotes começou a existir.
Nesta época o termo Engenharia de Software era praticamente desconhecido e a escolha do nome para a primeira conferência NATO foi usado muito mais como uma provocação (uma necessidade) do que uma realidade.
Muitos participantes tem dito sobre a primeira conferência NATO como uma das mais estimulantes conferências que eles já participaram.
Muito do estímulo se deve a atmosfera empolgante que se desenvolveu na conferência quando os participantes perceberam o grau de preocupação comum com o que alguns estavam dispostos a chamar de “crise de software”.
Depois da conferência ICSE 1979 Brian Randell voltou ao seu auto-embargo de não falar sobre Engenharia de Software até 1996 quando Schloss Dagstuhl o convidou para falar sobre o tema.
Randell, B.: "The 1968/69 NATO Software Engineering Reports",
IEEE Annals of the History of Computing, 1998, 20, (1), pp. 51-64.
Diferentemente da primeira conferência em 68 onde o termo Engenharia de Software foi posto como uma provocação e necessidade, em 69 havia uma tendência de alguns participantes em falar no termo como se já fosse uma realidade.
Um outro grande contraste entre 68 e 69 foi o enorme abismo entre os cientistas e praticantes.
Ficou claro durante a conferência que os organizadores tinham uma agenda secreta de ter o apoio da NATO na criação de uma entidade chamada:
International Software Engineering Institute
O plano não deu certo e a conferência foi marcada por muitas discussões, o que levou um dos participantes, Tom Simpson da IBM, a escrever e apresentar uma explêndida sátira.
http://homepages.cs.ncl.ac.uk/brian.randell/NATO/NATOReports/index.html#Appendix
Lamentavelmente, nenhum dos avanços parecia ter qualquer impacto na produção de obras-primas e, por isso, o grupo decidiu que a dificuldade básica era claramente um problema de gestão. Um dos alunos mais brilhantes (com o nome L. da Vinci) foi imediatamente promovido a gerente do projeto, encarregando-o da aquisição de tintas, telas e pincéis para o restante da organização.
Alguns tipos distintos de indústria de software surgiram, em particular, aqueles que projetam ou adaptam software “sob medida”, e aqueles que produzem pacotes de software “off-the-peg” (de prateleira)
O primeiro tipo de software (sob medida) ainda está sujeito a muitos dos mesmos desafios relativos ao custo de implementação, cronograma, desempenho e (especialmente) confiabilidade.
O segundo tipo (de prateleira) oferece um mercado maravilhoso de sistemas de software, utilitários e aplicativos utilizáveis e úteis.
Ian Sommerville define Engenharia de Software como:
Engenharia de software é uma disciplina de engenharia que está preocupada com todos os aspectos da produção de software desde os estágios iniciais da especificação até a manutenção do sistema após a sua implantação.
Sommerville, I.: "Software Engineering (10th ed.)"
Pearson (2016) 810 pp. [ISBN 13:978-1-292-09613-1].
Quando o termo “Engenharia de Software” foi introduzido muitos fizeram uma pergunta simples:
“De que forma Engenharia de Software é diferente de Programação?”
Engenharia de Software é:
“O desenvolvimento de programas com múltiplas-versões realizado por múltiplas-pessoas.”
O projeto NPfIT de 2005 do UK National Health Service consumiu £20 bilhões e foi um fracasso!
O projeto foi o maior fiasco dos contratos do setor publico até então.
Aquilo que Licklider chamou de “subestimativas e expectativas excessivas” quase quarenta anos antes ainda ocorre (às vezes de forma espetacular) hoje!
Outra preocupação expressada há dez anos atrás na COMPSAC sobre o mundo da engenharia de software é a multiplicidade de “padrões”, algo que leva a uma enorme fragmentação de tecnologias, linguagens e ferramentas.
Artigo de Les Hatton:
“Nós incentivamos ativamente os estudantes a trabalhar em projetos reais para a indústria e, como resultado, um dos meus colegas este ano teve estudantes submetendo projetos em C, C#, C++, Java, PHP, MySQL, XML, HTML, XHTML, VB.Net em XP, Mac OS X, Linux e até Vista com Eclipse, Netbeans, Ant, JWSDP, Glassfish, DreamWeaver, Developer Studio, .Net e talvez alguns em Etruscan.”
8945 linguagens de programação diferentes
Ian Sommerville:
“Não existem métodos e técnicas universais de engenharia de software que sejam adequados para todos os sistemas e para todas as empresas. Em vez disso, um conjunto diversificado de métodos e ferramentas de engenharia de software evoluiu nos últimos 50 anos.”
Geoffrey Elton, historiador de Cambridge:
“O futuro é sombrio, o presente é penoso. Apenas o passado, morto e acabado, traz contemplação. Aqueles que olham sobre ele sobrevivem; estes são seu resultado e seus vencedores. Não é de admirar, portanto, que os homens se preocupem com a história”.
George Santayana:
“Aqueles que não conseguem lembrar do passado estão condenados a repeti-lo”.
joenio@joenio.me
Esta apresentação está disponível em:
http://joenio.me/50-anos-de-engenharia-de-software
(código-fonte: http://github.com/joenio/joenio.me)
Onde e quando esta apresentação foi realizada