Ich hatte den Luxus, mehrere Datenbanken mittlerer Komplexität zu entwerfen, die alle in Unternehmen verwendet werden und über verschiedene Frontends verfügen, darunter Web, Access und C #.
Normalerweise habe ich mich hingesetzt und das Datenbankschema im Voraus ausgearbeitet. Das ergab für mich immer den größten Sinn. Es gab jedoch keinen einzigen Fall, in dem ich keine Änderungen vorgenommen, keine neuen Tabellen hinzugefügt oder mit Aspekten gelebt habe, die mich störten und zu spät waren, um sie zu beheben.
Ich glaube nicht, dass die Heilung darin besteht, zuerst den Code zu schreiben. Und ich denke nicht, dass das Problem "unzureichende Geschäftsanforderungen" sind oder zumindest keine, die vollständig hätte gelöst werden können. Die Benutzer wissen nicht, was sie brauchen, und ich habe nicht die Macht, sie zum Nachdenken zu bewegen, klüger oder bewusster zu werden oder meine Fragen besser zu beantworten. Oder sie streiten sich und ich werde aufgefordert, etwas auf eine bestimmte Weise zu tun.
Die Systeme, die ich baue, befinden sich normalerweise in neuen Bereichen, in die noch niemand zuvor gegangen ist. Ich habe nicht das Buy-in von der Organisation, die Ressourcen oder die Werkzeuge, um die Art von Arbeit zu erledigen, die ein Entwicklerteam von hochkarätigen Designfachleuten leisten könnte, die zehnmal so viel als Team bezahlt bekommen, wie ich für das Einrichten von Dingen verdiene zweimal die Zeit.
Ich bin gut in dem, was ich tue. Aber es gibt nur einen von mir, der das in einer Umgebung macht, in der "keine Entwicklung stattfindet".
Trotzdem kann ich Geschäftsregeln immer besser erkennen. Und ich sehe eine Art dritte Option:
Zeichnen Sie vor dem Entwerfen der Datenbank und vor dem Schreiben von Code grobe Bildschirme, in denen die Funktionsweise der Anwendung dargestellt wird. Sie müssen von Hand gezeichnet sein, um zu verhindern, dass jemand einen Kommentar zur Schriftart, zur Größe oder zu den Abmessungen abgibt - Sie möchten nur eine Funktion.
Mit Transparentfolien und Papierstücken können Sie ein- und auswechseln, eine Person als Computer, zwei technisch nicht versierte Benutzer (zwei sprechen laut) und eine Person als Moderator, der Notizen macht und zeichnet die Nutzer über ihre Denkprozesse und Verwirrungen aufklären. Die Benutzer "klicken" und ziehen und schreiben in Kästchen, der "Computer" aktualisiert den Bildschirm und jeder kann das Design erleben. Sie lernen Dinge, die Sie sonst nicht gelernt hätten, bis weit in den Entwicklungsprozess hinein.
Vielleicht widerspreche ich mir selbst - vielleicht IST es besser, Anforderungen zu entdecken. Die Idee ist jedoch, zuerst die Anwendung zu entwerfen, ohne Code zu schreiben. Ich habe damit im kleinen Maßstab angefangen und es funktioniert! Trotz der Probleme in meiner Umgebung hilft es mir, die Datenbank von Anfang an besser zu gestalten. Ich erfahre, dass eine Spalte in eine neue übergeordnete Tabelle verschoben werden muss, da es mehrere Typen gibt. Ich erfahre, dass der Arbeitsvorrat Daueraufträge enthalten muss, die nicht aus dem integrierten Bestellsystem stammen. Ich lerne alle möglichen Dinge!
Meiner Meinung nach ist dies ein großer Gewinn.