27.05.2020

Projekte existieren nicht...

...zumindest nicht in der Softwareentwicklung. In den letzten zehn Jahren habe ich unzählige Male das Wort „Projekt“ gehört. Ehrlicherweise fast nie in einem sinnvollen Kontext. Nie habe ich in dieser Zeit ein erfolgreiches Projekt gesehen. Natürlich wurden Projekte unternehmenspolitisch als Erfolg verkauft, aber als wirklicher Erfolg wurden diese Projekte von der Belegschaft und Kunden nie wahrgenommen. Doch wie genau definiert sich denn ein Projekt? Im Folgenden eine Definition, die es in meinen Augen gut zusammenfasst.

„A project is temporary in that it has a defined beginning and end in time, and therefore defined scope and resources. And a project is unique in that it is not a routine operation, but a specific set of operations designed to accomplish a singular goal“ Project Management Institute

Software ist nie fertig

Mal angenommen eine Software erfüllt einen Use Case in Perfektion, es sind keine Bugs oder Sicherheitslücken vorhanden und die Usability ist so hervorragend, dass ein Kleinkind die Anwendung bedienen kann. Ganz abgesehen davon, dass ich die Verantwortlichen dafür gerne kennenlernen würde... Selbst dann ist die Software nicht fertig! Warum? Die Welt um die Software entwickelt sich weiter, und dies hat Auswirkungen.

Angreifer erkunden stetig neue Wege, und ihre Möglichkeiten entwickeln sich auch stetig weiter. Hundertprozentige Sicherheit existiert nicht, aber es sollte versucht werden. Verschlüsselungsalgorithmen die vor einigen Jahren noch als sicher galten, sind mit der Rechenleistung von heute knackbar. Eine schöne Veranschaulichung wie sich die Dauer zum Knacken eines Kennworts entwickelt hat kann hier gefunden werden. Dazu kommen Sicherheitslücken derer wir uns heute noch gar nicht bewusst sind, wie bspw. Meltdown.

Märkte entwickeln sich weiter. Wer vor 20 Jahren ein Auto mit Verbrennungsmotor produziert hat, sieht sich heute mit Elektroautos konfrontiert. Handyhersteller, die den Umstieg zu Smartphones verschlafen haben existieren heute nicht mehr oder sind bedeutungslos. Die Liste an Beispielen hierfür ist nahezu unendlich.

Durch neue Technologien entstehen Möglichkeiten, die früher undenkbar waren, und einen dazu zwingen sein Produkt zu verbessern. So ist es heute selbstverständlich, oder sollte es zumindest sein, dass eine Webseite für Mobile-Devices optimiert ist. Der nächste Spaß für Webentwickler werden Foldables. Den nächsten Hype kann nur die Glaskugel vorhersagen. Hologramme? Wenn wir in die Vergangenheit schauen, lässt sich auf jeden Fall sagen, dass die Verbreitung von Technologie in immer kürzeren Zyklen geschieht, und wir uns dementsprechend immer schneller anpassen müssen.

Lassen wir nun estäthische Aspekte außen vor, so sollten die vorherigen Argumente ausreichen um zu zeigen, dass eine Software entweder niemals fertig sein kann. Wird etwas anderes Versprochen, so kann dies zwangsläufig nur zu Unzufriedenheit beim Endnutzer führen.

Ein teurer Spaß

Wird ein Projekt ausgeschrieben oder bei einem Dienstleister beauftragt, so beginnt das Prozedere idealerweise mit einem Pflichten- und einem Lastenheft. Und genau hier liegt der Hase im Pfeffer. Als Kunde, der häufig nicht viel Erfahrung mit der Entwicklung und dem Betrieb von Software hat, ist es denkbar schwer, alle relevanten Anforderungen zu definieren.

Da wir leider in einer sehr monetär getriebenen Gesellschaft leben, werden Dienstleister, die realistische Aufwände in ihr Angebot schreiben üblicherweise benachteiligt. Stattdessen gewinnen die Schaumschläger, die dem Kunden das „too good to be true"-Paket versprechen. Also hohe Qualität, in kurzer Zeit zu geringen Kosten. Wie ein kluger Manager einst zu mir sagte: „Die wollen doch verarscht werden".

Die Konsequenz aus den bisherigen Worten ist, dass Projekte (fast) immer mehr Zeit und Geld in Anspruch nehmen als geplant. Und wenn wir mal abseits der Softwareentwicklung zum Berliner Flughafen oder nach Stuttgart 21 schauen, fühle ich mich in diesem Eindruck bestätigt.

Und jetzt?

Natürlich möchte ich das Geschäft von dem unzählige kleinere und wirklich große Unternehmen leben nicht pauschal verteufeln. Es gibt Szenarien in denen Projekte erfolgreich sein können.

Der Erfolg hängt stark von der Perspektive und der damit verbundenen Erwartungshaltung ab. Ist allen Projektbeteiligten bewusst, dass das Ergebnis ein Verfallsdatum besitzt, von mehr Kosten oder mehr Zeit ausgegangen werden sollte. So kann keine Unzufriedenheit aufkommen. Das schwierige hierbei ist es wirklich sicherzustellen, dass jeder die gleiche Erwartungshaltung hat und sich nach Realisierung des Projekts noch an entsprechende Warnungen erinnert. Dies bedarf üblicherweise einem hohen Maß an Einfühlungsvermögen und Menschenverstand. Im schlimmsten Fall wechselt zwischendurch ein Alpha-Tier in dem Konstrukt - stellt daher sicher, dass eure Warnungen auch schriftlich festgehalten sind.

Schafft ein zeitlich begrenztes Produkt, wie bspw. ein Gewinnspiel oder einen Award. Marketingagenturen praktizieren dies seit geraumer Zeit. Und neben einmaligen Aktivitäten hat es sich auch etabliert Webseiten regelmäßig zu relaunchen. Häufig reden wir hierbei auch eher von einer Integrationstätigkeit als einer Entwicklungsarbeit. Eine Webseite mit Hilfe eines existierenden Wordpress-Templates ist für mich keine Softwareentwicklung, sondern ein Customizing. Ist dem Kunden klar, dass er damit nicht das nächste AirBnB wird können beide Parteien glücklich werden.

Und dann existiert da natürlich noch die Möglichkeit es einfach trotzdem zu machen. Das schöne ist ja, dass keiner in diesem System dem anderen überlegen ist. Dann ist ein Projekt eben nicht so gelaufen wie geplant. Das passiert der Konkurrenz auch andauernd und das nächste Projekt findet sich bestimmt trotzdem. Übt euch nur am besten darin schlechte Nachrichten gut zu verkaufen und es euch nicht zu Herzen zu nehmen. Ich kann das nicht so gut und mache das auch nicht so gerne, aber jeder der diese Kunst beherrscht kann viel Geld mit Projekten verdienen.