| Bellacosa Mainframe apresenta o KISS rules |
☕ Um Café no Bellacosa Mainframe
KISS Rules sem Mistérios
Quando um Programador COBOL Descobriu que o Arquiteto da Matrix Não Vencia Pela Complexidade… Mas Pela Simplicidade
"A maior demonstração de inteligência não é construir algo complicado. É construir algo tão simples que continue funcionando décadas depois."
Prólogo — O Código Secreto do Arquiteto
Depois de inúmeras batalhas contra o Agente Smith, Neo finalmente teve acesso ao núcleo da Matrix.
Esperava encontrar algoritmos impossíveis.
Equações gigantescas.
Milhares de níveis de abstração.
Mas encontrou algo completamente diferente.
O coração da Matrix era surpreendentemente simples.
Poucas regras.
Poucas interfaces.
Poucos componentes.
Neo olhou espantado para o Arquiteto.
— Isso é tudo?
O Arquiteto respondeu calmamente.
— A complexidade não está no código.
Está no mundo.
Nos usuários.
Nos negócios.
Nos requisitos.
Nos imprevistos.
Neo insistiu.
— Então por que não criar uma arquitetura extremamente sofisticada?
O Oráculo apareceu.
Serviu duas xícaras de café.
Depois colocou sobre a mesa dois relógios.
Um possuía centenas de engrenagens.
Outro tinha poucas peças.
Perguntou:
— Qual você acha que continuará funcionando daqui a cinquenta anos?
Neo sorriu.
Naquele instante compreendeu o verdadeiro significado do KISS.
O que significa KISS?
KISS significa:
Keep It Simple, Stupid
Em português:
"Mantenha tudo o mais simples possível."
Apesar do termo "Stupid" soar ofensivo em português, ele nasceu como uma forma bem-humorada de lembrar engenheiros de que a simplicidade costuma ser mais poderosa do que soluções excessivamente sofisticadas.
Hoje muitas empresas preferem versões como:
Keep It Simple
Keep It Short and Simple
Keep It Simple and Smart
Mas a essência permanece a mesma.
A origem do princípio
O princípio surgiu na década de 1960.
Foi popularizado pelo engenheiro Kelly Johnson, líder da famosa divisão Skunk Works, da Lockheed.
Johnson orientava sua equipe a desenvolver aviões militares extremamente eficientes, porém fáceis de manter em condições adversas.
Sua filosofia era simples:
Um mecânico em um campo de batalha deve conseguir reparar o avião com ferramentas comuns.
Se o projeto fosse complexo demais para ser mantido, ele já havia fracassado.
Décadas depois, esse princípio tornou-se um dos pilares da Engenharia de Software.
Matrix explica perfeitamente
Imagine duas versões da Matrix.
A primeira possui:
cinco componentes;
regras claras;
comunicação simples.
A segunda possui:
cinquenta frameworks;
cem microsserviços;
dezenas de filas;
múltiplas camadas;
configurações espalhadas.
Qual delas Neo conseguiria compreender primeiro?
Provavelmente a mais simples.
Simples não significa simplório
Esse é um dos maiores mal-entendidos.
KISS não significa fazer menos.
Significa fazer apenas o necessário.
Existe enorme diferença.
O COBOL nasceu seguindo KISS
Quando COBOL surgiu, seu objetivo era ser:
legível;
previsível;
próximo da linguagem humana.
Observe.
ADD VALOR
TO SALDO.
Ou.
IF CLIENTE-ATIVO
Mesmo décadas depois.
Ainda conseguimos entender.
Essa clareza foi uma decisão arquitetural.
Como nasce a complexidade?
Ela raramente aparece de uma vez.
Primeiro surge um pequeno framework.
Depois outro.
Depois uma camada.
Depois uma abstração.
Depois uma exceção.
Anos depois.
Ninguém consegue explicar a arquitetura completa.
Matrix Reloaded
O Arquiteto mostra para Neo inúmeras versões anteriores da Matrix.
Cada uma tornou-se mais sofisticada.
Mas também mais difícil de controlar.
Quanto maior a complexidade.
Maior o número de efeitos colaterais.
O efeito psicológico
Existe um fenômeno curioso.
Profissionais iniciantes frequentemente acreditam que:
"Código complicado impressiona."
Profissionais experientes descobrem justamente o contrário.
Código simples impressiona muito mais.
Porque é difícil escrever algo realmente simples.
O Programador COBOL Padawan
Imagine duas soluções.
Primeira.
IF CLIENTE-ATIVO
Segunda.
IF CLIENTE-ATIVO
AND WS-FLAG-01 = "S"
OR WS-FLAG-02 = "N"
AND WS-STATUS-XYZ NOT = ZERO
...
Qual será compreendida daqui a quinze anos?
O Agente Smith ama complexidade
Porque sistemas complicados escondem:
bugs;
inconsistências;
duplicações;
vulnerabilidades.
Quanto mais difícil entender.
Mais difícil corrigir.
Um exemplo inspirado na Matrix
Neo precisa abrir uma porta.
Versão simples.
Uma chave.
Versão complexa.
Quatro chaves.
Cinco senhas.
Três certificados.
Dois tokens.
Sete validações.
No final.
A porta continua sendo apenas uma porta.
O custo invisível
Complexidade gera:
treinamento maior;
documentação maior;
testes maiores;
manutenção maior;
risco maior.
Tudo cresce.
O impacto no Mainframe
Em ambientes IBM Z encontramos aplicações com quarenta anos de vida.
Sistemas assim sobrevivem porque muitos seguiram princípios como:
simplicidade;
modularização;
previsibilidade;
estabilidade.
Não porque eram sofisticados.
Curiosidade
Albert Einstein costuma receber a frase:
"Everything should be made as simple as possible, but not simpler."
Embora a autoria exata seja debatida, a ideia resume perfeitamente o KISS:
Simplifique.
Mas nunca elimine o essencial.
Quando KISS é ignorado?
Começam a surgir:
frameworks desnecessários;
padrões aplicados sem necessidade;
heranças enormes;
interfaces excessivas;
configurações infinitas.
Tudo para resolver problemas simples.
Um exemplo COBOL
Imagine um cálculo.
Versão simples.
COMPUTE TOTAL = PRECO * QUANTIDADE
Versão complicada.
Três programas.
Cinco CALLs.
Duas APIs.
Uma fila MQ.
Resultado idêntico.
Matrix e o Chaveiro
O Chaveiro representa uma lição interessante.
Ele cria chaves.
Não cem ferramentas.
Cada chave resolve exatamente um problema.
Essa é uma excelente representação do KISS.
Atenção!
KISS não significa evitar arquitetura.
Significa evitar arquitetura desnecessária.
A diferença
Arquitetura Elegante
Resolve o problema.
Arquitetura Complicada
Cria novos problemas.
O papel da simplicidade
Sistemas simples apresentam:
menos bugs;
menor custo;
maior previsibilidade;
onboarding mais rápido;
documentação menor.
Ferramentas ajudam
No universo IBM.
Ferramentas como:
IBM ADDI;
SonarQube;
COBOL Check;
Enterprise Analyzer;
ajudam a localizar:
duplicações;
complexidade ciclomática;
código morto;
módulos gigantes.
O papel da IA
A IA frequentemente sugere soluções sofisticadas.
Cabe ao engenheiro perguntar:
"Existe uma maneira mais simples?"
Essa talvez seja uma das perguntas mais importantes da profissão.
Os riscos
Quando KISS é ignorado.
Surgem:
overengineering;
manutenção cara;
dependências excessivas;
curva de aprendizado enorme;
baixa produtividade.
Erros clássicos
Adotar tecnologia apenas porque está na moda.
Aplicar Design Patterns em todo lugar.
Criar abstrações prematuras.
Usar cinco frameworks quando um resolveria.
Confundir inteligência com complexidade.
Boas práticas
Resolver primeiro o problema.
Medir antes de otimizar.
Escrever código legível.
Modularizar.
Eliminar duplicações.
Revisar continuamente.
Questionar toda nova dependência.
Aplicabilidade
KISS aparece em:
COBOL.
CICS.
Db2.
Java.
Python.
APIs.
Cloud.
Kubernetes.
Microsserviços.
IA.
É um princípio universal.
KISS e os outros princípios
Curiosamente.
KISS conversa diretamente com vários conceitos já vistos nesta série.
Ele reduz:
Spaghetti Code, porque incentiva clareza.
Lasagna Code, porque evita camadas desnecessárias.
Golden Hammer, porque escolhe apenas as ferramentas necessárias.
Big Ball of Mud, porque favorece organização.
Boiling Frog, porque dificulta o crescimento invisível da complexidade.
Death March, porque soluções simples costumam ser entregues e testadas mais rapidamente.
Não é apenas um princípio isolado.
É uma filosofia que influencia praticamente todos os demais.
O ensinamento do Oráculo
O Oráculo entrega dois mapas para Neo.
O primeiro possui centenas de símbolos.
Setas.
Anotações.
Cores.
Camadas.
O segundo mostra apenas três caminhos.
Neo escolhe imediatamente o segundo.
Ela sorri.
— Por quê?
Neo responde.
— Porque consigo entender para onde estou indo.
Ela coloca a mão sobre seu ombro.
"Um sistema que ninguém compreende deixa de servir às pessoas e passa a exigir que as pessoas sirvam a ele."
Lições para um Programador COBOL Padawan
Durante sua carreira você encontrará colegas extremamente inteligentes.
Alguns escreverão soluções impressionantes.
Mas observe atentamente os profissionais realmente admirados após vinte ou trinta anos de experiência.
Quase sempre eles possuem outra característica.
Escrevem programas fáceis de ler.
Escolhem nomes claros.
Criam módulos pequenos.
Documentam decisões.
Eliminam o desnecessário.
Esses profissionais sabem que a manutenção representa a maior parte do ciclo de vida de um software.
Quem simplifica hoje está ajudando um colega — ou a si mesmo — daqui a dez anos.
Curiosidades
O princípio KISS influenciou diretamente diversas metodologias modernas:
Agile, ao priorizar entregas simples e incrementais.
Extreme Programming (XP), com foco na solução mais simples que funciona.
YAGNI (You Aren't Gonna Need It), evitando funcionalidades imaginárias.
Lean Software Development, reduzindo desperdícios.
Unix Philosophy, que recomenda ferramentas pequenas fazendo uma única tarefa muito bem.
Embora tenham surgido em épocas diferentes, todas compartilham a mesma ideia: simplicidade gera sustentabilidade.
Conclusão — O Código Verde da Matrix Era Simples
Quando Neo finalmente enxergou o código verde da Matrix, ele percebeu que por trás de toda aquela realidade existiam padrões claros e elegantes.
Os sistemas mais duradouros seguem exatamente esse caminho.
O princípio KISS nos ensina que complexidade deve existir apenas quando ela é realmente necessária. Cada camada, cada framework, cada abstração e cada linha de código precisam justificar sua existência.
Para um Programador COBOL que trabalha com IBM Z, essa lição é ainda mais valiosa. Sistemas bancários, seguradoras e governos dependem de aplicações que continuarão sendo mantidas por décadas. Quanto mais simples, legíveis e previsíveis forem essas aplicações, maior será sua capacidade de evoluir sem perder confiabilidade.
No universo Bellacosa Mainframe existe uma máxima que certamente estaria escrita na parede da sala do Arquiteto:
"A verdadeira genialidade não está em criar uma Matrix impossível de compreender. Está em construir uma tão simples que qualquer Padawan consiga mantê-la funcionando mesmo cinquenta anos depois."
Porque, no fim, o software que atravessa gerações não é aquele que impressiona pela complexidade.
É aquele que continua resolvendo problemas quando todas as tecnologias da moda já ficaram para trás.
Sem comentários:
Enviar um comentário