Gut vorbereitet ist halb fertig!

Softwaredesign: Das Vorprojekt

Sie ist eine ganz natürliche menschliche Eigenschaft – die Ungeduld. Aber wie unsere "Häusl-Bauer" in der Firma und einige unserer Softwarekunden festgestellt haben: Ohne genaue Planung wird aus der besten Idee nichts, was glücklich macht!

Deshalb setzen wir keine Software-Lösungen ohne eine intensive Vorprojekt-Phase mit dem Kunden um.

Was wir dabei tun? Hier eine Auflistung mit Erklärung.

Und da wir den Hausbau schon erwähnt haben, nutzen wir gleich das Beispiel, um die Vorgangsweise zu erklären. 

Die Vorprojektphase im Detail

1. Zielsetzung

Vor dem Hausbau muss ich mich natürlich fragen, welches Ziel ich habe. Brauche ich ein Haus, in dem eine zehnköpfige Familie problemlos unterkommt? Oder eigentlich eher einen gemütlichen Bungalow für zwei? Im Falle einer Software-Lösung stellt sich eine ähnliche Frage: Was kann die Lösung für mich tun bzw. mir ermöglichen, das ich heute nicht tun kann? Ist sie für mich und mein Problem wirklich die richtige Lösung?

2. Projektplan

Beim Bau des neuen Domizils werde ich mir natürlich überlegen, wer was wann macht – vom Bauherrn über die Architektin bis hin zur Baufirma. Und ich werde mir auch überlegen, welches Budget ich habe. Genau das Gleiche macht man für Softwareprojekte.

3. User Stories bzw. Features mit Zielen

Hier geht es dann schon um Details. Vielleicht möchte ich zum Beispiel unbedingt ein Fenster im Bad, um lüften zu können. Oder soll das die aktive Wohnraumbelüftung machen? Solche "User Stories" überlegt man sich auch für eine Software-Lösung (Beispiel: "Als registrierter Webshop-User möchte ich mehrere Kreditkarten zu meinem Benutzerkonto speichern können, um meine Bestellungen auf Privat- und Firmenkarten aufteilen zu können."). Diese detaillierten Angaben sind die Grundlage eines erfolgreichen Software-Projektes.

4. Rahmenbedingungen

Es ist nun einmal leider so, dass sich nicht jeder (außer vielleicht Friedensreich Hundertwasser) das verrückte Haus seiner Träume hinstellen kann. Es gibt einige Vorschriften, die es einzuhalten gilt. Auch für Software-Projekte gibt es solche Rahmenbedingungen: Das können technische oder organisatorische Vorgaben sein, die einen wesentlichen Einfluss auf das Projekt haben.

5. Sicherheitskonzept

Es gibt sehr wenige Leute, die kein Problem damit haben, wenn wildfremde Menschen durch ihr Wohnzimmer spazieren. Und die es gerne sehen, wenn diese die wertvolle Vase der Oma mitnehmen. Wie ein Haus gehört auch eine Software-Lösung geschützt. Deshalb erstellen wir ein Sicherheitskonzept und die passenden Maßnahmen dazu.

6. Screen Mockups

Heutzutage ist es schon normal sich eine 3D-Raumplanung seines Hauses machen zu lassen. Es fällt damit schon viel leichter, sich das neue Zuhause vorzustellen und nötige Änderungen zu machen. In unseren Softwareprojekten arbeiten wir mit "Mockups". Das sind Zeichnungen, die eine Vorstellung geben, wie die fertige Lösung aussehen wird. Diese zeigen zwar nicht das fertige Design, aber sie helfen dabei, sich ein Bild zu machen.

7. Grafisches Design

So, im Falle des Hausbaus wird es jetzt Zeit für die Entscheidung zur Farbe des Hauses, des Fenstermodells und der Schattierung der Dachziegel!

Dabei muss man meistens nicht auf ein Corporate Design Rücksicht nehmen. In unseren Projekten hingegen spielt es in den meisten Fällen eine große Rolle. Wir achten aber gemeinsam mit unseren Partnern (oder der Agentur des Kunden) nicht nur auf eine ansprechende Oberfläche, sondern auch auf Themen wie Usability.

8. Technologie- bzw. Produkt-Wahl

Nehme ich ein Fertigteilhaus und bin mit den möglichen Anpassungen zufrieden? Oder habe ich doch so individuelle Wünsche, die ich mir nur mit einem komplett eigenem Haus erfülle?

Ganz ähnliche Fragen stellen sich im Softwareprojekt. Es könnte sein, dass meine Anforderungen so speziell sind, dass ich eine eigene Lösung entwickeln muss oder eine bestimmte Technologie notwendig ist. Es könnte aber auch sein, dass es am Markt ein Produkt gibt, das alle meine Anforderungen (mit vielleicht leichten Anpassungen) erfüllen kann.

9. Schnittstellen-Evaluierung

Nur wenige Häuser werden komplett autark betrieben. Normalerweise braucht es Infrastruktur wie einen Gas- oder Kanalanschluss.

