Ich gebe zu, der Titel klingt ein wenig ketzerisch, denn augenscheinlich sind Softwareentwickler doch genau diejenigen, die sich damit auskennen müssten, wenn es um neue Software geht. Das stimmt ja im Prinzip auch, aber dennoch meine ich es ernst:
Gehen Sie mit einer Idee für eine neue Software zur Unterstützung einer Aufgabe Ihres Unternehmens bitte nicht gleich zum nächstbesten Entwicklungsteam und lassen sich ein Angebot machen!
Tun Sie das nicht, zumindest dann nicht, wenn Sie nicht wirklich ganz genau wissen, was Sie eigentlich wollen und handfest belegen können, dass Sie dieses nur durch eine Neuentwicklung erreichen können. Viel zu oft ist das gerade bei Kunden aus dem KMU-Segment, wie ich sie vielfach betreue, jedoch nicht im gewünschten Maß der Fall.
Teuer, langsam und riskant
Das Problem ist ganz einfach folgendes: In dem Moment, in dem Sie sich mit einer Software-basierten Projektidee an ein typisches Softwareunternehmen oder einen einzelnen Entwickler wenden, haben Sie - vielleicht ohne es bewusst wahrzunehmen - implizit schon eine ganz gravierende Entscheidung getroffen, die sich später kaum mehr korrigieren lässt, wenn Sie sich vielleicht doch als suboptimal oder sogar als fatal falsch herausstellen sollte, und Sie womöglich sehr viel Geld kosten kann. Sie haben nämlich damit eine Vorentscheidung getroffen hinsichtlich der Frage, ob eine Neuentwicklung von Grund auf tatsächlich Ihre Anforderungen am besten erfüllt. Häufig ist dieses nämlich nicht der Fall, zumindest nicht in dieser Eindeutigkeit, wie es oft zunächst einfach angenommen wird.
Sie sollten sich stets vor Augen führen, dass eine Neuentwicklung von Software mit allem was dazu gehört regelmäßig die aufwendigste, die teuerste, die langsamste und die mit den meisten Risiken verbundene Variante der Realisation eines IT-Vorhabens ist - und zwar mit Abstand! Termin- und Budgetüberschreitungen sind zudem auch bei vermeintlich kleinen Projekten und in den Händen von erfahrenen Leuten alles andere als selten. Von der erhöhten Gefahr des vollständigen Scheiterns einer Neuentwicklung möchte ich gar nicht reden. Wenn Sie nach betriebswirtschaftlichen Gesichtspunkten an die Angelegenheit herangehen, und nichts anderes sollten Sie tun, sollten bei Ihnen unüberhörbar die inneren Alarmglocken schrillen, wenn sie dabei sind, sich ohne eine hieb- und stichfeste, ergebnisoffen durchgeführte Vorabanalyse auf eine Neuentwicklung von Software einzulassen. Beauftragen Sie Softwareentwicklung erst dann, wenn Sie Ihre Lösung wirklich ganz genau kennen.
Möblieren Sie ein Haus statt ein neues zu bauen!
Anschaulich vergleichen lässt sich dieser Aspekt mit dem Wunsch nach einer individuell gestalteten und ausgestatteten Immobilie. Auch hier folgt aus einem speziellen Anforderungsprofil nicht automatisch, dass Sie zwangsläufig zum Bauherren eines Hausneubaus werden müssen. Vielmehr gibt es zahlreiche Alternativen, die deutlich günstiger, schneller verfügbar und risikoärmer sein können. Finden Sie beispielsweise eine Bestandsimmobilie, welche Ihre Anforderungen auch nur grob erfüllt, aber noch nach Ihren Wünschen renoviert und möbliert werden müsste und vielleicht nur eine kleine Umbaumaßnahme erfordert, haben Sie mitunter sehr viel Geld gespart oder könnten mit dem gleichen Budget z.B. bei der Innenausstattung mehr erreichen. Wenn Sie sich mit Ihrem Anforderungsprofil jedoch direkt an einen Bauunternehmer wenden, brauchen Sie sich nicht zu wundern, wenn dieser Ihnen wie selbstverständlich einen Neubau mit allen drum und dran durchkalkuliert und andere Möglichkeiten gar nicht erst in Betracht zieht. Warum auch, es ist nicht seine Aufgabe. Er baut Häuser.
"Das gibt es noch nicht, deshalb muss es neu entwickelt werden."
Im Softwarebereich ist die Situation ähnlich, aber um Größenordnungen komplizierter. Denn während man bei einer Immobilie vielleicht tatsächlich noch relativ einfach abschätzen kann, ob nun ein Neubau das Richtige für einen selbst ist oder nicht, ist das bei Software bei Weitem nicht so einfach, denn selbst die Grenzen zwischen dem, was eine Neuentwicklung ausmacht und was nicht, sind fließend.
"Ich habe bereits genau recherchiert und bin sicher, dass es keine Software gibt, die das tut, was ich benötige. Daher möchte ich die Software neu entwickeln lassen."
Diesen Satz habe ich in dieser oder sinnverwandter Form schon oft gerade von Auftraggebern aus dem KMU-Segment gehört. Und meistens stimmt es auch, dass sich eine entsprechende Software mit den gewünschten Eigenschaften am Markt nicht ohne Weiteres finden lässt. Aber diese Aussage gilt in ihrer Absolutheit oft nur für die spezielle Fachdomäne, in welcher der Kunde sich bestens auskennt. Was dabei vielfach vollkommen unberücksichtigt bleibt, ist die Betrachtung fachverwandter oder -fremder Systeme, die womöglich zwar im Kern Ähnliches leisten, aber aus einer anderen Fachdomäne stammen. Auch gibt es hochgradig generische Softwaresysteme oder Frameworks, welche eine bestimmte Aufgabenstellung auf einem sehr abstrakten Niveau und unabhängig von einer konkreten Fachdomäne lösen. Bei dieser Art von Software ist es nicht mehr offensichtlich, dass man womöglich auf einer solchen Basis mit größerer Hebelwirkung bei der Entwicklung aufbauen könnte. Denken Sie auch an den riesigen Bereich von frei verfügbarer Open-Source-Software und an die Anbieter von Komponenten, deren Produkte für den Einsatz in unterschiedlichen Szenarien konzipiert sind. Es ist schier unmöglich, hier noch den kompletten Überblick zu behalten. Und das sage ich als jemand, der sich seit Jahren fast ausschließlich mit der Realisierung von IT-Lösungen beschäftigt.
Schritt für Schritt
Egal wie groß oder klein Ihr Vorhaben auch sein mag, möchte ich Ihnen folgendes mit auf den Weg geben:
Halten Sie die richtige Reihenfolge ein!
Überprüfen Sie zunächst sehr genau und kritisch, ob eine Neuentwicklung von Software tatsächlich die beste Lösung für Ihr konkretes Anliegen ist. Eine Neuentwicklung ist fast immer eine Lösung, das ist schon richtig, aber ist es wirklich die beste? Ist es wirklich die einzige? Sind Sie sicher? Welche Alternativen gibt es? Lassen Sie sich dabei nicht allzu zu schnell von den vermeintlichen Vorteilen einer Neuentwicklung blenden. Es liegt in der Natur der Sache, dass eine Neuentwicklung stets diejenige Variante ist, welche sich bis ins kleinste Detail an Ihre Anforderungen anzupassen vermag. Es ist halt die Maximallösung. Aber bedenken Sie den Preis, den Sie hierfür zu zahlen haben! Und damit meine ich nicht nur den unmittelbaren Herstellungsaufwand. Bedenken Sie auch die langfristigen Folgen und die damit verbundenen Kosten. Um es akademisch-modern auszudrücken: Betrachten sie die TCO, die "Total Costs of Ownership", eben diejenigen Kosten die ein IT-System in seiner Gesamtheit direkt oder indirekt verursacht. Diese sind bei Individualentwicklungen regelmäßig am größten.
Bedenken Sie, dass in der wichtigen Frühphase des Findens des optimalen Lösungsansatzes vorschnelle Gespräche mit Entwicklern verzerrend wirken können. Entwickler neigen dazu, die Vorteile von radikalen Neuentwicklungen überzubetonen und sehr schnell einen Tunnelblick auszubilden. Aus Sicht eines Entwicklers ist das Herbeiführen der Maximallösung tatsächlich häufig das Beste. Und dabei möchte er Sie gar nicht übervorteilen, nein, im Gegenteil: Er ist oft wirklich davon überzeugt, dass die maximal an Ihre Anforderungen angepasste Variante für Sie die beste Lösung ist.
Eine Rolle spielt dabei folgender oft zu beobachtender Ping-Pong-Effekt: Der Kunde wendet sich bereits früh mit einem Anliegen an einen Entwickler und bittet diesen um eine Veranschlagung von Kosten und Aufwand. Ein gewissenhafter Entwickler kann eine solche Einschätzung aber nur dann in hinreichender Qualität liefern, wenn er über eine detaillierte Spezifikation der Anforderungen und Rahmenbedingungen verfügt. Also fordert er diese Informationen beim Kunden an und animiert ihn geradezu, möglichst detailliert und ausführlich vorzugehen. Der Kunde folgt diesem Aufruf und erarbeitet einen umfangreichen Anforderungskatalog, der zwar mitunter konkret anmuten kann, aber vielfach auf zahlreichen ungesicherten Annahmen basiert. Dieser Katalog wiederrum lässt dem Entwickler kaum noch Spielraum für andere Ansätze außer dem einer Neuentwicklung. Und ehe man sich versieht befindet man sich mitten im Prozess einer Systementwicklung. Die Beziehung gewinnt an Eigendynamik: Es folgen Entwürfe eines Pflichtenheftes, Angebote, Iterationsplanungen, Vertragsentwürfe etc. Und hierbei handelt es sich noch nicht einmal um einen Effekt, welcher nur mit externen Entwicklern auftritt. Auch wenn ein Projekt intern realisiert werden soll, lässt sich das beobachten. Manchmal ist der Effekt dann sogar noch stärker ausgeprägt, da auch ein interner Entwickler seiner Rolle manchmal dadurch gerecht zu werden versucht, indem er geradezu betont, jegliche an ihn herangetragene Anforderung im Rahmen einer Softwareentwicklung umsetzen zu können. Er befürchtet womöglich sogar latent, dass eine kritische Hinterfragung des Gesamtansatzes des Vorhabens für ihn mit Nachteilen verbunden sein könnte und beschränkt sich daher oft auf Einzelaspekte, die dann ausschweifend diskutiert werden.
Nehmen Sie sich die Zeit!
Sie fragen sich jetzt sicher, wie Sie es besser machen können. Wo liegt der systematische Fehler? Beim Entwickler? Bei Ihnen? Ich bin der Meinung, dass einer Hauptgründe der ist, dass man sich nicht erlaubt einzugestehen, dass man manchmal zu Beginn eines IT-Projekts einfach gar nicht ganz genau weiß, was man eigentlich möchte, auch wenn vor dem inneren Auge alles noch so konkret erscheinen mag. Es existieren häufig zwar mannigfaltige Vorstellung über das, was man versucht zu erreichen, man hat aber noch keinen Lösungsansatz unter ganzheitlicher Perspektive ausgearbeitet. Aber das ist nicht schlimm! Sie sollten nur in dieser Phase keine Fehler machen und sich von internen oder externen Beraten vorschnell auf den einen oder anderen Weg festlegen lassen.
Mein Ratschlag an Sie lautet: Nehmen Sie sich die Zeit, erst auszuarbeiten, welcher Lösungsansatz für Sie wirklich am besten ist. Seien Sie kreativ, finden Sie Alternativen. Wechseln Sie vor allem immer wieder die Perspektive. Und scheuen Sie nicht davor zurück, in dieser Phase auch die Einbindung der Unterstützung von externen Experten in Erwägung zu ziehen. Das dürfen durchaus auch Entwickler sein, wenn diese bereit sind, auch andere Lösung in Betracht zu ziehen. Machen Sie aber bereits bei der Kontaktaufnahme deutlich, dass Sie zunächst ein generelles Lösungskonzept erarbeiten möchten. Passen Sie aber auf, denn viel zu oft preisen entsprechende Dienstleiser zwar an, "lösungsorientiert" für Sie tätig zu werden, letztlich verstehen viele unter der optimalen Kundenlösung aber dann doch wieder nur ihre Haus-und-Hof-Technologie oder das Vorgehen, welches sie seit eh und je anwenden. Etwas anderes stand in Wirklichkeit nie zur Debatte. Achten Sie darauf, dass Ihr Gegenüber tatsächlich Ihr Geschäft verstanden hat und alle Beweggründe und Rahmenbedingungen kennt, die bei Ihrem Vorhaben zugrunde liegen.
Viel Erfolg!
Softwareentwicklung kann und wird regelmäßig ein wichtiger Bestandteil bei der Realisierung von IT-Lösungen sein. Als Faustregel sollten Sie jedoch versuchen, diesen Anteil stets so gering wie möglich zu halten. Sie sollten versuchen, nur diejenigen Teile neu entwickeln zu lassen, welche für Ihre Lösung einerseits essenziell sind und andererseits sich mit Sicherheit auf keinem anderen Wege realisieren lassen.
Ich wünsche Ihnen mit Ihrem IT-Vorhaben viel Erfolg und stehe Ihnen bei Bedarf mit Rat und Tat zur Seite. Sie erreichen mich unter thimm@2posiv.de oder telefonisch unter 030 / 69 20 63 20-1.
Sebastian A. C. Thimm
Über den Autor:
Sebastian A. C. Thimm ist Diplom-Kaufmann und Wirtschaftsinformatiker. Er konzipiert und realisiert ganzheitliche IT-Lösungen und -Strategien für Unternehmen vor allem aus dem KMU-Segment im Großraum Berlin-Brandenburg. Unabhängiger Technologieexperte ist er im Bereich .NET und anderen Microsoft-Technologien. Er ist Geschäftsführer und Gründer seines Unternehmens 2|posiv mit Sitz in Berlin: http://www.2posiv.de