Como apagar incêndios em seu software – aprenda com os profissionais!

18 de setembro de 2009  |  Opinião  | 
3071655212_dbb7d7097b

Foto de kstoon

Metodologias ágeis, desenvolvimento orientado a testes, integração contínua, programação em par ou qualquer outra prática que você utilize não irão evitar que vez ou outra você seja obrigado a parar tudo o que estiver fazendo e correr desesperadamente para “apagar um incêndio”.

Imprevistos, urgências e prazos apertados surgem o tempo todo e requerem nossa atenção imediata. Com o tempo acabamos nos tornando peritos em resolver este tipo de problema. Certa vez eu trabalhei com um DBA que era chamado de herói por todos os nossos colegas de trabalho, dado a sua grande capacidade em resolver problemas desta ordem tão rapidamente.

Durante muito tempo eu acreditei que todo programador deveria receber pelo correio um diploma de bombeiro honorário. E já que somos obrigados a conviver com esta realidade, por que não aprender com os bombeiros profissionais qual é o melhor procedimento a ser adotado durante um incêndio de verdade?

Hoje, graças a um constante trabalho de prevenção, equipamentos de última geração e homens bem treinados, os bombeiros profissionais conseguem vencer as chamas com cada vez mais velocidade e com o mínimo de danos. Muito diferente da nossa forma de atuação, ao se deparar com um incêndio esses homens conseguem manter a calma e seguir a risca cada um dos procedimentos necessários. No caso de uma emergência, ao chegarem no local, a primeira missão de um bombeiro é resgatar as pessoas que estão em perigo. A segunda coisa a se fazer é evitar a propagação das chamas para prédios ou casas vizinhas e então lutar para extinguir o fogo.

Após o incêndio ser controlado, ainda é necessário fazer uma busca por focos de fogo que podem estar escondidos em escombros e possíveis vitimas que ainda possam estar vivas. O trabalho não termina até que uma equipe especializada identifique as causas do incêndio.

Analisando estes procedimentos adotados pelos verdadeiros bombeiros, fica muito claro o motivo de não recebermos a nossa carteirinha de bombeiro honorário. Nós não somos profissionais. Quando surge uma emergência no trabalho costumamos ignorar todas as regras e procedimentos afim de resolver o problema o mais rápido possível. Não nos importando com vítimas ou com a estrutura do prédio (software).

Não importa a gravidade do problema ou o quão apertado é o prazo. Uma janela quebrada, um pedaço de código mal concebido ou uma decisão estratégica errada pode ser o começo do declínio para o seu software. Quando se está trabalhando em um software cheio de janelas quebradas é fácil desenvolver pensamentos como “este código é uma porcaria mesmo”. Simplesmente não importa se tudo estava indo bem até aquele momento.

Por outro lado, quando uma equipe zela pelo seu código e o mantém limpo, bem escrito e elegante, mesmo durante um incêndio (prazo apertado, um bug sério descoberto em produção ou uma data fixa de lançamento) nenhum desenvolvedor desejará ser o primeiro a estragar tudo. Manter a cabeça fria e seguir o procedimento é a diferença entre amadores e profissionais.



Uncle Bob na RailsConf 09 – Profissionalismo from Fabio Akita on Vimeo.


5 Comentários


  1. Geralmente o “Herói” é um cowboy e resolve os problemas que ele mesmo criou, isso é fato.

    Ótimo post!

    []’s

  2. Uma prática interessante que eu tenho visto é: colocar o sistema em produção no ar novamente (literalmente fazer qualquer coisa pra voltar a atender os clientes), e NÃO fazer mais nada até consertar a janela.

    Normalmente esse processo se resume em uma parte da equipe fazendo o patch da dor de barriga e a outra parte da equipe investigando as causas e tentando reproduzir o problema (com testes, lógico)

    Muito bom esse post!

  3. Gosto de como o Robert Martin dá um tapa na cara do mercado dando a entender que tem muito gente trabalhando sem profissionalismo.

    Mas qualidade em software é algo tão extenso, e embora eu reconheça muitas guidelines, não me agradam algumas conclusões que alguns estão chegando: desenvolver sem testar, ou pior ainda, sem usar tdd, significa não ser profissional.

    Sou partidário de testes e de uma engenharia bem trabalhada, mas não me agrada muito ver “os mandamentos da qualidade de software” escritos em uma pedra.

    Mas de fato este tapa na cara pode ser muito útil àqueles que trabalham de qualquer jeito.

  4. Onde você geralmente consegue as fotos dos seus posts?

  5. Prodis, não tenho um lugar fixo… procuro por aí até encontrar algo legal.

Trackbacks

  1. Tweets that mention Nome do Jogo » Blog Archive » Como apagar incêndios em seu software – aprenda com os profissionais! -- Topsy.com
  2. O melhor da semana 20/09 a 26/09 « QualidadeBR

Deixe um comentário