Diurno

Sobre concreto, lâmpadas e softwares

por: Matheus Araújo

data: 31/07/2017

Compartilhar no facebook
Compartilhar no twitter
Compartilhar no whatsapp
Compartilhar no linkedin
Compartilhar no facebook
Compartilhar no twitter
Compartilhar no whatsapp
Compartilhar no linkedin

Há um tempo falamos aqui no blog sobre mesas e softwares. Naquela ocasião dissemos que softwares são como mesas, constroem seu sentido à medida que sua utilidade é definida.

Dessa vez, vamos comparar softwares a velas e lâmpadas.

E para que essa comparação faça sentido, vamos usar o case de um dos nossos clientes.

Nosso cliente tem um problema bem interessante: ele presta serviços de concretagem. E pela natureza do concreto, sua produção deve iniciar pouco tempo antes de ele ser aplicado na obra. E o momento de ser aplicado na obra é definido por uma série de questões da própria obra.

O início dessa produção acontece nos silos que ficam nos chamados pontos de carga. O concreto é então levado até a obra por caminhões betoneiras, que o tempo todo vão movendo a mistura de cimento, água, areia, brita e outros aditivos. O caminhão então chega na obra, aplica o cimento, e volta para o ponto de carga para fazer uma nova viagem.

Quando você precisa atender a uma obra, esse processo não é tão complicado.

O ponto é que nosso cliente atende a muitas obras ao mesmo tempo.

Cada obra precisa do concreto em um determinado horário; muitas vezes, várias obras no mesmo horário. E durante o dia essa necessidade pode mudar por várias questões que são difíceis de prever. A quantidade de caminhões betoneiras é limitada, claro. AH! E existem diferentes pontos de carga espalhandos pelas cidades também, outra variável para o problema.

Esse é um problema de otimização clássico. Queremos atender ao maior número de obras possível, utilizando o menor número de betoneiras, saindo dos pontos de carga mais próximos.

Bom, explicado o problema do nosso cliente, o problema que nós fomos resolver não foi exatamente esse. Pô, sério!? Sim, esse já estava resolvido. Nosso cliente tem um software que faz essa otimização.

O problema que ajudamos nosso cliente a resolver foi o da interface com esse software otimizador.

E aqui fica um aprendizado.

Boas interfaces são tão importantes quanto bons códigos. E não estamos falando apenas de botões bonitinhos com cores que combinam. Estamos falando de interfaces que sejam simples, intuitivas e completas para seus usuários.

Legal. Mas e as velas e lâmpadas?

Bom. Velas e lâmpadas de maneira geral resolvem o mesmo problema: iluminar.

Na história da humanidade, as velas surgiram primeiro, fala-se em 50 mil anos antes de Cristo. Já a lâmpada incandescente, é do século XIX.

Não foram quase 52 mil anos de evoluções constantes e sequenciais que transformaram gordura animal com fibra de plantas em um filamento de tungstênio dentro de um bulbo com gases inertes. Foi uma sacada instantânea e utilizando meios bem diferentes dos originais.

Construir software, às vezes, é um pouco disso, você precisa se abster do pensamento corrente pra enxergar o problema por uma nova ótica e propor uma nova solução.

E foi isso que nós fizemos, durante duas semanas fizemos um Design Sprint com os envolvidos no sistema que iríamos modificar e reconstruímos toda a interface.

Os usuários finais estão bem felizes com a solução que propusemos e implementamos.

P.S.: Pra quem ficou curioso sobre as tecnologias que implementamos no código, há esse projeto no GitHub com um fonte usando a mesma arquitetura.