About Concept First
Was ist Concept First?
Die Idee hinter Concept First ist ein simpler Prozess, dem Entwicklungsteams aller Größen folgen können. Der Prozess schränkt die Teams nicht in ihrer Freiheit bei der Umsetzung ein, sondern beschreibt eine Vorgehensweise, für einen guten Projektstart.e
Die Quintessenz und Aussage ist ganz einfach: bevor das Projekt abgeschätzt und gestartet werden soll, wird ein Konzept erstellt. Das klingt selbstverständlich, ist es aber gar nicht mal so sehr. Kleinere Software-Teams, egal ob als Dienstleister in einer Firma für externe oder interne Auftraggeber, bekommen oft ein Anforderungsdokument, woraufhin von ihnen erwartet wird, aus diesem Dokument alle Anforderungen herauszulesen und eine Abschätzung abzugeben.
In Wahrheit ist eine Abschätzung erst möglich, sobald die Anforderungen nicht nur verstanden wurden, sondern auch in einer strukturierten Form und in eindeutiger Formulierung existieren. Mockups sind ebenfalls nötig, da sie für das nötige Verständnis sorgen - erste Screendesigns ein Bonus.
Gerade für Softwaredienstleister ist der Grat oft sehr schmal, wie viel Zeit man denn in so eine Konzeptionierung stecken sollte, und wie viel davon man einfach im Projekt definiert, da eine professionelle Konzeptionierung eine anstrengende geistige Arbeit ist, wenn sie ernsthaft gemacht wird.
Eine Analogie
In anderen Branchen ist diese Vorgehensweise bereits seit langer Zeit üblich, besonders wenn es um umfangreiche und kostenintensive Projekte geht. Ein Beispiel: die Baubranche. Wenn ein neues Bürogebäude gebaut werden soll, benötigt es zuvor eine Planung - nicht nur für die Durchführung der behördlichen Genehmigungsprozesse. Einerseits hätte man als Bauherr gerne ein optisches Bild vom geplanten Projekt, andererseits benötigen es auch die Baufirmen für ein belastbares und vor allem vergleichbares Angebot. Bei der Planung eines Hauses müssen neben den Kundenwünschen verschiedene andere Aspekte betrachtet werden, wie beispielsweise die Einhaltung von technischen Vorschriften und Gesetzen, die Erfüllung von Mindestausstattungen, die technische Dimensionierung von Bauteilen, die Ermittlung des Energiebedarfes und vieles mehr. Für Kunden oft weniger augenscheinlich, aber genauso relevant ist das auch für die Entwicklung kundenspezifischer Software - der Umfang an technischen Vorschriften wächst (man denke nur an die Datenschutz-Grundverordnung), nicht spezifizierte Erwartungen aus scheinbaren “Marktstandards” müssen beachtet werden, nichtfunktionale Anforderungen müssen vorab überlegt werden (Performance, Bedienbarkeit u.a.), von diesen oft die grundlegende Architektur der Software abhängt. Concept First ist also auch ein Planungsprozess durch eine:n unabhängigen “Architekt:In” vor der Realisierung, der mehrere Aspekte des geplanten Prospektes gemeinsam mit dem Kunden berücksichtigt. Mockups und Screendesigns sind der Grund-, Auf- und Seitenriss des Softwareprojektes, und ein strukturierter Anforderungskatalog ist nichts anderes als ein (mehr oder minder) standardisiertes Leistungsverzeichnis für eine Ausschreibung.
Was ist also unser Vorschlag? Dieser folgende Prozess:
Wenn ein Softwareteam die Anfrage bekommt, ein Projekt umzusetzen, sollte die Antwort lauten: concept first. Bevor eine Aussage über die notwendigen Tätigkeiten und über den Aufwand getätigt werden kann, muss ein Konzept erstellt werden, von jemandem der sich darauf versteht, und in einer strukturierten Form, im besten Fall mit Mockups - erst dann ist eine Abschätzung sinnvoll möglich. Diese Leistung ist allerdings nicht als Akquirierungskosten zu sehen, sondern diese Leistung muss auch vergütet werden - nur das garantiert ein für den Auftraggeber optimales Ergebnis in hoher Qualität.
Natürlich kann jeder Auftraggeber berechtigt fragen: Warum soll er für diese Leistung zahlen? Bei den vorigen Projekten war das nicht notwendig? Woraufhin es eine sehr einfache Antwort gibt: weil eine professionell gemachte Konzeptionierung in strukturierter Form nicht nur hilft das Projekt überhaupt erst abschätzbar zu machen, vergessene Aufwände, Probleme und Alternativlösungen aufzeigt, sondern auch anderen Softwarefirmen für Gegenangebote gegeben werden kann.
Natürlich können Auftraggeber:Innen einfach zu mehreren Softwarefirmen gehen und solange nach einem Angebot fragen, bis sie eine kostenlosen Konzeptionierung erhalten. Firmen, die dem Concept First Prinzip folgen, sind der Überzeugung, dass Software komplex ist und ernstgemeinte Angebote nicht gratis erstellt werden können. Mit einem Konzept in der richtigen Form kann in vertretbarer Zeit ein kostenloses Vergleichsangebot erstellt werden.
Ist das dann nicht Projektplanung nach “Wasserfall”-Methodik? Das macht man doch nicht mehr?
Richtig, Wasserfall hat per se einige Probleme in der Durchführung und ist ein Grund, warum Agile Methodiken entwickelt wurden. In der Agilität fehlt aber oft der Blick aufs Große Ganze, der zur grundlegenden Software-Architektur führt. Concept first ist die Synergie aus Wasserfall und agiler Entwicklung. Auch für Projekte mit komplett ungewissen Features will man meist gewisse Randbedingungen festlegen - für wie viele Benutzer soll es skalieren? Wie erweiterbar soll das später sein? Welche Faktoren sind wichtiger: Geld, Zeit, Qualität, Erweiterbarkeit, Simultane Benutzbarkeit, Reaktionsgeschwindigkeit, Skalierbarkeit? Je nach Information wird ein Projekt anders geplant - ja, auch komplett ohne funktionale Anforderungen planen die Entwickler bei der Umsetzung und versuchen das Projektziel zumindest teilweise vorherzusehen, um keine doppelte Arbeit machen zu müssen.
Wo ist also der Unterschied?
Concept First erlaubt es durchaus, nach einer ersten Konzeptphase den restlichen Weg agil zu gehen. Es erlaubt per se sogar das Prinzip des agilen Fixpreises (mehr dazu).