Software Design: Gut vorbereitet ist halb fertig


Wer keinen Plan für sein neues Haus hat, steht am Ende vor einer „windschiefn Hüttn“. Das gleiche gilt für Software-Lösungen. Deshalb machen wir eine intensive Vorprojekt-Phase. Wie wir dabei vorgehen, erklären wir in diesem Artikel.

Software Design: Gute Vorbereitung ist die halbe Miete
Würden Sie mit dieser Skizze allein den Hausbau beginnen? Hoffentlich nicht...

Sie ist eine ganz natürliche menschliche Eigenschaft: Die Ungeduld. Sobald man das Grundstück für das neue Haus gekauft hat, soll gleich das Haus darauf stehen. Und sobald man eine Idee für eine Software-Lösung hat, will man diese auch schon nutzen.

 

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. Auch bei Software-Projekten wird erst durch das genaue Durchdenken aller Möglichkeiten, Bedingungen und Anforderungen klar, welche Dinge zu tun sind.

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.

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 – vom Bauherrn über den Architekten bis hin zur Baufirma – was wann macht. Und klarerweise werde ich mir auch überlegen, welches Budget ich habe. Genau das Gleiche macht man für Software-Projekte.

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. Diese zeigt zwar noch nicht die Wandfarbe und den endgültigen Standort der Couch. Aber es fällt damit schon viel leichter, sich das neue Zuhause vorzustellen und nötige Änderungen zu machen. In unseren Software-Projekten arbeiten wir mit „Mockups“. Das sind Zeichnungen, die eine Vorstellung geben, wie die fertige Lösung aussehen wird. Auch diese zeigen 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 unserer Grafikerin nicht nur auf eine ansprechende Oberfläche, sondern auch auf Themen wie Usability. Ein Button in zarten Lindgrün mag schön sein – wenn er dadurch aber leicht übersehen wird, erfüllt er seinen Zweck nicht.

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 Software-Projekt. 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? Wie bekommt man den Boden so schön wellig? 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 (viele...)?

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.
 

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."


 
Falls Sie einen verlässlichen und erfahrenen Partner für die Umsetzung Ihrer Software suchen, sind Sie bei uns richtig. Wir freuen uns auf Ihre Anfrage!