RSS

Declínio e Queda do Engenheiro de Software

26 fev

Alguns tópicos de uma apresentação que encontrei hoje sobre Engenharia de Software e que muito me chamou a atenção pois compartilho muito dessa visão. A versão completa foi escrita por Christian Reis (@kiko666) e para quem quiser mais detalhes está disponível em:

Agora, vamos aos tópicos com os meus comentários:

  • Apresentação e Introdução:
  • Minha experiência com Engenharia de Software indica que:
    • 1) É bem mais difícil do que parece.
    • 2) É um termo que normalmente inspira bocejos.
    • 3) Há algum problema sério nisso tudo:
  • O Engenheiro de Software:
  • Amor, Ódio e outras Bobagens:
    • Materialização de sonhos (e ilusões) em software.
    • Todo mundo tem sua opinião sobre Eng.Software (e normalmente é uma opinião que contém um grande número de palavrões). A pergunta é: WHY?
    • Esqueçam os conservadores e puristas: desenvolver software — em qualquer escala, e de qualquer forma — é Engenharia de Software.
    • Não se enganem: escrever código, rodar e testar é um processo de software.
    • O que não explicam e que nos falta aqui é uma visão de escala: que tipo de processo o seu problema atual requer?
  • Processo de Software:
    • Obviamente, a preocupação com processo de software é menor quando é um projeto de 10-homens-hora!
    • Processos difundidos e bem-documentados tendem a ser os que foram desenvolvidos para a Nasa e o DoD!
    • Processo de Software é um nome chique para descrever quando sentamos juntos e planejamos construir ou consertar algo:
      • 1) Descobrir o que tem para ser feito.
      • 2) Descobrir como será feito.
      • 3) Fazer. Fazer. Fazer. Fazer.
      • 4) Descobrir se fizemos mesmo o que era para fazer. (enxague, repita)
    • Engenharia de Software e a Universidade
      • //Ou, porque o ensino de engenharia de software nas universidades não funciona!?
    • Para aprender como construir software, precisamos de bons exemplos.
    • Não nos dão muitos bons exemplos!
    • Enfoque em escrever código, e não em ler código (e no entanto..)
    • Tarefas de brinquedo, prazo curto, solitárias.
    • Pouca ênfase em criar peças que se encaixam.
    • Pouca ênfase em trabalhar com outras pessoas.
    • Visibilidade nula para o trabalho dos outros, revisão de código inexistente.
    • Quando de fato falamos “processo”, falamos de processos que não atendem aos alunos!
  • Processo Padrão?
    • Processos que não atendem a quem os estuda.
    • Processos dos quais não aferimos resultados.
    • Processos “desnecessariamente” burocráticos.
    • Surpresa! Estes processos não são para projetos pequenos — em outras palavras, nós!
    • Geralmente se passa a impressão de que existe um processo ideal, e que você deve sempre buscar atingí-lo (CMM? ISO?)
    • Nenhum processo bem projetado é burocrático, inútil ou sem resultado. Mas o processo tem que se encaixar na sua realidade, na sua equipe.
    • Muito mais importante do que um processo formal é um processo que sirva para as pessoas que irão executar o trabalho.
    • Engenheiros de Software precisam aprender um toolkit essencial, e com este toolkit entender (e construir) um processo relevante.
  • O Renascimento do Engenheiro de Software:
    • Uma lista de 7 qualificações mínimas:
      • 1) Sabe usar um sistema de controle de versões.
      • 2) Sabe ler código em mais de uma linguagem.
      • 3) Lê inglês de forma competente.
      • 4) Já teve uma correção ou mudança aceita e integrada em um projeto de Software Livre.
      • 5) Sabe o que é uma API, e o que quer dizer “affordance”.
      • 6) Sabe quem são: Dijkstra, Hoare, Knuth, Ritchie, Thompson.
      • 7) Constrói produtos dos quais é orgulhoso.
  • Adios Banditi:
    • Engenharia de Software é um veículo pelo qual a experiência se difunde entre nós.
    • Engenharia de Software é para ser divertido e interessante (e seu amigo na hora em que dá tudo errado).
    • Engenharia de Software ensina ter amor pela equipe, amor pelo usuário, e sobretudo amor pelo produto.
    • Engenharia de Software é um passo em direção à evolução da profissão.
    • “Person who say it cannot be done should not interrupt person doing it.” –Chinese Proverb

Alguém Concorda? Discorda? Escreva a sua opinião.

Anúncios
 
2 Comentários

Publicado por em 26/02/2011 em Uncategorized

 

2 Respostas para “Declínio e Queda do Engenheiro de Software

  1. Daniel

    25/05/2011 at 5:15 pm

    Artigo bacana!
    Aqui no meu departamento parecer existir um certo preconceito contra a engenharia de software por parte dos professores das outras áreas, e isso se reflete nos alunos.
    Não gostava muito de Engenharia de Software quando estava na graduação, mas agora vejo que o único motivo pra isso era que eu não sabia o que era Engenharia de Software. A disciplina de Engenharia de Software como foi dada só mostrava que só servia pra aumentar a burocracia no desenvolvimento.

     
    • thiagoghisi

      04/11/2011 at 7:09 pm

      Daniel,

      Quando as pessoas não entendem muito bem, geralmente elas tem preconceito e/ou falam mal e/ou que não serve na prática.

      “A disciplina de Engenharia de Software como foi dada só mostrava que só servia pra aumentar a burocracia no desenvolvimento.”

      //Excelente frase Daniel, eu tinha essa mesma impressão.

      Infelizmente, as disciplinas de Eng. de Software nas universidades brasileiras geralmente são ministradas por pessoas que não aplicam a teoria que estão “pregando”.

      Esse é um dos principais motivos do preconceito e do mal entendimento dos profissionais de TI quando a esse assunto.

      Abs,

       

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: