Lean Mobile App Development
上QQ阅读APP看书,第一时间看更新

An introduction to the Lean Startup methodology

Today's mobile world is well past the gold rush frenzy of the late 2000s. Google Play has 1.9 million apps with over 50 billion downloads. Apple's App Store has 1.4 million apps with 100 billion downloads. Most app categories are fairly saturated, and there are free apps for most things. The design of the marketplace incentivizes app developers to drop their prices in order to hit the top of the charts, giving them wide distribution.

Should you be dissuaded by all this? Does this mean that the chances of success are so low, and the field so daunting, that we might as well give up? Far from it! As time has shown, there are always new opportunities. Famously, today's leading companies, such as Google and Facebook, emerged from the dust of the dot com bust of the early 2000s.

But instead of the big bang approach that companies took to building products earlier, we are now equipped with more scientific approaches for taking new ideas to market. And here's where the Lean Startup methodology outlined by Eric Ries has radically changed how several start-ups and large companies develop software.

Lean start-up principles help realize your vision through rapid experimentation. They provide an approach for taking a bright new idea, and first identifying key high-risk assumptions that you are making. These are assumptions whose failure would mean that your idea would fail. The next step is to craft small market experiments to test these assumptions in the field. A successful experiment would validate an assumption, which lets you move on to your next assumption and craft the next experiment. Failure of an experiment would invalidate an assumption, which means that your idea in its current form would fail.

If you are a developer, you may wonder if the Lean Startup methodology is just a bunch of business management speak reserved for stuffy types in dark suits. That would be an unfortunate misconception. Eric Ries attempted to develop an easily understood management principle for entrepreneurship, which was otherwise seen as a mysterious dark art form.

However, Eric's own roots are closer to the developer community than to the busniess community. It was his experiences building software at IMVU that inspired his Lean Startup ideas. He was one of the early pioneers in endorsing continuous development and continuous integration in the software development process. It was an attempt to strip out all the wasteful cycles that developers spend time on, and help them focus on building things that mattered most to their customers.

Experienced developers care about efficiency and writing code that actually has an impact. Compared to other industries, the software industry has numerous examples where millions of lines of code are discarded because they go into building features no one wants. That's a waste of endless hours of developer effort that could be better used building useful software.

The Lean Startup approach is also closely associated with agile software development. Agile development outlines an important cycle for how software is built. This cycle is typically inward, and happens within a software development team between managers, developers, and testers. Lean Startup adds the concept of customer development. Customer development is an outward cycle that happens between the software development team and the customer. The cycle involves working with the customer by running interviews, observing customer behavior, testing with market experiments, and collating the results.

If you are a developer in an organization with a top-down culture, where suits with hand-waving skills and mastery with PowerPoint hold sway, Lean Startup can help. Decisions in many organizations still happen based on who has the best PowerPoint presentation and the power of key lobbies to influence decisions. Few things can hurt ground-up innovation in an enterprise more.

Lean Startup provides developers with a framework to influence decisions with real data from customer experiments. If a decision needs to be made, push others at the table to either bring data to justify it, or to run an experiment to collect it. This is critical.

Agile development has been embraced by most organizations over the last decade, with Scrum and extreme programming becoming commonplace. In the coming years, knowledge of Lean Startup will be a valuable asset for developers looking to enhance their skills.

Lean Startup isn't a defined hard and fast process set in stone. It's a set of principles to help chart your way through unknown territory. In the wild, a compass and a map are tools that enable hikers to navigate and avoid dangerous pitfalls that potentially be fatal. Much like a compass and a map, Lean provides a framework to navigate through new discoveries. These discoveries enable you to make crucial decisions about what steps to take next and in which direction.

A Lean approach is no guarantee of a next Flappy Bird. But think about it this way: we're still in an age where taking new ideas from concept to market is still serendipitous. This is much like how fire was discovered and how the wheel was invented, likely as much by chance and gradual evolution than deliberate choices. It took us centuries before science got us to the point where we developed systematic ways of running laboratory experiments. Despite that, it took legendary inventor Thomas Alva Edison hundreds of failed experiments before he invented the light bulb.

"Genius is 99% perspiration and 1% inspiration."

- Edison

What science did do, though, was accelerate the process. Serendipity took centuries. The last century has seen the acceleration of new discoveries and significant scientific advancements. Experiments still fail, and research projects that are pursued for years are often abandoned. But today, the chances of a laboratory scientist's success are significantly higher than that of a caveman in the wild.

Lean Startup has changed how we understand customer needs, and how we build products to meet those needs. Our chances of success are so much higher than they were for a software developer even just a decade ago. How can this methodology help developers do things using the right tools at the right time? The answer is in this book. It is aimed at technical cofounders and other developers involved with a startup company. It can help you learn how to apply the Lean Startup methodology to mobile app development specifically. It will give you insights on how to balance between a pragmatic and hands-on approach while still doing things the right way.

One of the key elements is early validation. Whether you are a solution or problem-oriented person, you have certain assumptions. These assumptions may be right, but most likely they will be wrong. The only way to find the answer is by creating an app, or a simulated app, that you can build very quickly and that you can use to gather feedback. Such a solution is known as the Minimal Viable Product (MVP). An MVP contains only the functionality that you need to have to prove your hypotheses. Everything else in the app that cannot contribute to gathering feedback is waste and should not be there.

For a business guy, the idea of an MVP may sound odd. You only have one chance for a first impression, right? Also, as a developer you do not want to write a bunch of code only to throw it away later. So what exactly should be in an MVP? A more in-depth explanation of an MVP will follow in Chapter 5, A Pragmatic Approach.