
Na engenharia de software, existe uma ideia predominante de que um engenheiro deve usar um framework apenas quando compreende seu funcionamento interno. Isso é uma falácia.
Por que devemos conhecer o funcionamento interno — os detalhes importam tanto assim? Alguns podem dizer que a ignorância é uma bênção.
Motor de Carro
Vamos examinar o motor de um carro:
Quantos realmente sabem como o motor funciona?
Você pode me dizer por que é chamado de motor de 4 tempos?
O que cada tempo faz?
Qual é a diferença entre um motor de 4 tempos e um motor de 2 tempos?
Alguém?
E ainda assim dirigimos nossos carros sem pensar em “como” o carro está nos levando ao nosso destino.
Nós interagimos com o carro usando o volante, a alavanca de câmbio, o pedal do acelerador e os freios.
Quem se importa com como funciona, desde que nos leve ao nosso destino. Quando o carro quebra, levamos a um especialista.
A Competência Central de uma Empresa
Nos negócios, uma empresa possui conhecimento especializado que lhe permite ser competitiva. Isso é chamado de competência central da empresa.
Uma competência central pode ser um processo ou um produto.
Para permanecer competitiva, uma empresa deve melhorar incansavelmente sua competência central. Usar recursos para atividades que não apoiem a competência central da empresa enfraquece a vantagem competitiva da empresa. Isso abre a janela de oportunidade para que concorrentes superem a vantagem competitiva da empresa.
Essa ideia é melhor ilustrada com um exemplo.
Apple
A Apple é conhecida por sua simplicidade e seus produtos bonitos. Você pensaria que isso seria fácil de replicar, mas não é, basta perguntar à Samsung, HTC e Microsoft.
Por que essas empresas falharam? Porque simples é difícil e a Apple é especialista em simples.
A Competência Central de uma Pessoa
A competência central também pode se aplicar às pessoas.
O que te diferencia dos outros?
Para ter desenvolvido sua competência central, você teve que se focar rigorosamente em uma área, às vezes por anos, ganhando insights e conhecimento que te diferenciam dos outros.
Como em uma empresa, para manter sua vantagem competitiva você deve continuamente aprimorar sua competência central.
Usando Pequenas Peças
Um engenheiro de software não é diferente de uma empresa ou qualquer outro profissional. Devemos escolher o que aprendemos para permanecer alinhados com nossa competência central.
Entender os internos de cada framework que usamos não é prático e consome muito tempo. Espero que o autor do framework seja um especialista no domínio do framework, portanto, não preciso conhecer seu funcionamento interno.
Não é esse o ponto do software — usar bits de funcionalidade em caixa preta para produzir um trabalho maior e mais complexo? Acredito que sim.
No final, tudo se resume a foco e tempo, ambos limitados.
Autor: Chuck Conway é especialista em engenharia de software e IA Generativa. Conecte-se com ele nas redes sociais: X (@chuckconway) ou visite-o no YouTube.