Auch viele Software-Lösungen brauchen "Anschlüsse". Dazu gehören Schnittstellen zu anderen Systemen, um wichtige Daten daraus ziehen zu können. Solche Schnittstellen sind manchmal schwierig. Daher sollte man sie sich vorab genau ansehen, um bei der Umsetzung der Software keine bösen Überraschungen zu erleben.

10.  Software-Architektur

Wer vorausdenkend plant, überlegt sich vielleicht, ob das Haus in Zukunft erweitert oder ausgebaut werden soll. Es könnte sein, dass in einigen Jahren drei Generationen unter einem Dach leben werden.

Dieses Thema ist auch für Software-Lösungen wichtig: Software "lebt" und entwickelt sich weiter. Anforderungen kommen hinzu, Rahmenbedingungen ändern sich. Eine gute Softwarearchitektur bedeutet, dass die Software wartbar, skalierbar und erweiterbar bleibt.

11.  Proof-of-Concept

Kommen wir zurück auf den schon erwähnten Friedensreich Hundertwasser: Manche seiner Ideen waren ziemlich ungewöhnlich. Um sicher zu gehen, dass sich diese umsetzen lassen, waren möglicherweise Proben nötig. Halten diese Mosaik-Steine auf diesem Untergrund? Welches Material verwendet man für den goldenen Teil eines Fernheizwerk-Schornsteins? Auch bei Software-Projekten mit speziellen Anforderungen kann ein Prototyp späteren Ärger ersparen.

12.  Planung der IT-Infrastruktur

Dass ein Haus eine Heizung braucht, ist in unseren Breiten unbestritten. Aber wie groß muss diese dimensioniert sein, um wirklich für wohlige Wärme zu sorgen? Solche Gedanken muss man sich auch für die eigene Software-Lösung machen. Keiner hat Freude mit Software, die nicht läuft, weil ein unterdimensionierter Server unter der Last in die Knie geht.

13.  Betriebsführungskonzept

In Mehrfamilienhäusern kümmert sich entweder der Hausmeister um Ordnung oder man engagiert eine Reinigungsfirma. Für die fertige Software müssen die Verantwortlichkeiten genauso geklärt sein. Es muss klar geregelt sein, wer inhaltlich und technisch für sie zuständig ist.

14. Technisches Software-Design

Jetzt geht es an das technische Feinkonzept. Umgelegt auf dem Hausbau geht es um Fragen wie: Wo soll der Kamin sein (Tipp: Möglichst nicht dort, wo der Fernseher stehen wird.)? Oder: Wie viele Steckdosen sollte es in jedem Raum geben?

15.  Software-Aufwandschätzung

So, jetzt wo alles im Detail geplant ist – was kostet das Traumhaus?

Nach dem Blick auf die Kostenschätzung gibt es zwei Möglichkeiten: Entweder man gibt freudig den Startschuss oder man braucht einen Schnaps und muss nochmals über seine Wünsche nachdenken. Es kann sein, dass beim Vergleich des vorhandenen Budgets mit den Kosten bestimmte Dinge (z.B. der Swimmingpool) doch nicht mehr so wichtig sind.

So etwas passiert auch oft in Software-Projekten. Man überlegt sich genau, welche Funktionen so wichtig sind, dass man sie sofort umsetzen muß. Die nicht ganz so wichtigen setzt man dann auf die To-do-Liste für die kommenden Erweiterungen.

Das Vorprojektphase muss sein

Eine ganz schön lange Liste, nicht wahr? Aber diese Punkte sind wichtig, um eine Software-Lösung zu entwickeln, die wirklich die Anforderungen und Wünsche erfüllt. Nur mit dieser Vorprojektphase können wir unseren Claim einhalten: "Wir entwickeln Software, die glücklich macht."

Niemand weiß, was er kann, bis er es probiert hat.
"The important thing is not to stop questioning."
"Gib einem Menschen einen Fisch, und du ernährst ihn für einen Tag. Bringe ihm bei zu fischen, und du ernährst ihn sein Leben lang."
"Ich habe keine Zeit zu diskutieren – meine Antwort ist meine Arbeit!"

Unser Team

Lernen Sie die Menschen in unserem Team kennen

Viel Know-how. Eine Menge Erfahrung. Spannende Hobbies. Und viel Freude an der Softwareentwicklung!
"Life is either a pursuit of happiness, or an expression of happiness."
"Der Vorteil der Klugheit besteht darin, dass man sich dumm stellen kann. Das Gegenteil ist schon schwieriger."
"Um ein Kind aufzuziehen, braucht es ein ganzes Dorf – um ein erfolgreiches Projekt durchzuführen ein eingespieltes Team."

Kontaktieren Sie uns

Wir freuen uns auf Ihren Anruf oder Ihre E-Mail!

Wie heißt es so schön? "Durchs Reden kommen d' Leut zam." Also, lassen Sie uns über Ihr Softwareprojekt reden und die richtige Lösung für Sie finden!