Prática: abra mão de começar pela solução mais elegante

23 de agosto de 2010

Sintoma: um desenvolvedor começa a implementar uma funcionalidade e já no início, em algo simples e que resolveria o problema de maneira elegante, está com problemas em algo pequeno e aparentemente ilógico, que deveria funcionar. Por esse motivo a equipe não conseguem continuar com a funcionalidade, com a qual se debatem durante algumas horas.

Ação: deixe de lado a solução mais elegante temporariamente. Se possível siga a prática de baby steps. Procure ajuda em um fórum ou lista de discussão, e implemente uma solução mais simples e básica enquanto isso.

Se o desenvolvedor julga a solução daquele trecho de código algo simples e perde muito tempo para implementar, temos um indicador de um de dois possíveis motivos:

a) se a solução era tão simples quanto imaginado, ela não deveria ter demorado tanto tempo, portanto a solução não é tão simples assim: abra mão dela e implemente uma mais simples

b) com o cansaço mental em cima do problema, fica difícil ver um erro pequeno e geralmente bobo que impede o correto funcionamento.

Independente de qual dos dois for o problema, compartilhe ele de maneira assíncrona – lista ou fórum – com outros que estão com a cabeça fresca e não viciada no problema.

Listas e foruns

Listas e fóruns são úteis para buscar e discutir abordagens.

As metodologias ágeis deixam claro que tentar lançar o produto perfeito já na sua primeira versão é algo extremamente difícil e penoso. O mesmo é aceito amplamente para o design da aplicação, mas ainda temos dificuldade de aceitá-lo para qualquer pedaço de código, o baby step.

O produto perfeito

Duke Nuke Forever: em busca da qualidade técnica máxima

Praticar dojos também ajuda a não ficar impedido nesses instantes e evitar o desperdício uma vez que a prática de baby steps é reforçada o tempo todo.

Podemos buscar a perfeição técnica e de produto, mas não devemos começar com ela: alcança-la é um processo.

Anúncios

3 Respostas to “Prática: abra mão de começar pela solução mais elegante”


  1. É normal os desenvolvedores querer implementar da melhor forma logo na primeira implementação. Acho que pensamos: “Sou capaz de fazer melhor, então tenho que fazer”.

    Não há nada melhor do que um rafactory e para isso se tornar mais fácil, ter uma versão básica do código é essencial.

    Belo post Gui. 🙂


  2. “Perfection is a direction, not a place”


  3. Entregar algo funcionando freqüentemente é um grande desafio, e é a melhor experiência que um time pode ter. Equilibrar entrega e qualidade* é uma habilidade que evoluímos com o tempo.
    Confesso que ainda estou me disciplinando em alguns aspectos, mas como você disse a comunidade técnica ou a própria equipe sempre ajudam nos momentos difíceis. 🙂
    Abraços!


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: