Hallo Christian, an welchen Projekten arbeitest du gerade?

Seit Oktober 2016 bin ich in einem Projekt für eine mobile Payment Plattform involviert. Der Kunde ist eine deutsche Bank. Meine Aufgabe ist die Entwicklung der Payment iOS App. Das Projekt ist eine grüne Wiese, sodass ich hier ziemlich viele Freiheiten genieße.

Nebenbei läuft natürlich noch TAPWORK mit den vorhandenen Kunden. In der letzten freien Zeit arbeite ich zusammen mit meinen TAPWORK Partnern an unserer Indie App MYGIGS.

Was sind für dich gerade die wichtigsten Trends in der iOS-App-Entwicklung?

Ganz klar der Wandel von Objective-C zu Swift. Mit der neuen Sprache entstehen auch komplett neue Programming-Patterns, die vorher mit Objective-C noch gar nicht möglich waren. Während früher die klassische Objekt orientierte Programmierung benutzt wurde, hat man mit Swift neue Möglichkeiten, um zum Beispiel die starre OOP Vererbungen zu vermeiden. Insgesamt wird mit Swift die Codebase lesbarer, flexibler und skalierbarer. 

Ein weiterer Trend ist die Professionalisierung (Unit Testing, Code Reviews) und die damit entstehende Anzahl der Tools.

Wie läuft für dich ein optimales Projekt ab, was macht dir besonders Spaß?

Wichtig für mich ist ein breites Team (Product Owner, Designer, QA, DevOp, Backend,…) wo jeder seine klaren Kompetenzen hat. Auch der Code Reviews zwischen den Entwicklern ist für mich wichtig. Hier geht es nicht um persönliche Code-Vorlieben, sondern darum, dass der Code lesbar, verständlich und den Guidelines entsprechend geschrieben ist. (Bugs auch, sind aber nicht vermeidbar). Essentiell für den Arbeitsalltag – optimal natürlich mit agilen Methoden – ist für mich ein klares Taskboard & Backlog, geordnetes Bug – Management und Release Management. Nichts ist schlimmer als: “Kannst du das mal eben einbauen!” oder wenn Aufgaben sprunghaft geändert werden.

Spaß finde ich definitiv darin, wenn ich mich tief in technische Probleme einarbeiten kann. Der Projektalltag ist natürlich nicht immer hoch spannend. In dieser Zeit suche ich einfach ein Problem mit Lösung. So entstanden meine Open Source Projekte: HeapInspector und WatchdogInspector. Tech-Firmen (Facebook, Google, XING, …) kennen das und veranstalten Hack-Weeks oder freie Zeit, wo Entwickler eigene Projekte starten können. Bei XING hatte ich in dieser Zeit zusammen mit einem Kollegen die AppleWatch App von XING entwickelt.

Was läuft in den Projekten, die du in den letzten Jahren kennengelernt hast, immer wieder schief? 

Gerade der Wandel vom alten Wasserfall-Modell zur agilen Entwicklung funktioniert gerade in größeren und älteren Firmen schlecht. Es gibt ein unterschiedliches Verständnis von agilen Arbeitsmethoden. Natürlich sperren sich einige Mitarbeiter vor dem Neuen (“Habe immer so gearbeitet”) und schreiben wochenlang das dicke Lastenheft vor der Entwicklung. Dabei impliziert ja schon der Name, die Belastung des Wasserfall-Modells für die Entwickler und anderen Beteiligten. Gerade in heutigen Zeiten, in der die Entwicklung von vielen externen Schnittstellen – mit häufigen Updates – abhängt, ist ein 100 Seiten Lastenheft einfach unmöglich anwendbar.

Unabhängig davon haben Entwickler oft das Problem, dass sie zum “Over-Engineering” oder zur “Premature Optimization” tendieren. Viele vergessen das Ziel und suchen immer die perfekteste Lösung. Das ist besonders ärgerlich, wenn ein Feature nur für eine bestimmte Zeit aktiv ist nur eine geringe Bedeutung in der gesamten App hat. Das Problem des “Over-Engineering” führt zu massiven Verzögerungen und Frust bei anderen Entwicklern. Die Senior-Devs und Product Owner müssen das frühzeitig erkennen, damit es erst gar keine Eigendynamik aufnimmt.

Wie bleibst du auf dem laufenden? Welche Blogs, Bücher etc. kannst du empfehlen?

Newsletter & Twitter: Dave Verwer’s iOS Dev weekly, Swift Weekly von 9Elements, This Week in Swift

Den Must-Have iOS Blog gibt es (wie früher NSHipster) nicht mehr (leider). Ein paar wären aber: cocoawithlove.com, objc.io, raywenderlich.com

Es gibt viele einzelne Medium Artikel von vielen iOS Entwicklern. Sehr technisch geht es bei Mike Ash’s NSBlog zu. Oder man schaut sich einfach vergangene Sessions von iOS Konferenzen an (WWDC, UIKonf, NSSpain, …) 

Christian, danke für die Beantwortung der Fragen.