Arquiteto, engenheiro e Fullstack dev são títulos estéticamente bonitos. Devido a carga cultural que carregam. Seus nomes causam impacto. Através da analogia entre o ciclo de vida de uma planta você vai entender por que as atividades de arquitetos e engenheiros são muito mais próximas a um jardineiro.

Uma analogia entre um software e uma planta.

Há muito tempo atrás li essa analogia e nunca mais encontrei o texto. A ideia da analogia não foi minha. Mas o texto atual é meu.

A planta

Close-up of a grouping of white daisy flowers

O ciclo de vida da planta começa com uma semente que vai germinar e produzir a pequena planta, chamada "muda". Cresce até a idade adulta, reproduz e morre.

Uma planta é um ser complexo, único. Possui estruturas interligadas. A água entra pelas raízes e atinge todas as estruturas da planta, chegando às folhas, que são o principal local onde se realiza a fotossíntese.

O ar que respiramos contém dióxido de carbono. Esse gás entra nas plantas pelas folhas. A luz do Sol fornece a energia para a formação da matéria orgânica (açúcar). E através da fotossíntese ela libera o Oxigênio, que respiramos.

O software

O Software começa como uma semente criado pelos gestores da empresa. A ideia é germinada e aprovada pela diretoria. A equipe de desenvolvimento planta o sistema. O sistema cresce, maximiza o lucro dos acionistas e em algum momento ele tem um fim.

O Software é complexo, único. Possui estruturas interligadas e componentes únicos. Os dados vêm do servidor de SQL / NoSQL, atinge todas as classes de negócio, chegando até o usuário. Que consome essa informação e gera o Oxigênio da empresa, maximizando o lucro dos acionistas.

O ar da empresa é investir nos seus processos operacionais. A energia do sol é imputados através das funcionalidades do sistema, gerando dados. Esses dados são a matéria orgânica. Que faz fotossintese e libera oxigênio. E assim o ciclo reinicia.

Jardineiro

O Jardineiro é o responsável por manter esse organismo vivo. Ele cuida da agua. Põe na sombra ou deixa exposto ao sol. Controla a temperatura e faz podas. Aplica defensivos agrícolas contra pragas e insetos. Opera maquinas e equipamentos especifica para jardinagem.

Arquitetos e engenheiros de software

A contractor working on a wooden deck in Pokhara

Eles são responsáveis por manter o sistema funcionando. Cuida do banco de dados. Faz o balanceamento do sistema. Aumenta instância no cloud em horários de pico. Controla as novas features que irão para produção. Cuida de SQL Injection e outras falhas para evitar ataques de pragas e insetos. Opera sistemas de monitoramento do banco e da aplicação.

A natureza importa

Engenheiros químicos, mecânicos e elétricos trabalham com elementos da natureza. São elementos imutáveis. Possuem comportamento previsivel, estudados e mapeados. Os elementos da tabela periódica não mudam.

Após o solo ter sido mapeado para construir um prédio, não vai se transformar de argiloso para arenoso.

A relação de força entre uma turbina, o vento e a interpéries do tempo é fixo.

A engenharia trabalha a partir de premissas que são imutáveis. Uma vez mapeado todas as váriaveis o resultado é sempre o mesmo.

Pedir para um engenheiro colocar o prédio 2cm para a direita é insanidade.

Sistema é mutável, ele nasce com a premissa de que vai mudar. Trocar o botão 2cm para a direita não é insanidade. Mapear todas as váriaveis do software não faz sentido.

O processo muda. As pessoas mudam. A empresa muda. O mercado muda. A demanda muda. A econômia muda. O software foi criado para atender a uma demanda que muda.

Software combina com vida. Software não combina com engenharia.

E você o que é? Um jardineiro de sistemas?