am 25. Januar 2012
Der Spruch „Don’t reinvent the squared wheel” ist wahrscheinlich einer der meistzitierten in der Softwareindustrie. Jedem ist klar, dass man Probleme, die bereits von jemand anderem gelöst sind, nicht neu lösen muss. Meist ist es ein Irrglaube, dass die Anforderungen, die in einem Projekt gestellt wurden, besonders sind. Bricht man zu implementierenden Features nur klein genug runter, so findet man immer Bausteine, die es so bereits gibt. Projekte besitzen meist in ihrem ganzen Alleinstellungsmerkmale, aber nicht in jedem einzelnen Feature.
Was passieren kann, wenn man etwas ganz besonderes, noch nie zuvor dagewesenes, versucht zu bauen, haben die Hamburger 2007 und folgende Jahre gelernt. Architektur muss nicht unbedingt in der Softwareentwicklung schief gehen, auch in der ursprünglichen Disziplin, der Architektur von Gebäuden, kann dies geschehen.
April 2007 begann der Bau der Hamburger Elbphilharmonie. Ein Meisterwerk der Baukunst war geplant und das Gebäude sollte neben drei Konzertsälen und Backstagebereichen auch ein Hotel, Gastronomiebereiche, 47 Eigentumswohnungen, eine öffentlich zugängliche Plaza auf 37 Metern Höhe und ein Parkhaus mit 500 Stellplätzen enthalten. Die Optik sollte an nichts erinnern, was bereits auf der Welt zu finden ist.
Vielen Entwicklern wird diese Situation sehr bekannt vorkommen. Nichts was es auf dem Markt gibt, deckt den Bedarf ab und so macht man alles selbst. Die Schätzung die man am Anfang eines solchen Mammutprojektes abgibt, sollte aber trotzdem möglichst genau sein. Gute Schätzungen beruhen auf Erfahrungswerten. Wenn diese nicht vorhanden sind, wird auch das Zieldatum nicht eingehalten werden können. Was passiert also mit einem Projekt wie der Elbphilharmonie? Zur ersten Verzögerung kam es 2010, die zweite wurde im Jahre 2011 angekündigt. Mittlerweile sind die Kosten von ursprünglich 77 Millionen auf 476 Millionen gestiegen und ein Ende ist nicht in Sicht.
Was man aus diesem Vergleich mitnehmen kann ist einfach. Wenn eine Architektur aufgesetzt wird, sollte man das bekannte Territorium so selten wie möglich verlassen, denn dort wo man sich nicht auskennt, verläuft man sich mit Leichtigkeit. Der Einsatz von bereits existierenden Frameworks und Bibliotheken ist in den meisten Fällen der Eigenentwicklung vorzuziehen.