Kosten einer Datenbank und der Datenbankentwicklung

Die Frage, wie viel Euro eine Datenbank kostet ist wichtig und ganz zurecht gestellt. Daher gehe ich als erstes darauf ein und lehne mich an einen Text von Luke Chung an, der ein in den USA tätiger, sehr erfahrener (Access-)Datenbankentwickler ist. 

Im Abschnitt eine Null zu wenig versuche ich eine Antwort auf die Frage zu geben, warum die Preisvorstellung des Kunden und der voraussichtliche Preis einer individuellen Datenbank oft weit auseinander gehen.

Warum ich nicht zu einem Festpreis arbeite - und warum das gut für Sie ist, können Sie anschließend lesen.

Beginnen möchte ich jedoch mit folgender Überlegung:

Können Sie sich es sich leisten, eine Datenbank erstellen zu lassen?

Die Antwort ist ein ganz klares Ja, weil eine Datenbank viel mehr ist, als nur eine Datensammlung. Die Erstellung einer Datenbank bedingt zugleich eine Strukturierung von Prozessen, ein Durchdenken, Analysieren und eventuell das Überarbeiten und Verändern, das Entfernen vorhandener oder das Erstellen neuer Strukturen und Prozesse. Vielleicht sind Prozesse derzeit auch nicht sichtbar und müssen zunächst erkundet und beschrieben werden.

Eine Datenbank bietet Ihnen daher viel mehr als nur eine Sammlung von Geschäfts- und Unternehmensdaten. Sie ermöglicht Ihnen neue Erkenntnisse zu gewinnen, die ohne die Datenbank, die dadurch und darin abgebildeten Strukturen vielleicht verborgen blieben. Die Datenbankerstellung ist zugleich eine Neu-/Umstrukturierung und Offenlegung eventuell verborgener Strukturen und Prozesse und damit auch Unternehmensberatung und Unternehmensentwicklung.

Meines Erachtens ist daher nicht zu fragen, ob Sie es sich leisten können, eine Datenbank erstellen zu lassen und was diese kostet. Die Frage die zu stellen ist, ist viel eher, was es kostet, auf eine Datenbank zu verzichten.

Wie viel Euro werden es voraussichtlich?

Mit nur wenigen Zahlen und kurzen Beschreibungen, wie viel einzelne Lösungen ungefähr kosten und was sie bieten, möchte ich Ihnen Anhaltspunkte für die Frage anbieten wie viel die Entwicklung „Ihrer“ Datenbank kostet.

  • Excel: Ab ca. 500 Euro. Hierbei kann es sich z.B. um ein für Sie speziell entwickeltes Makro, komplexe Formeln, abhängige Tabellen o.ä. handeln. Excel-Anwendungen werden häufig nur von Individuen oder wenigen Personen im Unternehmen genutzt. Ob Excel eine Datenbank ist oder nicht, soll an dieser Stelle nicht beleuchtet werden. Da Excel jedoch häufig zur Verwaltung und Auswertung von Daten verwendet wird, hat es m.E. durchaus eine Berechtigung hier genannt zu werden. Wussten Sie, dass sog. Pivot-Tabellen eine gute Möglichkeit der Auswertung mittels Excel bieten?
  • Access-Datenbank für einen Nutzer: Ab ca. 3.000 Euro. Es handelt sich um eine sehr einfache Datenbank, die wenige Ein- und Ausgabemöglichkeiten bietet. Eine solche Datenbank wird häufig nur von einem einzigen Nutzer verwendet.
  • Einfache Mehrnutzer-Access-Datenbank: Ab ca. 10.000 Euro. Solche Datenbanken werden von meist wenigen Nutzern gleichzeitig verwendet. Benutzerspezifische Rechte können notwendig sein – oft jedoch nicht. Im Vordergrund steht häufig der gemeinsame Zugriff auf bestimmte Daten.
  • Access-Datenbanken für ganze Abteilungen und solche die als ein Hauptarbeitswerkzeug bezeichnet werden können kosten häufig deutlich. Bei solchen Datenbanken sind höchstwahrscheinlich benutzerspezifische Rechte für Eingabe und Auswertung notwendig. Auf Datenschutz muss in verstärktem Maße geachtet werden. Auch finden sich bei genauem Hinsehen oft unterschiedliche Interessen der späteren Nutzer. 
    Was und wie intensiv Personen später mit der Datenbank arbeiten, beeinflusst ihre Interessen. Diese Interessen sollten möglichst im Voraus erfasst werden. Gemeinsam mit dem Entwickler kann festgestellt werden, was davon umgesetzt werden kann und soll. Die Interessen und Ideen können sich gegenseitig befruchten und das Endprodukt aufwerten oder sich gegenseitig behindern und miteinander konkurrieren. Eine frühzeitige und kontinuierliche Einbeziehung und der gemeinsame Austausch der späteren Nutzer kann daher den späteren Einsatz, die Zufriedenheit und Akzeptanz der Anwendung verbessern. 

Falls Sie derzeit schon eine Datenbank nutzen, lesen Sie bitte (auch) den folgenden Abschnitt.

Änderung und Erweiterung bestehender Datenbanken

Die Änderung und Erweiterung einer bestehenden Datenbank erscheint für den Nutzer oft als Kleinigkeit. Beispielsweise soll an einer Stelle ein neues Feld eingebaut werden. Eventuell soll auch ein neuer Bericht die Datenbank um gewisse Auswertungen erweitern, die in der neueren Zeit von der Unternehmensleitung angefragt werden etc. 

Scheinbar kleine Änderungen können für die Entwicklung großen Aufwand bedeuten: Der Entwickler muss sich zunächst einen Überblick über Ihre Datenbank verschaffen und ermitteln, wo mögliche Probleme auftreten könn(t)en, wo mit Wechselwirkungen zu rechnen ist, welche Beschränkungen es gibt etc. Dies bedingt eine Auseinandersetzung mit der Oberfläche, dem dahinter stehenden Code der gewisse Funktionen bereitstellt, anderen Objekten der Datenbank und auch der Datenstruktur.

Als Daumenregel kann gelten, je umfangreicher, älter und gewachsener Ihre existierende Datenbank, desto aufwändiger die Einarbeitung und Änderung bzw. Erweiterung. Die Kosten der Entwicklung einfacher Mehrnutzer-Access-Datenbanken werden schnell auch bei Änderungen bestehender Datenbanken erreicht.

Sollten Sie sich zunächst weiter mit dem Thema Preisfindung beschäftigen wollen, bieten Ihnen diese beiden kurzen Erklärungen Preisermittlung und Eine Null zu wenig weitere Informationen.

Eine Null zu wenig

Wenn Sie auf der Suche nach einem neuen Auto oder Fernseher sind, wissen Sie wahrscheinlich, wie teuer das Produkt werden wird. Ein Auto haben Sie eventuell schon in der Vergangenheit gekauft und wenn Sie beispielsweise bei einem Autohändler die ausgestellten Wagen ansehen, können Sie wahrscheinlich deren Preis recht gut schätzen.
Überraschend wäre es wohl, wenn ein Auto, das Sie auf 50.000 Euro schätzen 500.000 kosten soll und der Fernseher, dessen Preis Sie auf 2.000 Euro schätzen, tatsächlich 20.000 Euro kostet. Es wird nicht häufig vorkommen, dass Sie um eine Zehnerpotenz daneben liegen, also 10x soviel zahlen müssten wie erwartet!
Bei der individuellen Softwareentwicklung entsteht ein solcher Preisschock ständig. Spreche ich mit möglichen Kunden über ihr Projekt und die Preisfrage kommt auf, liegt oft die Vorstellung des Kunden um den Faktor 10 niedriger - also eine Null zu wenig. Erwartet der Kunde 1.000 Euro, muss er erfahren, dass es 10x so viel werden wird bzw. kann. Manchmal beginnt an dieser Stelle eine ungläubige Auseinandersetzung, dass ein solcher Preis doch gar nicht stimmen kann.

Warum liegen die Preisvorstellung des Kunden und der voraussichtliche Aufwand soweit auseinander?

Vielleicht liegt es daran, dass heute großartige Software für kleines Geld zu haben ist. Warum sollte man mehrere (zehn-)tausend Euro für individuelle Software zahlen, wenn man Windows für 100 Euro, Office für 70 und Spiele ebenfalls für einen ähnlichen Betrag kaufen kann? Bei solchen Überlegungen wird vergessen, dass die Herstellerfirmen ihr Programm mehrere tausend oder sogar millionen Male verkaufen. Individuelle Software hat dagegen nur einen einzigen Kunden, der alle Entwicklungskosten tragen muss.
Oder liegt es an der großen Zahl "kostenloser" Software? Facebook kostet nichts - oder? Eben doch - die Kosten sind nur versteckt! Facebook gibt viel Geld für seine Webseite aus, doch weder Sie noch ich zahlen dafür direkt. Werbung die sich an uns richtet zahlt den Preis für uns.

