24. März 2021

Software Design – Gut vorbereitet ist die halbe Miete!

Erst durch die Analyse aller Möglichkeiten, Bedingungen und Anforderungen wird klar, was es zu tun gibt. Und auch erst dann können die Aufwände und somit die Kosten abgeschätzt werden. Deshalb setzen wir keine Lösungen ohne eine angemessene Voranalyse-Phase mit dem Kunden um.

Code design

Unsere Vorgehensweise

Wie wir dabei vorgehen und welche Punkte beachtet werden müssen, zeigen wir hier gerne auf. Selbstverständlich ist der Umfang dieser Punkte projektabhängig.

Immer wieder gerne wird die Entwicklung einer Applikation mit dem Bau eines Hauses verglichen. Tatsächlich gibt es viele Parallelen zum Hausbau, welche wir auch hier zur Veranschaulichung gerne aufgreifen.

  1. Zielsetzung
    Wie bei jedem Vorhaben muss das eigentliche Ziel zunächst hinterfragt werden und zum Schluss klar sein. Um die Parallelen zum Hausbau zu ziehen: Wird ein Haus für eine mehrköpfige Familie benötigt oder reicht eigentlich eine gemütliche Zweizimmer-Wohnung? Bei der Entwicklung einer Software-Lösung stellt sich eine ähnliche Frage: Was kann mir die Software ermöglichen, das ich heute nicht oder nur mühsam tun kann? Ist sie für mein Problem wirklich die richtige Lösung?
  2. Projektplan
    Beim Hausbau muss geklärt werden, wer was wann macht. Überlasse ich die Bauleitung einem Spezialisten oder übernehme ich als Bauherr diese Arbeiten? Selbstverständlich muss auch das Budget geklärt sein. Bei Software-Projekten ist das identisch.
  3. Rahmenbedingungen
    Beim Hausbau gibt es einige Vorschriften, Richtlinien und Gesetzte, die es einzuhalten gilt. Auch für Software-Projekte gibt es solche Rahmenbedingungen: Das können bspw. technische Vorgaben sein, die einen wesentlichen Einfluss auf das Projekt haben.
  4. Sicherheitskonzept
    Es gibt hierzulande wohl kaum jemanden, der ein Haus ohne (abschliessbare) Haustüre baut. Soll das Haus, resp. die Haustüre mit einem gewöhnlichen Schloss versehen werden, mit einem Fingerprint-Reader oder gar mit einem «Iris-Scanner»? Wie ein Haus muss auch eine Software-Lösung passend geschützt werden.
  5. Anforderungen bzw. User Stories
    Hier werden die Detail-Anforderungen aufgenommen und bilden die Grundlage eines erfolgreichen Software-Projektes. Bspw. möchte man eine kontrollierte Raumlüftung, um nicht lüften zu müssen oder das Haus nach Minergie-Standard zertifizieren zu lassen?
    Solche Anforderungen können in Software-Projekten als sogenannte User-Stories formuliert werden, also mit kurzen Beschreibungen aus Sicht des Benutzers.
    Beispiel: «Als Webshop-Kunde möchte ich mich einloggen können, um meine bisherigen Bestellungen zu sehen.»
  6. Technologie- bzw. Produkt-Wahl
    Kommt evtl. ein Fertighaus infrage oder sind die Wünsche zu individuell resp. einzigartig? Ähnliche Fragen stellen sich auch in Software-Projekten. Es kann sein, dass die Anforderungen so speziell sind, dass eine eigene Lösung entwickelt werden muss. Möglicherweise gibt es aber auf dem Markt ein Produkt, welches alle oder die meisten Anforderungen erfüllen kann.
  7. Screen Mockups
    Um sich das neue Zuhause besser vorstellen zu können, werden neben den Bauplänen oft auch Visualisierungen erstellt. In unseren Software-Projekten erstellen wir unter Berücksichtung einer guten User Experience sogenannte Mockups. Das sind einfach gesagt (klickbare) digitale Zeichnungen oder Bilder, die eine Vorstellung geben, wie die fertige Lösung aussehen wird.
  8. Schnittstellen und Umsysteme
    Ein Haus benötigt eine Infrastruktur wie einen Strom-, Wasser- oder Kanalanschluss. Auch viele Software-Lösungen benötigen «Anschlüsse». Dazu gehören Schnittstellen zu anderen Systemen, um wichtige Daten zu lesen oder zu schreiben. Solche Schnittstellen sollte man sie sich vorab genau ansehen, um bei der Umsetzung keine bösen Überraschungen zu erleben.
  9. Proof-of-Concept
    Bei Software-Projekten mit speziellen Anforderungen ist es oftmals hilfreich, mit einem Prototypen zu prüfen, ob eine Anforderung funktionieren wird. Gerade bei Projekten mit verschiedensten Umsystemen und Schnittstellen führt ein Prototyp schnell zu ersten Ergebnissen und liefert frühzeitiges Feedback bezüglich der Eignung eines Lösungsansatzes.

Wenn alles klar und im Detail geplant ist – was kostet denn nun das Traumhaus?

Es kann sein, dass beim Vergleich des vorhandenen Budgets mit den kalkulierten Kosten bestimmte Anforderungen (z.B. der Whirlpool auf der Terasse) doch nicht mehr eine so hohe Priorität haben. Das kommt auch in Software-Projekten vor. Man sollte genau überlegen, welche Funktionen so wichtig sind, dass man sie sofort umsetzen muss. Die Funktionen mit niedrigerer Priorität setzt man dann auf eine To-do-Liste (das sog. Backlog) für kommende Erweiterungen.

All diese Punkte müssen berücksichtigt werden, um ein Software-Projekt erfolgreich umzusetzen.

Jetzt Ihre Projektidee verwirklichen

Andreas Gugolz
Ihr Anpsrechpartner
@andreas.gugolz