Situação (antes da nossa atuação)
A TBDC Agro Software estava em um momento crítico de crescimento e enfrentava desafios significativos em sua arquitetura de software. O sistema da empresa era descrito como “orgânico”, com a maioria das aplicações utilizando um único banco de dados central, apelidado de “Gel”. Essa abordagem dificultava a escalabilidade e a separação clara de responsabilidades entre os diferentes componentes e usuários da plataforma.
Além disso, a empresa enfrentava problemas recorrentes com a sincronização de dados entre o servidor e os aplicativos voltados para produtores agrícolas e consultorias agronômicas. Com a expansão planejada para o novo aplicativo, “Solos”, a necessidade de uma solução mais robusta para a sincronização de dados tornou-se urgente.
A falta de uma governança de dados bem definida e a ausência de documentação clara sobre a arquitetura existente aumentavam os riscos de custo e complexidade, comprometendo a capacidade de evolução do software de forma segura e eficiente.
Implicações
Os desafios enfrentados pela TBDC Agro Software com a sua arquitetura de software orgânica e os problemas de sincronização de dados trouxeram várias dificuldades. A dependência de um único banco de dados centralizado limitava a escalabilidade da plataforma e dificultava a separação clara das responsabilidades entre os diferentes sistemas e perfis de usuários.
Esses problemas geravam lentidão no desenvolvimento e na implementação de novas funcionalidades, além de aumentar o risco de falhas críticas em momentos de expansão. A falta de uma governança de dados clara e de documentação adequada também ampliava o custo e o risco de erros, comprometendo a evolução do software de forma segura e sustentável.
O que fizemos
A EximiaCo desempenhou um papel fundamental na reestruturação da arquitetura de software da TBDC Agro Software, com foco em mitigar os riscos e custos associados à evolução do sistema. Para isso, nossas ações incluíram:
1. Governança de Dados: Introduzimos uma estrutura de governança de dados, com a definição clara de “donos” dos dados para cada aplicativo e sistema, melhorando a organização e a responsabilidade dentro do ecossistema de aplicações da TBDC.
2. Arquitetura Escalável: Propusemos a evolução de uma arquitetura mais escalável e resiliente, recomendando a separação do banco de dados único em múltiplas unidades, facilitando a separação de responsabilidades e a gestão de dados por contextos específicos.
3. Documentação de Arquitetura: Trabalhamos em conjunto com a equipe da TBDC para criar um diagrama C4 que documenta a arquitetura atual e seus fluxos de dados, fornecendo uma visão clara para futuros desenvolvimentos e manutenções. Também sugerimos a criação de um mapa de subdomínios e contextos delimitados (Bounded Contexts) para garantir uma visão estratégica dos sistemas.