Da habe ich erstmal eine freche Frage zurück:
Was kostet ein Haus?
Ja, was kostet denn jetzt ein Haus?
Verstehe mich nicht falsch, ich will der Frage nicht ausweichen oder mich aus der Verantwortung ziehen. Ich will darauf aufmerksam machen, dass die Frage im ersten Moment noch nicht beantwortbar ist. Auch nach einem längeren Erstgespräch ist es höchstens möglich Kosten in „T-Shirt Größen“ S, M, L, XL zu geben. Sind es Größenordnungen von 5.000€ oder reden wir von 50.000€?
Nochmal zurück zum Haus. Nehmen wir mal an du hast dich zum ersten Mal mit einem Architekten getroffen und du willst eine Antwort auf die Kostenfrage haben, so wird dir der Architekt eine ähnliche Antwort geben. Bestenfalls ist eine Größenordnung schätzbar. Bei Häusern kann sich allerdings die „normale Person“ vorstellen was denn so Kostenpunkte sein können. Lage, Grundfläche, Isolation, Erdwärme, Fernwärme, Passiv-Haus, …
Mit den Innereien von Software hast du aber wahrscheinlich selten zu tun gehabt, daher ist es irgendwie unklar wie denn so Kosten zusammenkommen. Daher dieser Post mit den größten Fragen die die Kosten beeinflussen.
iOS? Android? Beides?
Im Artikel Nativ? Cross-Platform? Hybrid? habe ich es bereits angesprochen. Soll die App sowohl auf iOS als auch auf Android verfügbar sein, so reden wir eigentlich von zwei Projekten und nicht nur einem. Dieser Punkt alleine macht somit einen Faktor 2 bei den Kosten aus!
Werden Benutzerdaten zentral verwaltet?
Haben eure Benutzer ein Profil? Kann man sich registrieren? Oder kannst du (oder die Benutzer selber) Inhalte online verwalten, die dann in der App angezeigt werden? Falls ja, so ist in der App nicht nur ein Login-Mechanismus möglich, sondern es braucht auch ein Backend, bzw. einen Server, der Daten ausspielt. Dies ist ein weiteres eigenständiges Softwareprojekt. Je nach dem haben wir jetzt 2 oder sogar 3 Softwareprojekte. 1-2 App-Projekte und ein Backend, wobei die Apps jetzt auch noch eine Abhängigkeit zum Backend haben. Das bedeutet zusätzlich mehr Komplexität. Sowohl in Programmlogik als auch in der Projektplanung selber.
Qualität
Genau so wie man bei Handwerkern sparen kann und am Ende gestümpt wird, so kann man auch bei Software „Abkürzungen“ einlegen. Soll die App als Prototyp nur schnell auf den Markt geschmissen werden? Wenn ja, dann kann man sich Kosten sparen, weil die langfristige Entwicklung nicht bedenken muss. Je langfristiger das Projekt jedoch geplant ist umso mehr solltest du den Fokus auf Softwarequalität lenken. Genau wie bei einem Haus kann es dafür sorgen, dass du später viel, viel weniger Wartungs- und Reparaturkosten hast.
Design
Genügt es die iOS und Android Standardkomponenten zu benutzen ohne viel an Farben und Ausrichtung zu verändern? Oder soll hier und da schon Aufwand investiert werden um die App schön zu machen? Oder gibt es wirklich den Rundumschlag mit ausschließlich gestylten Elementen und animierten Übergängen bzw. Interaktionen? Eine weitere Frage ist wie sehr man auf unterschiedliche Konventionen zwischen Android und iOS eingehen will. Designs müssen ja erst erstellt werden bevor sie in Software gegossen werden können. Je mehr Unterschiede man zulässt umso zufriedener sind wahrscheinlich die Benutzer, nur müssen diese Unterschiede ja auch gebaut und bezahlt werden.
Mehrsprachigkeit
Ja, genau. Dies ist ein Thema, das gerne vergessen wird. Du hast dein Handy wahrscheinlich auf Deutsch eingestellt. Stellst du es auf Englisch um, so werden all die vorher deutschen Apps plötzlich auch englisch sein. Das zu bauen ist an sich nicht schwer, aber wo kommen die Übersetzungen her? Im besten Fall kann der Entwickler Deutsch und Englisch erledigen, aber der Rest muss wo anders her kommen. Ebenso muss mit jeder neu hinzugefügten Sprache ein Korrekturlauf durch die App erfolgen. Der Bildschirm hat nur begrenzt viel Platz und es passiert gerne, dass in anderen Sprachen plötzlich Texte deutlich länger sein können und das Layout kaputt geht. (Tipp: teste alle Features für jede Sprache auf mindestens zwei unterschiedlich großen Geräten. Meine Lieblingskombination um Fehler zu finden ist z.B. Französisch auf einem iPhone SE.) Jede Korrekturschleife kostet Zeit und somit Aufwand.
Wie ausgereift ist die Idee?
Mit dieser Frage will ich nochmal den Bogen zum Anfang des Artikels ziehen. Einerseits muss klar sein, dass eine unausgereifte Idee nicht nur einen Unsicherheitsfaktor darstellt, weil man nicht weiß wie viel noch „oben drauf“ gebaut werden muss“. Andererseits kann die Unsicherheit selber auch viele Kosten verursachen. Ist ein Feature erstmal gebaut, so wurde es gebaut. Der Aufwand wurde getätigt und bezahlt. Gibt es jetzt eine Planänderung, so muss entweder etwas umgebaut oder vielleicht sogar verworfen und anders neu gebaut werden. D.h. man hätte sich Aufwand sparen können wenn man das Konzept früher ausgereift hätte. Bedenke jedoch, dass selbst mit einer perfekt ausgereiften Idee Software nicht sicher geschätzt werden kann. Dies ist sogar ein Forschungsfeld von Universitäten und auch die haben noch keine Antworten wie man Software richtig schätzt.
Zusammenfassung
Ich hoffe ich konnte dir eine grobe Übersicht über die größten Fragen geben die Kosten eines App-Projektes bestimmen. Je weiter man versucht in die Zukunft zu schätzen umso schwieriger wird es. In einem anderen Artikel erwähnte ich bereits Agile Softwareentwicklung in diesem Kontext. Ist ein Projekt groß genug, dass es am Stück schwer einschätzbar ist, so kann es Sinn machen das Projekt in Teilabschnitte zu unterteilen. Diese kann man nacheinander angehen und so weit schätzen wie es im aktuellen Moment wirklich praktikabel ist. Hier ist, wie so oft, eine gute Kommunikation mit dem Entwickler nötig.
Artikel zum Anhören
Diesen Blogpost gibt es auch als Podcast zum hören: