quarta-feira, 6 de janeiro de 2010

SEMAT – Repensando a Engenharia de Software

Recentemente, notáveis do mundo da engenharia de software, liderados por Ivar Jacobson, Bertrand Meyer and Richard Soley, criaram um movimento para rediscutir as bases da engenharia de software.

O “SEMAT (Software Engineering Method and Theory) – Call for Action” sugere que não há organização na engenharia de software, que suas práticas são imaturas e, assim, convoca a comunidade para trabalhar seus fundamentos. O ponto de partida é a definição de uma base mínima conceitual, nomeada pelos idealistas por “Kernel”. A importância deste Kernel está na necessidade de “elencarmos o conjunto de elementos que são essenciais a todos esforços do desenvolvimento de software, um BoK (Body of Knowledge) compartilhado para acadêmicos, pesquisadores e profissionais”.

De fato, um dos pontos elencados pelo grupo como o principal problema da engenharia de software atual é a divergência entre a teoria do mundo acadêmico e a prática nas empresas. Em boa parte, este gap é devido aos apelos de marketing e buzzwords a que nosso “mundo” (de TI) está sujeito e muitas vezes parece até idolatrar (por um tempo).

Além dos já citados Ivar Jacobson, Bertrand Meyer and Richard Soley, outros nomes bem conhecidos que já escreveram vários livros sobre processos, metodologias e melhores práticas na engenharia de software também apoiam a ideia. Para citar alguns: Scott Ambler, Philippe Kruchten, Robert Martin, Alistair Cockburn e Erich Gamma. É relevante notar que alguns destes foram autores de metodologias mais tradicionais e outros de boas práticas ágeis.

O movimento já consta com muitos adeptos mas também já provocou opiniões contrárias, como pode ser acompanhado no post: “Against SEMAT”. O autor é da opinião de que os formalismos comuns das engenharias já consagradas (diferente da jovem engenharia de software, de apenas algumas décadas) não são sempre aplicáveis no desenvolvimento de software.

Não sou adepto às comparações de engenharia de software com engenharia civil. Acho até injusta esta comparação, justamente pela diferença de maturidade entre as duas. Há um artigo interessante que tenta explicar o RUP através de analogia com a produção de um filme: “Introducing the IBM Rational Unified Process essentials by analogy”. Entretanto, dizer que o desenvolvimento de software é uma arte, apesar de poético, é assumir que não há maturidade para entregar software de qualidade e de acordo com as necessidades do cliente. E pior ainda do que assumir isso é não agir.

O movimento SEMAT tenta, de certa forma, colocar ordem no caos. Eliminar o estigma de que software é um produto imprevisível, instável e que bugs são normais.

Como profissional da área, ao ver tantos especialistas se unindo neste movimento, sinto-me na obrigação de participar. Se vc também deseja apoiar, pode se subscrever na página do SEMAT.

Que nós desenvolvedores e a engenharia de software tenhamos prosperidade em 2010!

2 comentários:

  1. Já era tempo de alguma voz ou vozes da razão se atentarem para o abismo entre a teoria e a prática no que concerne a Engenharia de Software. Só lamento o volume de dinheiro desperdiçado até hoje tentando adequar o processo de negócio às técnicas do que o contrário. Mesmo assim, a máxima: "ruim com ela, pior sem ela" ainda é verdadeira.

    Um grande abraço.

    ResponderExcluir
  2. Gosto muito dos artigos de ótima qualidade do seu Blog. Quando for possível dá uma passadinha para ver nosso Curso de Informática Online. Lucas

    ResponderExcluir