Stars Matter: The Secrets Of Successful App Developers

I posted a note yesterday that's been a long time coming. In doing the research for Forrester's mobile app development playbook, I've been talking with all sorts of companies that build mobile apps. Build Five-Star Mobile Apps is the first collection of those observations, but it won't be the last. The premise of the document was simple - find out how companies with top-rated apps in markets like the Apple App Store or the Google Play Store design, build, test, release, and maintain their mobile apps. While there's great diversity in approach, common factors fell out of my interviews, and these practices will help you organize your own efforts:

1. Assemble small, focused development teams. The largest development teams we found had fewer than 10 people. When teams grew larger, they were subdivided into platform-specific teams (i.e. the Android team or the iOS team). Small teams can move fast and keep impedance to a minimum but also require substantial changes in how they perform design and testing.  

2. Favor simple development tools over complex ALM processes. The need for speed that characterized the development processes we found means that most traditional ALM tools hurt more than they help. Gone are formal, text-based requirements documents and heavyweight SCM systems. Smaller code bases with less branching mean tools like Git shine. But it's not all airy castles - testing creates a real headache, so we're seeing lots of experimentation with device emulators, simulators, and even basic tricks like deploying graphic mock-ups to devices to get early user feedback.

3. Adapt Agile principles to the realities of mobile development. Teams that build top-rated apps release many times in a 12 month period. As a result, they all use Agile techniques like continuous build, and many use Scrum-style sprints. But we're also seeing mobile teams adapt and extend a standard Agile cycle with advanced design techniques, lean startup concepts, and organic release schedules. It's a very different development culture, one that we think traditional shops will struggle to adapt to.

4. Balance release speed with a focus on quality. Teams that have honed their skills deploying in a web-centric world are in for a bit of a shock as they move to building mobile apps. In their web world, a focus on automation and an attention to DevOps principles lower the impact of introducing regressions into a working system: you can always "roll forward" or redirect traffic from your blue environment back to the green one. It's not as easy with Apple, Microsoft, and Amazon standing between you and your customers with app store approval processes. The cost of failure and the time to recover from it put renewed emphasis on quality processes.

5. Prioritize gathering user feedback and forming a rapid response to it. Most of the changes we see with top-performing app development teams are based on a central premise - reducing the "time to feedback." But it's also important to monitor the (very public) customer feedback and organize the dev team to triage and respond in real time. A response might be customer outreach, a request to rate an app, or restructuring the app backlog to prioritize a feature request. The public nature of the feedback process will throw many traditional development teams for a loop.

The note I referenced above goes into more detail about each of these practices and offers more-detailed tips and tricks to the aspiring mobile developer from the experts. You might also check out their apps if you get the chance: Banjo, SlideShark, runens, Penultimate, Hipmunk, Kayak, Audobon Birds,  Path, and Untappd. They are quickly becoming some of my personal favorites.

Jeffrey

Comments

Hey Jeff, This is a very

Hey Jeff,

This is a very exact overview about how to develop apps! And it´s great that you made no differences between "normal" apps and games because some game developers still think they can keep their production techniques ones developed for not digital distributed content.

We develop eMbraase, a cloudbased mobile backend as a service support devs to exactly keep it the way you proposed by (1) keeping it small since you need no server engineers rather just a coder, an artist and a producer, (2) easy to implent SDK and API, and ones it´s live it will also track the versioning, (3,4,5) enable to push content over the cloud (like parse) which is tailored to individual user behavoir and delivers costumized game ecperience.

Greetings
Christian

hi Jeff, Thanks for sharing

hi Jeff,

Thanks for sharing these essential factors.

Personally i prioritize your 5th point as number one (most important)
pretending bright future for the newcomers replacing the extincting
overweighted giant dinosaurs who tend loosing theirs responsiveness.

:-)
Zoltan

These are all very good.

These are all very good. Software development is always very difficult. To me, the biggest challenge is getting the developers to have the same understanding and vision as the product owner who is typically guiding the design of the product. That process is always a huge challenge. To me perfecting that is the #1 priority to add to this list! Luckily at my company, Stackify, the product owner is a developer, so that helps a lot! Situations where the product owners isn't technical at all is really difficult.

Focus on the customer, everything else follows

These are all solid best practices, thanks for sharing. I would add that the overall underlying theme is to organize yourself in a way that maximizes the customer experience.

Small, nimble teams that iterate quickly and listen well will always build better products for customers. In today's increasingly connected world, the tools to get closer to customers are out there (my company, Apptentive, provides in-app feedback, ratings, survey and communications tools for example) but the teams who really prioritize the customer are the ones seeking the tools out, adopting them and ultimately, winning.

Another aspect of this customer emphasis is recognizing that your app is increasingly the best channel to connect with your customers, regardless of your business. As a result, an emphasis on the feedback and communications aspect ends up in not just driving 5 star ratings for your app but more enthusiastic, engaged, loving customers. Ultimately, every business needs to earn customer love and the mobile channel is the perfect vehicle to accomplish this with.