Den heutigen und gestrigen Tag habe ich etwas intensiver mit Klassendesign und Überlegungen zum Datenbankschema gemacht. Zwar ist es in Anbetracht der Tatsache, dass ich noch nicht einmal meine Use Case-Sammlung Fertig habe, etwas verfrüht um mir schon konkrete Gedanken zur genauen technischen Implementierung zu machen, aber ich denke mal dass diese Tätigkeit durchaus gerechtfertigt ist. Warum? Ich habe technische Vorgaben durch das System selbst, die ich verwalten möchte. Andererseits habe ich natürlich auch meine "Vorgaben", wie die Verwaltung im Endeffekt für den Benutzer aussehen soll, und diese sollten möglichst nicht durch technische vorgaben beeinflusst werden.
Momentan laufen also zwei Entwicklungsansätze Ansätze parallel, und das sorgte just heute für Verwirrung. Das gestern noch vorgeschlagene Klassendesign für die Benutzerverwaltung (insbesondere aus E-Mail-systemtechnischer Sicht) war heute wieder mehrfach zentrale Bestandteil meiner Überlegungen. Und siehe da, es wurde wieder mehrfach verändert.
Nun ist mir als Ursache dafür klar geworden, dass ich hier zwei Prozesse miteinander zu verquirksen versuche, die in erster Linie nichts miteinander zu tun habe: Der technische/systemverwalterische Prozess und der Geschäftsprozess. Mal modelliere ich etwas nach den Vorstellungen des einen, mal nach denen des anderen. Und das sollte hier und jetzt aufhören, denn sonst komme ich nie auf einen grünen Zweig.
Ein paar Dinge sollten mir klarer sein, und hier ist ein Versuch der Klärung:
- Wer wird die Software am Ende einsetzen?
- Ich selbst, meinen Server. Aber: es gibt andere Menschen, die bereits ihr Interesse bekundet haben.
- Soll Consolvix eine möglichst flexible Softwarezusammenstellung unterstützen?
- Nein. Consolvix soll, insbesondere zu Beginn, genau die vorgegebene Systemkonfiguration möglichst optimal, sprich vollständig, verwalten können. Für andere Softwarekonfigurationen sollen aber später Zusatzmodule geschrieben werden können. Was also an Consolvix flexibel und universell gestaltet werden soll, ist "lediglich" die Modul-API.
- Soll die Software Geschäftsprozesse vorgeben oder soll sie möglichst Geschäftsmodell-unabhängig, also eher systemorientiert sein?
- Das ist die schwierigste Frage. Ich tendiere zur Antwort, dass sie möglichst meine Vorstellungen des Hostinggeschäftsmodells vorgeben soll. Grundgedanke ist dieser: die rein technische Administration lässt sich auch sehr gut mit Software wie Webmin erledigen, außerdem ist durch die Verlagerung der Konfiguration in die Datenbank bereits eine gewisse Abstraktion zum System gegeben. Insofern ist es möglich, die Systemverwaltung zu einem Großteil über PHPMyAdmin zu erledigen (mache ich zur Zeit). Außerdem spielt der buchhalterische Aspekt eine elementare Rolle: zwar werde ich im Rahmen der Diplomarbeit vermutlich nicht die ganze Rechnungsverwaltung implementieren, aber letzten Endes sollte sich Consolvix doch auf genau diese Aufgabe ausrichten.
Nundenn, mal schauen was diese Antworten mir bringen werden.