How Scaling a Mobile App Is Different Than Other Types of Web Development
Native app development is inherently hard at scale.
How is scaling a mobile app different from scaling in other organizations? originally appeared on Quora, the place to gain and share knowledge, empowering people to learn from others and better understand the world. You can follow Quora on Twitter, Facebook, and Google Plus.
Each native app release is a single bundle of joy that lives forever, which makes scaling app development different from web development.
A website can be composed of different parts more or less decoupled, all presented to the users in a somewhat uniform way. Features can be released at any time, especially at Wayfair, where we’re rolling out continuous releases. It is also easy for code released on a website to be rolled back as needed.
On the contrary, a native app release is a single download pulled into a phone or tablet. Features on native apps have to be released on a schedule, at Wayfair once a week both for iOS and Android. Finally, it is very hard to rollback not just a feature, but a release. Once a release is downloaded on a phone, replacing it with a previous version or a new patch version is really up to the user. With this in mind, we need to carefully consider all necessary precautions throughout the software development life cycle so that we are ensuring app stability.
Users have also been conditioned to expect a very high bar for their native app experience. I do not want to wait for a screen to load. I am impatient when using a native app – I want it now, whether I’m on a train, hiking in a forest or on my couch at home watching TV. I expect a native app to be fast, fluid, easy to use – dare I say fun to use – quick to get to the desired outcome, available anytime, and anywhere.
Native app development is inherently hard at scale. On one side, native app developers have to create new features that users can use, which in turn helps the business make money. On the other side, app developers need to keep apps fast, consistent, fluid, fun and everything users expect any app to be. A small app team can do both at once, but as the team scales, keeping focus on these two things equally is actually hard.
Collaboration across app teams and a centralized focus on the app platform and the app user experience are critical. I have seen organizations just distributing native app engineers into feature teams with no focus on collaboration or on the app itself. At Wayfair, in addition to distributing app engineers to feature teams, we created the App Core organization composed of teams related to user experience, app innovations, app architecture, app infrastructure and app releases to focus on each of these areas independently of feature development. These teams have the mission to enable, support, and guide app development at Wayfair. They have to work collaboratively with all feature teams to succeed, which encourages more effective cross-team alignment and partnership. We thought seriously about how app stakeholders, including engineers, could collaborate and network closely even as the app organization is distributed.
Striking that balance between feature development and app platform/user experience support is what makes scaling horizontally possible, which is especially important on native app.
This question originally appeared on Quora. More questions on Quora:
* Startup Strategy: What do startups need to know in order to hire the best app engineers?
* Computer Programmers: What are the most important things to consider when creating a strong app user experience?
* Jobs and Careers: As an app engineer, do you get much contact with customers?
Photo Credit: Georgijevic/Getty Images