Android developer working at Softup Technologies GmbH, a software agency based in Munich. I’ve been tinkering with Android since the Kitkat days. While working with different clients and companies, I have been responsible for delivering large redesigns of fundamental app features. I was part of the team that rewrote and deployed the mobile authentication layer at Immoscout24. Now I am part of the Mobile Architecture Team @ Payback, redesigning the app initializers. During these journeys I have learned a lot on how to carefully introduce disruptive changes in large codebases with confidence.
Fabian Shallari
Redundancy Driven Development – Navigating disruptive codebase changes.
At Scout24 we had the challenge of gracefully migrating millions of users to a new authentication system. Auth tokens between the two systems were incompatible and the consequences of mistakes during the migration would mean logging out huge swaths of users abrubtly, resulting in a "disaster scenario".
At Payback we needed to rewrite the app initialisers. In case the rewritten ones would not run in the same order as the old ones or some of them would not run at all, there would be a possibility of corrupted data or crashes at app startup resulting in a broken app for millions of users.
During these two projects there were common practices, gotchas, and certain techniques that emerged from the whole experience. I have formalized these into an engineering process that I call "Redundancy Driven Development".
The talk will give examples of how to leverage state machines, legacy code running simultaneously with new code, feature toggles, staged rollouts and all the other tools which are available in the redundancy toolbox.
Developers will learn how to leverage redundancy in confidently navigating through changes that have the potential to disrupt the whole codebase.