Ich denke, der wirkliche Grund liegt in der Kombination der folgenden zwei Punkte: Individuelle Softwareentwicklung ist etwas, das selten gekauft wird und schwer zu verstehen ist. Wenn es ein alltäglicher Kauf wäre, könnten Kunden aus den vergangenen Erfahrungen oder von anderen Personen lernen wie hoch die typischen Kosten für solch eine Entwicklung sind. Wenn bekannter wäre, welcher Entwicklungsaufwand dahinter steckt, wäre auch klarer, welche Zeit, Erfahrung und wie viel Geld benötigt wird.

Meinen Kunden versuche ich zu vergegenwärtigen, was alles notwendig ist um ihnen ihre individuelle Datenbank zu erstellen. Ich berate sie, so dass alles nach ihren Vorstellungen, Wünschen und Bedürfnissen angelegt wird und sie profitieren von meiner Erfahrung. Ich erkläre, dass alles getestst werden muss um sicherzustellen, dass später keine bösen Überraschungen auftreten und dass kontinuierlicher Support eine langfristige Investition ist. Nicht zu vernachlässigen, dass die Kunden eine einmalige Lösung erhalten, die genau auf das zu lösende Problem zugeschnitten ist und die sie verändern können wann immer sie wollen.

Bis sich herumgesprochen hat, warum häufig eine Null mehr am Preisschild zu finden ist als erwartet, werde ich Ihnen versuchen zu erläutern wie der Preis für Ihre Datenbank zustande kommt.

Dieser Text ist eine für die Veröffentlichung genehmigte, sinngemäße Übersetzung von http://www.jstreettech.com/armen-Off-By-a-Zero.aspx . An dieser Stelle möchte ich mich wieder einmal bei Armen Stein dem Autoren ganz herzlich bedanken.

Was Gartenpflege mit Softwareentwicklung gemein hat

- oder -

Warum ein Festpreis-Software-Projekt eine schlechte Idee ist

Denken Sie an Ihren Garten. Dieser braucht im Frühling ein wenig Pflege. Ein Beet soll angelegt, ein anderes umgegraben werden, weitere Arbeiten stehen ebenfalls an.

Obwohl Sie all dies auch selbst durchführen könnten, entscheiden Sie sich dafür eine Firma zu beauftragen: Diese hat entsprechendes Werkzeug, Erfahrung und Know-How.

Bei einem Treffen besprechen Sie die anstehenden Arbeiten, zeigen auf, was Sie sich wie in Ihrem Garten für dieses Jahr wünschen. Früher oder später kommt es dann zu Gesprächen über den Preis für die Arbeiten. Jetzt heißt es Verhandlungsgeschick beweisen: Sie möchten möglichst wenig für die Arbeiten bezahlen. Vielleicht hat ein Bekannter oder ein Nachbar von Ihnen ähnliche Arbeiten durchführen lassen und Sie wissen, wie viel dieser dafür zahlte. Die Firma möchte den Auftrag von Ihnen erhalten und wird daher vermutlich versuchen ein möglichst günstiges Angebot zu machen.

Festpreis = gut. 

Soweit, so gut. Aber sobald man sich auf einen Festpreis geeinigt hat, sind verschiedene Szenarien vorstellbar: Da wäre z.B. die Möglichkeit, dass die Arbeiten viel schneller als von Ihnen dem Auftraggeber erwartet erledigt werden: Wurden Sie dann übervorteilt? Vielleicht ist der Festpreis auch so niedrig, dass das Unternehmen - um rentabel zu arbeiten - Oberflächlichkeit statt Sorgfalt an den Tag legt. Oder Sie sind begeistert von den Fortschritten und beschließen direkt noch ein zweites Beet anlegen und Ihre Rosen beschneiden zu lassen. Das ganze soll, aus Ihrer Sicht, selbstverständlich noch zum vorher vereinbarten Preis geschehen - schließlich handelt es sich um den gleichen Garten, und solange noch die von Ihnen gewünschten Arbeiten nicht erledigt sind, fließt kein Geld? Vorstellbar.

Festpreis = doch nicht so gut!

