Se usa Baby Steps no mundo real da programação?

Recebi uma dúvida interessante sobre Baby Steps de um aluno no Welcome to the Django. Encorajado pela galera que curtiu a resposta, decidi compartilhar no blog para expandir a conversa.

“Estou ainda na primeira metade dos vídeos do módulo 2. Entendi o motivo do Kata e dos Baby Steps, mas achei a evolução muito demorada.

Enfim, as dúvidas são:

Se usa isso (baby steps) no mundo real?

Sempre o código vai evoluir (ou é recomendado que evoluísse) dessa mesma forma?”

No trabalho do desenvolvimento de software a gente sempre tem prazos. E frequentemente prazos apertados. A preocupação com a demora é uma constante.

Em contrapartida, a gente não consegue programar o que não compreendemos. E muitas vezes quando subestimamos o desafio, até fazemos o código rápido, mas passamos uma infinidade de tempo tentando ajustar ou corrigir o que foi feito.

Baby Steps é uma estratégia de abordar o desafio passo à passo, defensivamente.

Minha inspiração pra relacionar Baby Steps ao desenvolvimento de software vem da música.

Na música, existem 2 momentos: Ensaio e Show

Se você ensaiar sempre tocando rápido, não vai cuidar da forma de tocar. Não vai cuidar das habilidades em si, vai só focar na reprodução.

Já se você fizer o show como um ensaio, não vai cuidar do conteúdo. Não vai cuidar do que seu público precisa.

Existe um equilíbrio dinâmico entre forma e conteúdo. Baby steps é essencial para o ensaio, para “tirar músicas novas”. Quanto mais você souber “tocar de cor” mais fácil é relaxar e improvisar no show.

Eu uso muito Baby Steps quando programo. A intensidade costuma variar com o quão experiente eu sou com um determinado desafio.

Combinando Baby Steps com TDD, eu consigo ter mais consciência sobre o trabalho e as decisões de design. Isso me ajuda a decidir sobre a “complexidade do arranjo da música”. Afinal, no desenvolvimento de software o show não é o código, mas a satisfação do usuário.

  • Paulo Cesar Pc

    Valeu HB!! também tive a mesma dúvida sobre isso.