At the recently concluded, Lean Startup Conference 2012, there was a interesting talk given by Matt Brezina of Sincerely regarding how they approach rapid mobile app development using Lean principles.
This talk got me to thinking on how possibly similar principles might apply in an enterprise mobile app development world.
- Figure out the Minimum Viable Product: This version will be quick and dirty to product but will answer one or two key questions. Is the concept being accepted by the intended audience.
- Off-brand Testing: Matt’s company uses special app store accounts just to test market a new concept or flow. This approach allows them to not worry about sullying their brand reputation but allows them to quickly launch stuff to test whether their hypothesis is working. In the enterprise world, this could mean testing the new app concepts with a select group of early adopter or beta testers. If this group is diverse, their insights can help shape the app direction without worrying about a company wide launch.
- De-emphasize visual design – Early on, there is no need to make an app look polished and professional. Let the developers do the basic visual design. However, the developers can focus on the interaction design instead to test it out. Since the purpose is to see if an app actually is making a difference in the enterprise workflow, this could be early builds rolled out to the select group of enterprise users.
- Reuse Common Components – This is where good architecture and design comes in handy. Regardless of the chosen strategy, each app must be built with reuse in mind. Set high goals to the code being generated and make sure that each app is contributing to a reusable common component pool. These components will make it easier to rebuild the next app.
- Buy cheap, disposable users – While Matt’s company uses targeted advertising to buy cheap, disposable users who tell them early on if a given strategy is working or not, this is not feasible within an enterprise. Instead, enterprise mobile apps can focus on the select group of users which may include new hires who may not be familiar with the domain.
- Kill Apps – This is a tough pill to swallow for enterprise efforts especially if the culture make people fearful of failure. If apps are done in a rapid fashion and launched off-brand, there is no shame in killing unsuccessful attempts. It is part of the enterprise learning. To persevere in the face of low adoption is only prolonging the problem and will prevent the teams from discovering the pivot which will have a greater chance of success.
- Test on Android for agility – Within an enterprise this becomes less important since the beta users can be provided builds with equal ease in both iOS and Android platforms. The entire deployment chain can be controlled internally and new features deployed rapidly.
- APIs are everything – It cannot be overemphasized, how important it is than ever to build APIs for everything. In Matt’s company, the mobile app developers do not touch the database ever, directly. Instead, everything goes through APIs. If this standard is set, it becomes easier to iterate and evolve newer apps.
- Team structure – The mobile app team structure proposed by Matt consists of an app developer, a designer and the API team. This small and basic structure promotes agility. In enterprise world, you would want to couple these with an analyst if needed.
- Minimize inter-dependencies – Dependencies get in the way of iterating fast. Matt takes on the responsibility in his company to reducing the dependencies and making sure that the developers can produce code uninterrupted. In enterprise world, where multiple dependencies exist, working to reduce them can free app developers from concentrating on iterating the mobile app code.