
Quem trabalha com TI já percebeu que complexidade é o nome do jogo. Não importa se você está falando de mercado, negócios ou software, ela sempre aparece, pronta para transformar qualquer planejamento tranquilo em uma verdadeira odisseia. O segredo? Entender bem essas camadas para gerenciar melhor e entregar resultados com eficiência. O artigo Removendo a complexidade do Software sobrevoa essas dimensões invisíveis dos sistemas.
Então, além desse artigo, aqui no blog também temos diversos outros artigos sobre kubernetes, desenvolvimento, gestão, devops, etc. Veja alguns exemplos: Diferenças entre Paradigmas, Axiomas e Hipóteses, Desenvolver na empresa ou comprar pronto, Fuja da otimização prematura, entre outros.
Sumário
- Os Mercados: Uma Dança das Cadeiras Infinita
- Os negócios: Jogando Xadrez com Bolas de Cristal
- Software: O Espelho da Empresa
- Liderança Situacional em TI
- O que é IOF?
- Arquitetura Lambda e Arquitetura Kappa
- Voto nulo não anula eleição!
- Resenha do livro 'A arte de fazer acontecer'
- Domain Driven Design tático
- Como é a informação, vista como bem econômico?
- O que é a TAC?
Os Mercados: Uma Dança das Cadeiras Infinita
As interações sociais, a organização dos meios de produção e as transformações formam os mercados. Através dos indivíduos, esses grandes sistemas trocam produtos, serviços e capital. Assim, tudo se reorganiza constantemente, criando ou mantendo riqueza. Por exemplo, se um médico cobra 10 mil por uma cirurgia e uma pessoa paga, ambos aceitam que a transação vale a pena. Então, esse processo constante gera riqueza, sustentando a vida moderna em sociedade.
Há diversos mercados diferentes como o da medicina, o de tecnologia, o do direito, entre outros. Veja que há grande subjetividade na definição desse conceito, mas não é difícil enxergá-los. Essa subjetividade é a raiz da complexidade dos mercados. Eles são vivos, dinâmicos, auto-organizados. Saber entender essa complexidade e extrair seu valor é para poucos.

Os empreendedores tem papel fundamental nessa dinâmica onde tentem compreender, supor seu futuro, alocar recursos e esperar que o resultado seja positivo ao término de seus ciclos. Mas, vale destacar que como o mercado é vivo, esse trabalho precisa ser reorganizado continuamente para manter o negócio saudável como uma entidade útil.
Os negócios: Jogando Xadrez com Bolas de Cristal
Já o negócio está na mão do empreendedor que viu algo no mercado que vale ser explorado. Como o mercado é, de modo geral grande demais, ele busca apenas uma pequena fatia. O negócio também muito vivo e dinâmico, mas a capacidade de prever o futuro é maior embora demande muita destreza dos envolvidos.
O negócio se organiza em estruturas de setores, departamentos, squads e tribos. O design organizacional garante que a empresa perceba corretamente a complexidade vinda do mercado e consiga controlá-la. Estruturas mais simples do que o mercado exige geram vácuo de informação relevante. Por outro lado, estruturas excessivamente complexas sobrecarregam o trabalho. Diretores que se dizem bons têm o dever de criar ambientes otimizados, refletindo exatamente a complexidade natural exigida pelo mercado: nem mais, nem menos.
Há diversos frameworks que auxiliam na estruturação de uma empresa. O BSC ou Togaf são bons exemplos, mas destaco o Business Model Canvas. Ele é um modelo muito popular que visa simplificar as relações que envolvem a geração de valor da empresa com módulos como: Principais Parceiras, Proposta de Valor, Estrutura de Custos, Canais, etc. A Imagem a seguir mostra um pouco melhor.

Software: O Espelho da Empresa
Essa é a cereja do bolo. Criar um software complexo é muito fácil, pois mesmo os melhores desenvolvedores dependem de uma estrutura organizacional que nem sempre os trata adequadamente. Melvin Conway afirma que a estrutura da organização reflete diretamente no software produzido: empresas centralizadoras geram grandes monólitos; empresas fragmentadas e independentes criam software baseado em microcomponentes. Particularmente acho curioso que alguns times insistam em utilizar Microserviços e DDD em organizações completamente hostis, muitas vezes por capricho de CTOs, CIOs, Arquitetos e Techleads.
Mas o software pode ter uma nova camada particular de complexidade quando não há a padronização adequada no seu desenvolvimento. Veja que em alguns casos há uma zorra, sem qualquer padrão pela pressa de entregar funcionalidade ou por imperícia. Mas há outros em que há um excesso de padrões com CQRS, DDD e microservices para 100 usuários.
Outro ponto relevante são os grandes requisitos não funcionais que podem vir de 1) da velocidade em que o mercado muda afetando diretamente o negócio. E 2) na velocidade em que drivers estratégicos definidos pelo negócio são efetivamente absorvidos pela empresa. A depender dessas velocidades, um ambiente Cloud com gitops, por exemplo, e para outra, ambiente onpremise com virtualização.
Entretanto eu destaco que devemos ficar constantemente preocupados com a opinião de gurus de internet (desconfie, inclusive, desse artigo). A opinião deles quase sempre tem um cunho voltado para o software, portanto ele é enviesado desconsiderando o mercado ou o negócio que atua. Ponderação é fundamental nesse caso. Porém, embora deva desconfiar dos gurus, confie no seu time. Veja que eles são os grandes responsáveis por digerir toda essa complexidade e, ainda assim, entregar artefatos que gerem valor. Não menospreze isso.
Conclusão de Removendo a complexidade do Software
No final das contas, gerenciar complexidade não é só um desafio técnico, mas uma ação de equilibrar estratégias, equipes e ferramentas. Quem domina isso transforma caos em oportunidades e entrega resultados sustentáveis. Portanto, mantenha os pés no chão, os olhos abertos e siga firme, porque simplificar o complexo é a essência do sucesso em TI.
Ele atua/atuou como Dev Full Stack C# .NET / Angular / Kubernetes e afins. Ele possui certificações Microsoft MCTS (6x), MCPD em Web, ITIL v3 e CKAD (Kubernetes) . Thiago é apaixonado por tecnologia, entusiasta de TI desde a infância bem como amante de aprendizado contínuo.