Você NÃO é um Engenheiro de Software. Você não constrói arranha-céus. Você não constrói pontes.
Você planta jardins.
Você é um Jardineiro de Software.
Você tenta planejar seus jardins com um nível de detalhe de forma que você conheça onde cada folha estará posicionada antes de você plantar uma simples semente? As pessoas esperam estimativas (ou são promessas em sua organização?) em exatamente quantas flores terão florescido no prazo de um ano? Você têm bônus vinculados à isso? Coisas que seriam perfeitamente sensatas para o planejamento de um arranha-céus parecem um pouco ridículos quando você está falando sobre jardins.
Você têm provavelmente uma boa ideia de como seu jardim deve parecer daqui uma semana. Você pode até ter uma ideia aproximada da forma que você espera que o jardim será, em um ano a partir de agora. Mas, você não têm a mínima ideia de onde cada ramo, folha, caule e flor estará daqui um ano e, se você disser que sabe, você estará somente chutanto um palpite.
Se você estivesse construindo uma ponte ou um arranha-céus e você me dissesse que, antes de começar, você sabia exatamente como ele ficaria depois de construído – eu acreditaria em você. Se você me dissesse que sabia – usando alguma forma de insana de precisão – quanto tempo levaria para chegar ao status “acabado” – eu acreditaria em você de novo. É assim que engenheiros fazem. Diga-me a mesma coisa sobre seu jardim e vou dizer que é uma GRANDE MENTIRA! Diga-me que você vai fazer o jardim crescer mais rápido contratando mais jardineiros, e eu vou rir de você!
Então, por que tantos jardins falham e, no entanto, tantos arranha-céus tem sucesso? Com poucas exceções, a técnica para construir um arranha-céus é semelhante, esteja você na Europa ou em Singapura. Jardins não funcionam dessa maneira. Cada jardim é diferente porque o ambiente em si é diferente. Mesmo jardins que estão um ao lado do outro podem ter solos totalmente diferentes. É por isso que mesmo a menor empreiteira pode provavelmente construir a mesma ponte que uma grande empreiteira, mas sua companhia não pode fazer os seus jardins crescerem no mesmo calibre que os jardins do Google.
Lembre-se do tempo que alguém na sua empresa usou sem sucesso uma metodologia Ágil de jardinagem, e então saiu por aí dizendo que era o adubo de cavalo que não funciona? Bem, adubo de cavalo faz jardins crescerem, apenas não foi suficiente para salvar o seu jardim. Seu jardim provavelmente estava morto antes do seu início – uma vítima do clima da sua organização. Você estava tentando crescer uma floresta no deserto? Você não pode simplesmente plantar as mesmas plantas que o Facebook, o Twitter ou Flickr e esperar que elas criem raízes, independente da qualidade do seu jardineiro ou do clima da sua organização.
Ao contrário de um arranha-céus, crescerão ervas daninhas no seu jardim. Ele nunca estará ‘terminado’. Só porque você parou de gastar dinheiro com isso não significa que ele está terminado. Se você parar de carpir seu jardim para retirar as ervas daninhas, elas provavelmente irão sufocar seu jardim e, em breve, replantar o jardim parecerá mais fácil do que fazer a poda. O ambiente em torno do seu jardim estará sempre mudando, e será cada vez mais difícil manter vivo um jardim que foi deixado de lado.
Na maioria dos países, os engenheiros precisam de uma licença para construir uma ponte. Jardineiros não têm nenhum órgão de controle de qualidade. Infelizmente, a qualidade dos seus jardineiros terão uma maior influência no sucesso dos seus jardins que qualquer outro fator – então é melhor você ser bom em separar o joio do trigo. Apenas um jardineiro experiente sabe reconhecer outro jardineiro quando ele o vê. Alguém que só têm feito gestão de jardins não têm ideia do que eles deveriam estar procurando (embora eles não saibam disso). Então, se você não for um jardineiro, mas necessita contratar bons jardineiros, encontre rapidamente um jardineiro experiente que você confia para testar seus candidatos. Você não pode aprender jardinagem em uma sala de aula, por isso lembre-se de se focar nos jardins que seus candidatos criaram anteriormente, e não em quanto de teoria de jardinagem eles aprenderam na escola (que de toda forma não serão aplicados às condições climáticas que dos jardins que você cuida).
A metáfora de engenharia teve seu tempo ao sol, e talvez possa ter sido usado no passado no sentido se ser preciso, mas agora só serve parar ajudar a pessoas não técnicas à ter expectativas irreais sobre a forma como o software é construído.
Eu sou um Jardineiro de Software.
E assim você é um!
Fonte: chrisaitchison.com – You are NOT a Software Engineer!




