Ich bin jetzt noch reichlich eine Woche in meiner alten Firma und langsam sehe ich persönlich ein Ende im Berg von Arbeit auf meinem Tisch. Leider nicht wie ich gehofft hatte in der Form das der Berg beseitigt ist, sondern eher in der das Form das ich die Arbeit auf meine Nachfolger verteile.
Ich selbst hätte mir gewünscht die angebrochene Arbeit am neuen Shop noch fertig zu bringen, aber projektplanerische Defizite im Unternehmen verhinderten dies effektiv. Für die Firma ist dies zwar der verhältnismäßig ungünstigste Fall aber für mich selbst ist es sehr lehrreich, ich hoffe nur das meine mahnenden Worte nicht nur auf taube Ohren stoßen.
Lehrreich ist das ganze in der Hinsicht das ich mich immo mit ein paar liegengebliebenen Büchern beschäftige. Unter anderem auch das “Extreme Programming Manifest” von Kent Beck und meine alten Vorlesungsunterlagen aus der “Softwaretechnologie”. Beim letzten Projekt, wurde ich quasi ins kalte Wasser geworfen, es gab ein Konzeptpapier, welches die Front-End Funktionen des Shops beschrieb und vom Kunden abgenommen war. Ich machte mich also daran die Funktionen zu listen, die Möglichkeiten auszuloten und erstellte für mich selbst ein Arbeitskonzept. Ich nahm mir die Zeit alles Objektorientiert anzugehen (auch wenn ich mit PHP arbeiten musste) und entwarf für die Grundfunktionen Klassen und Strukturen mit Hilfe von ArgoUML.
Soweit sogut, die zur Verfügung stehende Zeit war von Anfang an zu knapp und ich war etwa zwei Wochen später fertig als geplant, nicht gut, aber im Limit der Branche. Der Kunde hatte zuerst noch einige Änderungswünsche die schnell erledigt waren, aber auf diese Wünsche folgten neue Wünsche und Änderungen und Umbauten. Aus dem kleinen Shop für 100 Artikel wurde so schnell ein System mit mehr als 500 Produkten und einem Funktionsumfang auf den jede Eierlegende Wollmilchsau stolz wäre. Dazu zählen unter anderem:
- frei konfigurierbare Produkte (Größe, Form, Farbe, etc.)
- Bestellungen auf Rezept mit Abhängigkeiten von der Krankenkasse
- Länderabhängige Preis- und Lieferkostenberechnung
- Sonderangebote basierend auf den Produkten im Warenkorb
Alles individuell entwickelt, aber vorher nicht vorgesehen. Wenn ich heute an das Projekt rangehen würde, ich würde nicht mehr versuchen von vornherein alles zu planen, ich würde mir eine Skizze der Funktionen machen, eine grobe Roadmap aufstellen und die Struktur konzipieren. Dann würde ich einen Basisshop entwickeln, dem Kunden vorlegen und ihn zwingen diesen an den Start zu bringen. Erst dann wenn der Kunde das Basissystem abgenommen hat und dieses in der Produktion ist würde ich über die zusätzlichen Funktionen nachzudenken. Würde Funktion nach Funktion implementieren und testen, ich glaube dann würde der Shop heute besser funktionieren und ich könnte ihn mit besserem Gewissen an den nächsten übergeben.
Aber die Welt ist ungerecht, schöne Softwareentwicklung ist nicht mit kleinen Budgets zu machen und vor allem nicht mit Kunden die nicht bereit sind mit den Entwicklern zu kooperieren, sondern die ihre Wünsche und Vorstellungen diktieren wollen. Mein Fazit aus den 8 Monaten Arbeit: “Softwareentwicklung lebt von der Kommunikation und nicht vom langfristigen Abschätzen von Möglichkeiten. Letzteres kann helfen den groben Rahmen einen Projektes abzustecken, aber keiner von uns hat eine funktionierende Kristallkugel, zumindest ist bei meiner die Garantie abgelaufen.”