Pracuję w hurtowni danych, która pozyskuje wiele systemów za pośrednictwem wielu strumieni i warstw z zależnościami przypominającymi labirynt łączącymi różne artefakty. Prawie każdego dnia spotykam się z takimi sytuacjami: uruchamiam coś, to nie działa, przeglądam mnóstwo kodu, ale godziny później zdaję sobie sprawę, że udało mi się konceptualizować mapę procesu niewielkiej części tego, co teraz wiem później tego dnia jest wymagane, więc pytam kogoś, a oni mówią mi, że ten drugi strumień musi być najpierw uruchomiony i że jeśli sprawdzę tutaj (wskazując na pozornie dowolną część ogromnego stosu innych zakodowanych zależności), to bym miał widzieć to. To niezwykle frustrujące.
Gdybym był w stanie zasugerować zespołowi, że być może dobrym pomysłem byłoby uczynienie więcej, aby uczynić zależności między obiektami bardziej widocznymi i oczywistymi, zamiast osadzać je głęboko w rekurencyjnych poziomach kodu, a nawet w danych, które musi być obecny, ponieważ wypełnia go inny strumień, być może odwołując się do dobrze znanego, wypróbowanego i przetestowanego paradygmatu oprogramowania - wtedy mogę uprościć swoją pracę, a wszyscy inni są o wiele prostsi.
Trudno mi wyjaśnić mojemu zespołowi korzyści z tego. Zwykle akceptują rzeczy takimi, jakimi są, i nie „myślą za dużo”, widząc korzyści płynące z możliwości konceptualizacji całego systemu w nowy sposób - tak naprawdę nie widzą tego, jeśli można modelować ogromny system sprawniej, dzięki temu jest mniej prawdopodobne, że napotkasz niewydolność pamięci, zatrzymywanie strumienia unikatowych ograniczeń i duplikatów kluczy, bzdurnych danych, ponieważ znacznie łatwiej jest zaprojektować je zgodnie z pierwotną wizją, a później nie napotkasz tych wszystkich problemów, które doświadczamy teraz, co, jak wiem, jest niezwykłe z wcześniejszych prac, ale wydaje się, że są one uważane za nieuniknione.
Czy ktoś wie o paradygmacie oprogramowania, który podkreśla zależności, a także promuje wspólny model koncepcyjny systemu w celu zapewnienia długoterminowego przestrzegania ideału? W tej chwili mamy ogromny bałagan, a rozwiązaniem każdego sprintu wydaje się być „po prostu dodaj tę rzecz tutaj i tu i tutaj”, a ja jestem jedynym, który martwi się, że sprawy naprawdę zaczynają się rozpadać.