Es wird deutlich, dass Festpreise verschiedene Probleme mit sich bringen - für beide Seiten der Geschäftsbeziehung. Das gilt auch für feste Preise bei Softwareentwicklung: Es ist sehr schwer, im Voraus zu überblicken und sich darauf zu einigen, was die Software tatsächlich später einmal können soll. Natürlich kann man versuchen Design-Festlegungen zu treffen und Feature-Listen zu erarbeiten, aber am Ende muss der Kunde zustimmen, dass die Software fertig ist. Das bedeutet allerdings, dass durch Festpreisvereinbarungen Entwickler und Kunde automatisch unterschiedliche Positionen in ihrer Beziehung zugewiesen werden, solche, die einer Langzeitbeziehung entgegenstehen:
Der Entwickler könnte seinen Preis zu hoch ansetzen um von vornherein mögliche Schwierigkeiten zu berücksichtigen die auftreten könnten. Nicht ungewöhnlich ist ein Preis, der dann mehrfach so hoch ist wie der tatsächliche Aufwand wäre.
Vielleicht wäre es noch schlimmer, wenn der Entwickler einen zu niedrigen Preis ansetzt, um den Auftrag unbedingt zu erhalten. Dies führt später zu Problemen, nämlich wenn der Kunde früher oder später Weiterentwicklung, Veränderungen und Verbesserungen der Software wünscht.
Der Entwickler wird auf Änderungswünsche warten und versuchen, die Extraarbeit in Grenzen zu halten - oder zumindest dafür extra bezahlt zu werden.
Der Kunde wiederum wird über Veränderungen diskutieren wollen und davon ausgehen, diese seien im Festpreisangebot enthalten gewesen. Gleiches gilt für eine Fehlerbehebung: Der Kunde erwartet eine kostenlose Fehlerbehebung was jedoch unterstellt, dass die Software vorher getestet und für gut befunden wurde bevor sie zum Einsatz kam. Solche umfangreichen Tests sind allerdings sehr aufwändig und teuer.

Entwickler als Teil des Teams

Ganz anders bei einer Abrechnung nach Aufwand: Der Entwickler ist eine Erweiterung des Teams des Kunden. Der Kunde kauft Expertise - kein Produkt. Dies bedeutet, dass jegliche angefallene Arbeit dem Kunden in Rechnung gestellt werden wird. Der Entwickler stimmt zu, Zeit effizient und effektiv zu investieren.
Der Kunde hat jederzeit volle Kostenkontrolle, da er über den Einbau von Features entscheidet. Zugleich hilft er Kosten zu reduzieren, da er Teile des Testens der Software übernimmt und Fehler und Probleme dem Entwickler mitteilt.
Steigen die Kosten, können Features niedrigerer Priorität auf später verschoben werden, um im Budget zu bleiben.
Kunde und Entwickler ziehen am gleichen Strang - die Beziehung wird länger anhalten und für beide Seiten fruchtbarer sein.

Der Ansatz der Entlohnung pro Stunde konnte viele Kunden überzeugen. Ich versuche einen möglichst realistischen Gesamtpreis in Aussicht zustellen - aber es ist und bleibt eine Schätzung. Diese Schätzung kann sich ändern - sowohl nach oben, als auch nach unten.

Ist der Umfang eines Projektes deutlich definiert und ändert sich nicht nachträglich, sind diese Schätzungen recht realistisch. Dass sich aber der Umfang eines Projektes nicht während der Entwicklung ändert, kommt allerdings selten vor:
Viele Projekte, besonders die komplexeren, werden umfangreicher, wenn der Kunde erst einmal die (neuen) Möglichkeiten erkennt und daraufhin weitere Features hinzufügen möchte. Manchmal jedoch wachsen Projekte einfach deshalb nach ihrem Start, weil erst dann entdeckt wird, dass zur Erfüllung der Wünsche des Kunden mehr notwendig ist als anfangs bekannt war. Genau wie beim Beispiel der Gartenarbeit, wo plötzlich und unerwartet Schwierigkeiten auftauchen können.

Wenn Sie das nächste Mal über eine Entwicklung zu einem Festpreisangebot nachdenken, bedenken Sie, was dies bedeutet. Nach meiner Erfahrung werden Sie, wenn Sie eine Abrechnung nach Aufwand wünschen, feststellen, dass dieses Vorgehen im Endergebnis weniger kostet und die Wahrscheinlichkeit einer erfolgreichen komplexen Projektierung dadurch steigt.

Aus diesem Grunde arbeite ich nicht für einen Festpreis, sondern rechne nach Aufwand ab.

Dieser Text wurde durch einen Artikel von Armen Stein (J Street Technology) inspiriert und ist mit seiner Zustimmung hier zu lesen. Vielen Dank.