Trabalho em um Data Warehouse que origina vários sistemas através de muitos fluxos e camadas com dependências semelhantes a labirintos que vinculam vários artefatos. Praticamente todos os dias eu me deparo com situações como essa: eu corro algo, não funciona, passo por um monte de código, mas horas depois percebo que consegui conceituar o mapa do processo de uma pequena parte do que agora sei mais tarde, é necessário, portanto, pergunto a alguém e eles me dizem que esse outro fluxo deve ser executado primeiro e que, se eu verifiquei aqui (indicando alguma parte aparentemente arbitrária de uma pilha enorme de outras dependências codificadas), eu teria visto isso. É incrivelmente frustrante.
Se eu pudesse sugerir à equipe que talvez fosse uma boa idéia fazer mais para tornar as dependências entre os objetos mais visíveis e óbvias, em vez de incorporá-las profundamente em níveis recursivos de código ou mesmo nos dados que precisa estar presente devido ao fato de ser preenchido por outro fluxo, talvez referindo-se a um paradigma de software conhecido, experimentado e testado - para que eu possa tornar meu trabalho e todos os demais muito mais simples.
É meio difícil explicar os benefícios disso para minha equipe. Eles tendem a aceitar as coisas do jeito que são e não 'pensam grande' em termos de ver os benefícios de poder conceituar todo o sistema de uma nova maneira - eles realmente não vêem isso se você puder modelar um sistema enorme com eficiência, torna menos provável que você encontre ineficiências de memória, interrompa o fluxo de restrições exclusivas e chaves duplicadas, dados sem sentido, porque é muito mais fácil projetá-lo de acordo com a visão original e você não encontrará mais tarde todos esses problemas que agora estamos experimentando, o que eu sei ser incomum em empregos passados, mas que eles parecem pensar como inevitável.
Então, alguém conhece um paradigma de software que enfatiza dependências e também promove um modelo conceitual comum de um sistema, com o objetivo de garantir a adesão a longo prazo a um ideal? No momento, praticamente temos uma bagunça gigante e a solução que todo sprint parece ser "apenas adicione algo aqui e aqui e aqui" e eu sou o único preocupado com o fato de as coisas realmente começarem a desmoronar.