{"id":630,"date":"2025-12-25T19:10:14","date_gmt":"2025-12-25T22:10:14","guid":{"rendered":"https:\/\/cahfelix.tech\/blog\/?p=630"},"modified":"2025-12-26T16:08:15","modified_gmt":"2025-12-26T19:08:15","slug":"ja-ouviu-falar-em-big-ball-of-mud","status":"publish","type":"post","link":"https:\/\/cahfelix.tech\/blog\/ja-ouviu-falar-em-big-ball-of-mud\/","title":{"rendered":"Ja ouviu falar em Big Ball of Mud?"},"content":{"rendered":"\n<p>Em algum momento da vida de quem lidera times de tecnologia, isso acontece.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>As entregas come\u00e7am a ficar mais lentas.<\/li>\n\n\n\n<li>Mudan\u00e7as simples viram riscos enormes.<\/li>\n\n\n\n<li>Estimativas crescem sem muita explica\u00e7\u00e3o.<\/li>\n\n\n\n<li>O time demonstra medo de mexer em partes do sistema.<\/li>\n<\/ul>\n\n\n\n<p>O produto continua rodando. O neg\u00f3cio n\u00e3o parou. Mas a sensa\u00e7\u00e3o \u00e9 de estar sempre apagando inc\u00eandio, sem ganhar tra\u00e7\u00e3o.<\/p>\n\n\n\n<p>Esse cen\u00e1rio tem nome. Big Ball of Mud.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Um caso comum na vida de um gestor<\/h2>\n\n\n\n<p>Imagine assumir um time ou um sistema que j\u00e1 entrega valor h\u00e1 anos.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>N\u00e3o houve uma grande decis\u00e3o errada.<\/li>\n\n\n\n<li>N\u00e3o houve um vil\u00e3o claro.<\/li>\n\n\n\n<li>O sistema s\u00f3 foi crescendo.<\/li>\n\n\n\n<li>Cada prazo apertado gerou um atalho.<\/li>\n\n\n\n<li>Cada urg\u00eancia virou uma exce\u00e7\u00e3o.<\/li>\n\n\n\n<li>Cada exce\u00e7\u00e3o virou regra.<\/li>\n<\/ul>\n\n\n\n<p>Quando voc\u00ea percebe, qualquer mudan\u00e7a exige um cuidado extremo. Tudo parece conectado com tudo. O conhecimento est\u00e1 espalhado na cabe\u00e7a de poucas pessoas. E o time passa mais tempo reagindo do que evoluindo.<\/p>\n\n\n\n<p>Esse \u00e9 o terreno perfeito para o surgimento de uma Big Ball of Mud.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">O que \u00e9 Big Ball of Mud<\/h2>\n\n\n\n<p>O termo Big Ball of Mud foi popularizado por Brian Foote e Joseph Yoder para descrever sistemas que at\u00e9 funcionam, mas n\u00e3o possuem uma arquitetura clara.<\/p>\n\n\n\n<p>N\u00e3o \u00e9 exatamente um padr\u00e3o arquitetural. \u00c9 a aus\u00eancia de um!<\/p>\n\n\n\n<p>Nesse tipo de sistema, regras de neg\u00f3cio, infraestrutura, integra\u00e7\u00f5es e decis\u00f5es t\u00e9cnicas est\u00e3o misturadas. O acoplamento \u00e9 alto. A separa\u00e7\u00e3o de responsabilidades \u00e9 baixa. Entender o impacto de uma mudan\u00e7a se torna dif\u00edcil.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Como uma Big Ball of Mud se forma<\/h2>\n\n\n\n<p>Ela n\u00e3o nasce grande. Ela cresce aos poucos.<\/p>\n\n\n\n<p>Alguns fatores comuns:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pressa constante para entregar<\/li>\n\n\n\n<li>Falta de tempo para refatorar<\/li>\n\n\n\n<li>Crescimento r\u00e1pido do produto<\/li>\n\n\n\n<li>Troca frequente de pessoas no time<\/li>\n\n\n\n<li>Aus\u00eancia de decis\u00f5es arquiteturais expl\u00edcitas<\/li>\n\n\n\n<li>C\u00f3digo orientado apenas a resolver o problema do agora<\/li>\n<\/ul>\n\n\n\n<p>Cada decis\u00e3o isolada parece razo\u00e1vel. O problema aparece no ac\u00famulo.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Sintomas cl\u00e1ssicos<\/h2>\n\n\n\n<p>Se v\u00e1rios pontos abaixo soam familiares, vale o alerta:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Arquitetura sem clareza<br>O c\u00f3digo \u00e9 complexo e n\u00e3o possui um design modular evidente.<br><\/li>\n\n\n\n<li>Alto n\u00edvel de d\u00edvida t\u00e9cnica<br>Solu\u00e7\u00f5es r\u00e1pidas geram problemas recorrentes no m\u00e9dio e longo prazo.<br><\/li>\n\n\n\n<li>Estrutura dif\u00edcil de manter<br>Qualquer altera\u00e7\u00e3o parece arriscada e demorada.<br><\/li>\n\n\n\n<li>Falta de separa\u00e7\u00e3o de responsabilidades<br>Tudo depende de tudo. Uma mudan\u00e7a pequena pode quebrar algo distante.<br><\/li>\n\n\n\n<li>Medo constante de bugs<br>O time evita mexer em certas \u00e1reas do sistema.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Impactos t\u00e9cnicos e de gest\u00e3o<\/h2>\n\n\n\n<p>Do ponto de vista t\u00e9cnico:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Baixa previsibilidade<\/li>\n\n\n\n<li>Dificuldade de testes<\/li>\n\n\n\n<li>Refatora\u00e7\u00f5es caras<\/li>\n\n\n\n<li>Evolu\u00e7\u00e3o lenta<\/li>\n<\/ul>\n\n\n\n<p>Do ponto de vista de gest\u00e3o:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Estimativas infladas<\/li>\n\n\n\n<li>Queda de moral do time<\/li>\n\n\n\n<li>Depend\u00eancia de pessoas chave<\/li>\n\n\n\n<li>Dificuldade de planejar o futuro<\/li>\n<\/ul>\n\n\n\n<p>O sistema funciona, mas cobra um pre\u00e7o alto do time.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Big Ball of Mud \u00e9 sempre um erro?<\/h2>\n\n\n\n<p>N\u00e3o necessariamente.<\/p>\n\n\n\n<p>Em alguns contextos, especialmente no in\u00edcio de um produto, a prioridade \u00e9 validar o neg\u00f3cio. Um design mais simples e at\u00e9 bagun\u00e7ado pode ser aceit\u00e1vel por um tempo.<\/p>\n\n\n\n<p>O problema come\u00e7a quando a Big Ball of Mud vira o estado permanente do sistema e ningu\u00e9m assume a responsabilidade de organiz\u00e1-la.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Como come\u00e7ar a resolver<\/h2>\n\n\n\n<p>N\u00e3o existe bala de prata. E grandes reescritas raramente funcionam.<\/p>\n\n\n\n<p>Caminhos mais seguros incluem:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tornar a arquitetura expl\u00edcita, mesmo que imperfeita<\/li>\n\n\n\n<li>Aplicar pequenas refatora\u00e7\u00f5es cont\u00ednuas<\/li>\n\n\n\n<li>Criar limites claros entre responsabilidades<\/li>\n\n\n\n<li>Investir em testes onde d\u00f3i mais<\/li>\n\n\n\n<li>Documentar decis\u00f5es arquiteturais<\/li>\n\n\n\n<li>Dar espa\u00e7o no planejamento para pagar d\u00edvida t\u00e9cnica<\/li>\n<\/ul>\n\n\n\n<p>Pequenos avan\u00e7os consistentes funcionam melhor do que grandes revolu\u00e7\u00f5es.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">A vis\u00e3o do gestor<\/h2>\n\n\n\n<p>Para quem lidera, reconhecer uma Big Ball of Mud n\u00e3o \u00e9 um fracasso. \u00c9 um sinal de maturidade.<\/p>\n\n\n\n<p>Sistemas complexos contam hist\u00f3rias.<br>Hist\u00f3rias de crescimento, press\u00e3o, escolhas dif\u00edceis.<\/p>\n\n\n\n<p>O papel da lideran\u00e7a \u00e9 criar um ambiente onde o time consiga sair do modo reativo e voltar a evoluir com seguran\u00e7a.<\/p>\n\n\n\n<p>Organizar isso, n\u00e3o \u00e9 s\u00f3 um desafio t\u00e9cnico. \u00c9 um trabalho cont\u00ednuo de cuidado com o sistema e com as pessoas que convivem com ele todos os dias.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Em algum momento da vida de quem lidera times de tecnologia, isso acontece. O produto continua rodando. O neg\u00f3cio n\u00e3o parou. Mas a sensa\u00e7\u00e3o \u00e9 de estar sempre apagando inc\u00eandio,&#8230;<\/p>\n","protected":false},"author":1,"featured_media":648,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25],"tags":[],"class_list":["post-630","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engenharia-de-software"],"aioseo_notices":[],"featured":false,"read_time":4,"_links":{"self":[{"href":"https:\/\/cahfelix.tech\/blog\/wp-json\/wp\/v2\/posts\/630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cahfelix.tech\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cahfelix.tech\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cahfelix.tech\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cahfelix.tech\/blog\/wp-json\/wp\/v2\/comments?post=630"}],"version-history":[{"count":5,"href":"https:\/\/cahfelix.tech\/blog\/wp-json\/wp\/v2\/posts\/630\/revisions"}],"predecessor-version":[{"id":669,"href":"https:\/\/cahfelix.tech\/blog\/wp-json\/wp\/v2\/posts\/630\/revisions\/669"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cahfelix.tech\/blog\/wp-json\/wp\/v2\/media\/648"}],"wp:attachment":[{"href":"https:\/\/cahfelix.tech\/blog\/wp-json\/wp\/v2\/media?parent=630"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cahfelix.tech\/blog\/wp-json\/wp\/v2\/categories?post=630"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cahfelix.tech\/blog\/wp-json\/wp\/v2\/tags?post=630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}