Más decisões iniciais
Qualquer bom engenheiro civil lhe dirá que um edifício é tão bom quanto sua fundação, mas este software foi construído sobre uma base de gelatina, areia e fita adesiva. Foram tomadas decisões desde o início que forçaram o desenvolvimento a seguir um determinado caminho que se afastava de boas e sólidas práticas de arquitetura e desenvolvimento.. A percepção de que boas práticas de arquitetura e codificação são críticas levou a um aumento na noção de “desenvolvimento de software de alta opcionalidade” – a ideia de que as equipes de desenvolvimento devem desde o início trabalhar para manter aberta a opção de mudança e evitar se envolverem em um canto.
Um desenvolvedor “herói”
Em algum momento nos recessos do passado, um herói surgiu para eliminar um recurso crítico bem na hora certa. Ela foi elogiada como uma salvadora, resgatando uma demonstração de cliente que terminou em um grande negócio de vendas. Somente esse desenvolvedor construiu o recurso “do seu jeito”, de uma forma inescrutável, usando técnicas de codificação que só ela poderia compreender. E agora que nosso herói deixou a empresa, ninguém consegue entender bem o que ela fez, e o cliente que encontrou seu recurso crítico mudou para um concorrente há algum tempo.
Qualquer um pode codificar!
Houve um tempo em nosso setor em que se pensava que, se conseguíssemos construir ferramentas poderosas o suficiente, qualquer pessoa com conhecimento do domínio poderia se tornar um desenvolvedor. (Essa noção sobrevive na mania do “sem código”.) Talvez sua empresa tenha aderido à mania das ferramentas RAD (desenvolvimento rápido de aplicativos) e CASE (engenharia de software auxiliada por computador) da década de 1990 e pediu à equipe de desenvolvimento que construísse um cliente- protótipo de servidor de uma nova aplicação de contabilidade. A equipe começou a descartar botões e preencher manipuladores onClick e nunca mais olhou para trás. As coisas funcionaram desde o início porque o dispositivo permitiu que você construísse um protótipo funcional rapidamente – e por que você pararia para reescrever a coisa quando ela funciona perfeitamente agora? Acho que todos nós nos encolhemos ao ouvir as palavras: “Por que simplesmente não enviamos o protótipo?” E ainda assim…