Ich arbeite in einem Data Warehouse, das über viele Streams und Layer mit labyrinthartigen Abhängigkeiten, die verschiedene Artefakte verbinden, mehrere Systeme beschafft. Ziemlich jeden Tag stoße ich auf Situationen wie diese: Ich führe etwas aus, es funktioniert nicht, ich gehe eine Menge Code durch, aber Stunden später merke ich, dass ich es geschafft habe, die Prozesslandkarte eines winzigen Teils dessen, was ich jetzt weiß, zu konzipieren Da dies später am Tag erforderlich ist, frage ich jemanden und er teilt mir mit, dass dieser andere Stream zuerst ausgeführt werden muss. Wenn ich dies hier überprüfe (was auf einen scheinbar willkürlichen Teil eines enormen Stapels anderer codierter Abhängigkeiten hinweist), hätte ich dies getan das gesehen. Es ist unglaublich frustrierend.
Wenn ich dem Team vorschlagen könnte, dass es vielleicht eine gute Idee wäre, mehr zu tun, um die Abhängigkeiten zwischen Objekten sichtbarer und offensichtlicher zu machen, anstatt sie tief in rekursive Codeebenen oder sogar in die Daten, die diese enthalten, einzubetten muss vorhanden sein, weil es von einem anderen Stream bevölkert wird, vielleicht unter Bezugnahme auf ein bekanntes, erprobtes Software-Paradigma - dann kann ich möglicherweise meine Arbeit vereinfachen und alle anderen sind viel einfacher.
Es ist ziemlich schwierig, meinem Team die Vorteile davon zu erklären. Sie neigen dazu, Dinge einfach so zu akzeptieren, wie sie sind, und „denken nicht groß“, um die Vorteile einer neuen Konzeptualisierung des gesamten Systems zu erkennen - sie sehen das nicht wirklich, wenn Sie ein riesiges System modellieren können Effizient dann macht es es weniger wahrscheinlich, dass Sie auf Speichereffizienzen stoßen, eindeutige Einschränkungen und doppelte Schlüssel stoppen, Daten unsinnig machen, weil es viel einfacher ist, sie in Übereinstimmung mit der ursprünglichen Vision zu entwerfen, und Sie werden später nicht auf all diese Probleme stoßen, die Wir erleben jetzt, was ich aus früheren Berufen als ungewöhnlich kenne, was sie aber für unvermeidlich halten.
Kennt jemand ein Software-Paradigma, das Abhängigkeiten betont und ein gemeinsames konzeptionelles Modell eines Systems fördert, um die langfristige Einhaltung eines Ideals sicherzustellen? Im Moment haben wir so ziemlich ein riesiges Durcheinander und die Lösung für jeden Sprint scheint zu lauten: "Fügen Sie einfach hier und hier und hier etwas hinzu."