Sobre Desenvolvimento de Software, Bicicletas e Pizzas

Construir software é uma atividade criativa, não algo que se faz em uma linha de produção, como em uma pizzaria, logo não é como fazer uma pizza de calabresa. Essa ideia ou analogia, de que desenvolver software é um processo estático e sempre igual, é desvirtuada e falha. Neste post vou te explicar o porquê e contar como fazemos aqui na ateliware.
Lauri P. Laux Jr | 2 de setembro de 2021

Em um mundo cada vez mais tecnológico e conectado, criar um novo produto digital é um enorme desafio. Quantificar, estimar e prever quando esse produto estará pronto é uma dos exercícios mais desafiadores para empresas desenvolvedoras de software.

Bicicletas para a mente

A frase foi dita por Steve Jobs no início da jornada da Apple como uma das empresas que transformaram para sempre a nossa forma de trabalhar. A frase tentava mostrar o computador e a tecnologia como uma ferramenta criativa concebida para resolver problemas e para criar desde arte até planilhas complexas.

Adoro essa frase. Ela sintetiza de forma brilhante o que, para mim, é o desenvolvimento de software: uma atividade criativa. Uma forma de expressar através de algoritmos e arte um pouco de quem nós somos como seres humanos. E, como toda atividade criativa, ela leva tempo para ser feita.

O mito da pizza

Mais de 30 anos depois que Jobs fez a analogia da bicicleta, eu fui trabalhar em uma nova empresa. Tinha grandes expectativas porque a tal empresa tinha uma fama de ser um ótimo lugar para trabalhar. Como tudo na vida, expectativas são, bem, apenas expectativas, e logo no início dessa nova jornada eu me deparei com o mito da pizza.

Enraizada nas convicções da liderança da empresa estava a analogia de que criar software e novas funcionalidades para aplicações existentes, era como pedir uma pizza de calabresa. Sim, com essas palavras. Uma vez que alguém pede uma pizza de calabresa, a pizzaria sabe quanto tempo vai levar desde o início da montagem da pizza, escolha de ingredientes, tempo de forno até o pedido chegar à sua mesa com aquele aroma característico de orégano.

Então, seguindo essa analogia, qualquer nova funcionalidade em um sistema seria apenas “mais uma pizza”, ou seja, fácil prever o tempo necessário para ficar pronta, quais ingredientes seriam usados e quando ela chegaria à mesa. Assim, atrasos e erros nesse processo seriam culpa do pizzaiolo, que não saberia o que está fazendo.

Outra coisa peculiar da empresa era pensar, e tentar se convencer, de que ela não era uma empresa de tecnologia. Por isso, não sendo, o mito da pizza era justificado.

Claro, os processos ainda podiam ser feitos manualmente e controles importantes e críticos da empresa ainda podiam ser feitos em planilhas gigantescas. Atualizações de tecnologia que eram importantes eram deixadas de lado por “não serem o foco da empresa”. E assim a pizzaria continuava tentando fazer pizzas com o mesmo forno pequeno, velho e perigoso que aguentava uma boa fornada diária há mais de 30 anos. E sofria muito para tentar entregar pizzas todos os dias, com pedidos cada vez mais estranhos e peculiares de clientes que pediam pizzas com ingredientes totalmente diferentes. Alguns clientes até pediam para tirar a massa da pizza.

O paradoxo da tecnologia

Trabalhar na pizzaria, digo, na empresa foi uma grande experiência porque me mostrou claramente o que eu já sabia de forma inconsciente. Nossas empresas, nossos governos e até mesmo nossas escolas não sabem o que é desenvolvimento de software em 2021, onde toda nossa vida, independentemente do segmento ou mercado que você esteja inserido, é controlada ou ao menos auxiliada por softwares.

Usamos software criado, “codado” por alguma pessoa, em equipamentos e processos que vão desde a máquina de cartões que usamos na padaria até a entrega de encomendas pelos Correios. E, pasmem, apenas uma pequena parcela da população sabe o que é software e uma parcela ainda menor sabe escrever software. Um paradoxo em uma sociedade dependente de software para viver.

O artesão e o ateliê

Desenvolver software de qualidade e com estimativas de prazo e custo assertivas é ainda tema de estudos acadêmicos nas mais diversas universidades e instituições de pesquisa do mundo. Nós, da ateliware, temos a nossa maneira, que aperfeiçoamos nos últimos 10 anos em projetos para os mais variados segmentos de mercado. E tudo começa entendendo que software não é pizza e sim um produto intangível, formado por algoritmos e regras criados por pessoas com base no pedido e desejo de outras pessoas.

Para que as expectativas de ambas as partes sejam alinhadas, é necessário dar um passo de cada vez. Um passo pequeno para que seja fácil voltar se estivermos no caminho errado, mas grande o suficiente para mostrar valor caso o caminho esteja correto. Depois de dar um passo, é preciso olhar ao redor e ver se estamos no caminho certo. E sempre perguntar se estamos com o mesmo entendimento. A pizza de calabresa que eu quero pode ser diferente da sua, pode não ter queijo (coisa que particularmente eu acho um absurdo) ou ter manjericão no lugar de orégano.

Essa é a essência do desenvolvimento de software ágil e algo que nós, da ateliware, tentamos seguir independente da metodologia usada. Nesse loop de aprendizado, erros são esperados. Queremos que esses erros sejam pequenos e precisamos aprender com eles. A base de todo aprendizado passa pelo erro, não existe aprendizado sem erro.

É um processo criativo, uma construção em conjunto entre nós e a empresa que estamos ajudando. Uma parceria que exige que estejamos sempre olhando para o produto da mesma forma, entendendo os desafios técnicos e de negócio com o mesmo peso e enfoque.

Nosso desafio é mostrar aos nossos clientes que é mais vantajoso dar passos pequenos com eventuais erros no caminho do que dar muitos passos e descobrir que chegamos à cidade errada apenas no final. Muitos, sem saber, ainda acham que fazer software é igual a fazer pizza, e nossa missão é explicar que não: computadores são bicicletas para a mente e software um trabalho de artesãos digitais.

Referência

https://www.brainpickings.org/2011/12/21/steve-jobs-bicycle-for-the-mind-1990/

Lauri P. Laux Jr
CTO at ateliware | Trabalhei muitos anos com Java para big corps, mas agora Python mora no meu coração. No tempo livre narro RPG, gamer de jogos single player e cervejeiro artesanal.