Während einer Schulung, die ich letzte Woche gab, ging ich abends mit zweien der Teilnehmer etwas trinken. Dabei diskutierten wir lebhaft über aktuelle Trends der IT Branche und Softwareentwicklung. Natürlich durfte auch das Thema Apps nicht fehlen. Während unseres Gesprächs stellte sich heraus, dass die beiden Teilnehmer seit längerem die Idee zu einer wirklich tollen App haben. Leider – so räumten die beiden ein - fehlte aber bisher die Zeit, die Idee auch in die Tat umzusetzen.
Wir haben eine tolle App Idee, aber bisher hatten wir noch keine Zeit, die App zu entwickeln
Das Problem an dieser Aussage ist nur: Man hat nie genug Zeit, seine Ideen umzusetzen! Schließlich wird es immer etwas anderes geben, womit man seine Zeit stattdessen verbringen könnte. Außerdem ist es natürlich auch aufwändig, eine wirklich gute App zu programmieren.
Wenn man es aber einmal anders betrachtet, dann hat man die Zeit immer! Man muss sie sich nur nehmen und einfach mit der Umsetzung beginnen! Es muss – oder besser gesagt sollte – zu Anfang sogar gar nicht zu viel Zeit sein, die man in die erste Version seiner App steckt. Eine erste Version mit reduziertem Funktionsumfang kann man häufig sogar bereits abends in ein paar Stunden oder zur Not an einem Wochenende entwickeln.
Damit das funktioniert, sollte man sich das Hauptszenario seiner App-Idee heraus picken und dies mit minimalem Aufwand rudimentär umsetzen. Also nicht zu viel Zeit in eine skalierbare, wartbare Softwarearchitektur stecken, die es erlaubt, den Code auch in 10 Jahren noch mühelos zu warten und bereits heute für tausende simultane Benutzer ausgelegt ist.
Apps haben einen kurzen Lebenszyklus und bilden häufig nur einfache Szenarien ab. Wenn man also nicht gerade eine App entwickelt, die eine bekannte Marke repräsentiert oder eine Mondrakete steuert, dann kann der Entwicklungsaufwand für eine erste Version durch pragmatische Entwicklung enorm verkürzt werden.
Genauso sind wir auch bei der Entwicklung unserer Google Kalender App GMail Calendar vorgegangen. Als Microsoft in der Woche vor Ostern 2013 die Unterstützung des Google Kalenders aus der Microsoft Kalender App entfernte, sprach ich mit Timo Ziegler darüber, dass jetzt sicherlich ein guter Zeitpunkt wäre, eine Kalender App zu entwickeln. Timo war sofort von der Idee begeistert und sagte:
Und morgen am frühen Nachmittag geht die erste Version in den Store
Im ersten Moment hielt ich dies für einen Witz, aber er meinte es vollkommen ernst. Also überlegten wir, welches der Hauptanwendungsfall in unserer App sein würde. Wir kamen zum Schluss, dass es darum geht:
Als Anwender kann ich mir alle meine Termine eines Monats in einer Monatsansicht ansehen.
Es handelte sich also lediglich darum, die Termine über die Google Api abzurufen und rein lesend in einer Monatsansicht darzustellen. Für zwei Entwickler klang das auf einmal gar nicht mehr so unrealistisch. Also setzten wir uns abends vor unsere Rechner und entwickelten an einem Abend und einem Vormittag die erste Version unserer App. Ab Mittag erhielten wir für einige Stunden die Unterstützung eines weiteren Entwicklers und konnten so die erste Version tatsächlich nachmittags in den Store laden. Natürlich konnten wir nur ein Szenario abbilden und hatten auch noch den ein oder anderen Fehler in unserer App. Aber das war OK, denn es ging nur darum, zu prüfen, ob unsere Idee bei den Anwendern ankommt und sich eine weitere Entwicklung überhaupt lohnt.
Bereits am ersten Tag merkten wir, dass unsere Idee wirklich gut war, denn nach nur einigen Stunden erreichten wir das Google Api Limit von 1000 Aufrufen pro Tag. Angetrieben durch den Erfolg entwickelten wir weitere Features, behoben einige Bugs und stellten ein Update in den Store. Genau dieser einfache Update-Mechanismus, der es uns Entwicklern erlaubt , Anwender problemlos mit neuen Versionen der App zu versorgen, erleichtert diese Form der iterativen Entwicklung und des iterativen Deployments ungemein.
Natürlich sprachen wir auch mit Google und beantragten das Heraufsetzen des API Limits für unsere App. Google kam uns entgegen und erhöhte das Limit auf 100.000 pro Tag. Aktuell nutzen über 165.000 Menschen weltweit unsere App. Dies führt leider dazu, dass unsere 100.000 API Aufrufe am frühen Nachmittag unserer Zeit verbraucht sind. Ab diesem Zeitpunkt kann die App für diesen Tag bei allen Anwendern keine Termine mehr synchronisieren. Verständlicherweise erhalten wir aufgrund dessen eine Menge schlechter Reviews für unsere App – auch wenn wir selber wenig für das Problem können. Derzeit verhandeln wir wieder mit Google über eine höheres Api Limit für unsere App, aber bisher haben wir noch keine positive Rückmeldung erhalten.
Nun möchte ich mich an dieser Stelle aber gar nicht über unsere API Limit Probleme beschweren. Meine eigentliche Kernaussage ist: Man kann eine erste Version seiner App Idee in wenigen Stunden umsetzen und den Erfolg sofort testen. Dazu ist es wichtig:
- Den Funktionsumfang zu reduzieren. Es sollte nur der primäre Anwendungsfall umgesetzt werden!
- Seine eigenen Qualitätsansprüche für die Version 1 zu reduzieren. Es geht schließlich nur um eine App und nicht um die Steuerung eines Atomkraftwerks. Wenn die App erfolgreich ist, sollte man anschließend natürlich weitere Zeit in qualitativ hochwertige Software investieren
- Sich die Zeit für die erste Version zu nehmen. Von alleine wird die “richtige Zeit” nie kommen. Am besten setzt man sich auch sofort einen knappen Zeitplan. Das verringert das Risiko, dass die App den frühzeitigen Tod durch zu schönen, aber leider unfertigen Code stirbt
Genau diese Punkte habe ich auch meinen beiden Seminarteilnehmern gesagt, als sie mich fragten, wie sie mit ihrer Idee weiter vorgehen sollten.
Einfach mal machen!
Ich denke, es gibt kaum eine bessere Zeit, um in die App-Entwicklung zu starten. Alle notwendigen Werkzeuge für sowohl Windows Store Apps, als auch Windows Phone Apps sind kostenfrei in der Form von Visual Studio Express Varianten verfügbar. Der jährliche Beitrag für einen Windows Store / Windows Phone Store Developer Account ist lächerlich gering. Außerdem gibt es genügend günstige Video Trainings oder sogar kostenfreie Quellen im Internet um die notwendigen Fähigkeiten zu erlernen.
Deshalb denke ich:
Schluss mit den Ausreden. Stattdessen loslegen und auf zur eigenen App an einem Tag!