What I´ve learned from the Lean Startup movement

Principles of Lean Startup

Lean startup movement is based on the following principle: a startup is a temporary organization designed to turn ideas into products by searching for a repeatable, scalable and profitable “business model” under a risky (uncertain) environment. In the very beginning a “business model” is a set of assumptions or untested hypothesis that we have to turn into facts as soon as possible. Risk (uncertainty) is statistically correlated to the lack of knowledge commonly found in future events. One way to mitigate the lack of knowledge in future events is by learning from past and present events. This is called validated learning in lean startup. It is very important to find and validate this “business model” (equivalent to say to turning untested hypothesis into facts) until we´re running out of resources (money, time and personal effort). We have found the right “business model” to execute a company when we´ve achieved the product/market (problem/solution) fit, in other words, building products that customer really wants and are willing to pay for. Thus, all the effort in the startup is to achieve product/market (problem/solution) fit.

Business Model Canvas

If the key objective in startups is to search and validate a proper “business model”, then we need to conceptualize what is a business model. Alexander Osterwalder and Yves Pigneur define the structure of business model as how the organization creates, captures and delivers value. They showed in their book “Business Model Generation” that any business model can be defined and visualized in 9 blocks or structural items using their Business Process Canvas as shown in the following figure.

Although in my humble opinion and basing my statement on the Porter´s five forces, the SWOT matrix and Kaplan´s Balanced Scorecard, I would add other boxes to express environmental elements such as governance, competition and substitutive products.

The canvas consists of the following building blocks:

1. Value Propositions

  • Questions:
    • What are the products/services that you´re providing to our customers? What is the Minimum Viable Product (MVP)?
    • What value do we deliver to our customers? Why will people want it?
    • What differentiation are we providing to our customers?
    • Which customer needs are you satisfying? How do we solve their problems (pain reliever) and make them grow (gain increaser)?
    • What is the market type? What is market size? How big is the opportunity?
  • Examples:
    • Applications for socially collaborations in solving complex problems in enterprise
    • Show a landing page and test positioning

2. Customer Segments

  • Questions:
    • Who are they?
    • Why will they buy?
    • What is the customer segment trying to get done?
    • What are the potential customers?
    • For whom are we creating value?
    • Who are our most important customers?
    • Is it a problem or a need?
    • What are the key jobs or business process to get done? What would make your customers the life easier? Rank each job and outline the context in which the job is done
    • What are the key gains? Expected benefits, desires
    • What are the key pains? Undesired costs and situation. Risks. Negative emotions
  • Examples:
    • Enterprise customers in mid to large organizations in the finnancial and telecommunication industries
    • Advertisers

3. Channels

  • Questions:
    • What channels are we using to reach our customers?
    • Physical versus virtual channels?
    • Direct or indirect channels?
    • B2B or B2C channels?
    • How to reach our customer segments to distribute value?
    • How our channels are integrated?
  • Examples:
    • The main channel for communication with our customers and delivering our application is Facebook
    • The second channel for delivering our application is AppStore and Google Store
    • Sales force

4. Customer Relationships

  • Questions:
    • What type of relationship does each customer expect to have and maintain with us?
    • How do you develop and maintain contact with customers in each segment?
    • What is your market campaign?
    • What is the demand creation? How do you create customer demand?
    • How our customers are integrated with our business model?
    • How costly are they?
  • Examples:
    • Support our users through our homepage and Facebook page
  • Techniques:
    • General marketing
    • Sales funnel
    • Get your web site and Google analytics up and running. Track where your visitors are coming from and how their behavior differs
    • Ask your users to take action such as signing in your system
    • If your product has virality, you will need to use the viral propagation

5. Revenue Streams

  • Questions:
    • For what value our customers are willing to pay?
    • For what value do they currently pay?
    • How are they currently paying?
    • How would they prefer to pay?
    • How will you price your offering?
  • Examples:
    • Freemium pricing model as the sales medium
    • Traditional advertising

6. Key Partners

  • Questions:
    • Who are our key partners?
    • Who are our key suppliers?
    • Who are our key outsourcings?

7. Key Activities

  • Questions:
    • What key activities (course of actions) do our value proposition (distribution channels, customer relationship, revenue streams) require?
  • Examples:
    • Development of enterprise application for socially collaboration
    • Agile development (Scrum methodology)
    • Marketing research and selling activities

8. Key Resources

  • Questions:
    • What key resources are we using to deliver value for our customers?
    • What is the organization chart?
    • What are the models for our business processes?
  • Examples:
    • Our organization chart
    • Engineering team
    • Marketing team

9. Cost Structure

  • Questions:
    • What are the costs and resources (fixed and variables costs) inherent to our business processes (executing our course of actions to achieve our goals)?
    • Which key resources are most expensive?
    • Which key activities are most expensive?
  • Examples:
    • Operating costs (ex: hosting the application in the data centers, total cost of ownership)
    • Transaction fees

In order to get the product/market fit (avoid stuff that customers don´t want), you need to analyze, design and validate the hypothesis related to the Value Proposition and Customer Segment blocks. I´ve found a very good tool developed by Alexander Osterwalder as shown below.

Customer Jobs at Customer Segment block

First of all, you need to look at the potential customers to sketch out a customer profile by describing the tasks they´re trying to perform and complete, the problems they´re trying to solve, or the needs they´re trying to satisfy.

Customer Pains at Customer Segment block

Next, you should describe the undesired costs and situations and risks experienced before, during and after getting the job done. Finally, you must rank each pain.

Customer Gains at Customer Segment block

Next, you should describe the benefits your customer expects, desires and cost saving. Finally, you must rank each gain.

Products and Services at Value Proposition block

After you have sketched out the customer profile, you need to start specifying the Value Proposition hypotheses. You need to list all of the products and services you offer that help you customer get the job done or satisfy their needs. Finally, you must rank each product or service according to the importance to your customer.

Pain Relievers at Value Proposition block

Next, you should describe how your products and services alleviate customer pains. Finally, you must rank each pain reliever.

Gain Creator at Value Proposition block

Finally, you should describe how your products and services create customer gains. You must rank each gain creator according to its relevance to the customers.

Validated Learning Cycle – Lean Startup process

On the first day of a startup, the business model is nothing more than a set of untested hypothesis (assumptions) that explain what is supposed to happen and we need to turn these untested hypothesis into facts. In practice, in order to search our business model (product/market fit), we need to test (validate) empirically these hypotheses using a method.

Some assumptions are validated using analogs and anti-analogs as explained by John Mullins and Randy Komisar in their book “Getting to Plan B”. John Mullins and Randy Komisar states that you don´t need to reinvent the wheel when key elements already exist. Consider the analogs to your idea – successful predecessor companies that are worth mimicking in some way. Next, consider the antilog – predecessor companies compared to which you explicitly choose to do things differently because some of what they did was unsuccessful. And the remaining untested hypotheses are leaps of faith that you need to focus on testing (validating).

In the learn startup movement, the process (method) to test hypothesis is called validated learning cycle, which essentially consists on iterating through the build-measure-learn on product prototypes that are called Minimum Viable Products (MVP). Main approach is to accelerate this feedback loop. So, in the validated learning process, the effort that is not necessary to learn from our customers can be eliminated.

Along with the validated learning method is the pivot concept (a very important one) that is described by Eric Ries as changing the strategies (the course of actions, ways, paths, etc) without changing the vision (the objectives, goals, etc).

This process is illustrated on the following picture.

Practically, we have a vision (be careful not to have a hallucination) on a future state that is good for (to help) people on making the world a better place and we have assumptions about the course of actions to follow to achieve our objective. We make a research to try to validate some assumptions with analogs (best practices, success stories) and anti-analogs (bad practices, failures), so we have an idea on what risky assumptions to focus firstly (they are called leaps of faith). After that, we build a product prototype to validate our leaps of faith from the business lens (not for answering product design or technical questions), so we can discover which one are true (tremendous opportunity awaits) or false (risks of total failure). With this knowledge (that´s why is called learning process) we can have an idea of either take a new course of actions or stay on the current path to achieve our objectives. This is done once again (iteration after iteration) until we have approaching to our key objective, that is, the product/market fit.

Customer Development

Customer development as a process can also be combined with business model canvas to test (validate) unproven hypotheses (assumptions) in order to search for a repeatable, scalable and profitable business model. This methodology was created by Steve Blank based on his maxim “In a startup no facts exist inside a building, only opinions”. In a nutshell, customer development process (four steps) describes a roadmap to achieve product/market fit (search mode) and then to build companies (execution mode). This method complements the product development process (agile development). The approach states that before developing a product, you should go out of the building to test your assumptions in order to get customer feedback. In the practices, most of these assumptions will end up being wrong. Search embraces failure as natural part of the startup. Startups will cycle through each step of the Customer Development method until they achieve the “escape velocity”; that is, enough progress in learning and finding the right business model to execute. Search versus execution is the main difference between a startup and existing business units. Searching for a business model requires a customer development team leaded by the founders with a learning and discovery culture because we don´t run a formal organization. This is illustrated in next figure.

The first step is Customer Discovery for capturing the founder´s vision and turning it into a set of untested hypotheses of the business model to test customer reactions to those hypotheses and turn them into facts. It aims at finding out the potential customers and the problems important for them (willing to pay for). You also need to specify the product concept (initially a set of features based on the founder vision) and a proposed pricing and purchasing model. Steve Blank says that “customer discovery is not about collecting feature list from prospective customers or running lots of focus groups. In a startup, the founder defines the product vision and use the customer discovery to find customers and a market for that vision”. This is the time “to get out of the building” in Steve Blank´s terms to gain insights from the customer´s feedback and adjust the business model. According to Steve Blank, this step comprises two phases:

  1. Testing the customer perception of the problem and the customer need to solve it.
  2. Showing the product prototype (usually a minimum viable product) for the first time to confirm the problem can be solved and the need is fulfilled.

In order to achieve sustainable growth, we have to define our product with features that supports our engine of growth. According to Eric Ries there are three engine of growth:

  • Sticky engine of growth. Products offer compelling features that customers are willing to be tied for a potentially long time, so on having a high retention rate. This is caused by an incredible network effect of the business (demand-side increasing returns and supply-side increasing returns)
  • Viral engine of growth. Awareness of the product spreads rapidly from person to person similarly the way a virus becomes an epidemic. Growth happens as a side-effect using the product
  • Paid engine of growth. It´s based on the idea on increasing the rate of growth, we have two ways: increase the revenue from each customer or drive down the cost of acquisition of a new customer. If our product monetizes better than our competitors, you have the opportunity to use your lifetime value advantage to drive growth

Pivots may happen in this step because misunderstanding and getting wrong key assumptions about the business model. A pivot is a major change to the hypothesis in the nine boxes Business Model Canvas based on the learning from the customer´s feedback. We have to see pivot as change in the strategy to achieve the vision not as a failure. According to Eric Ries there are a catalog of pivots: zoom-in pivot, zoom-out pivot, customer segment pivot, customer need pivot, business architecture pivot, value capture pivot, engine of growth pivot, channel pivot, and technology pivot.

When the customers confirm the importance of both the problem and the solution, then the customer discovery is complete.

The second step is Customer Validation for testing whether the business model (from the previous step) is repeatable and scalable. If not, we need to return to the Customer Discovery previous step. During this validation, we prove our ability to scale against a larger number of customers. As well, we develop a sales roadmap by a steady stream of customer purchases and validate the demand creation engine by a growing exponentially customer base.

After completing successfully the search phase (first and second steps of the customer development method), we have discovered, tested and refined our business model. In this moment, we have a sized group of customers and repeatable sales process, so it´s time to move to next step to scale.

The third step is Customer Creation is the start of the execution mode and aims at creating end-user demand for our product/service using our sales channels. Costs are fundamentally in sales and marketing activities by spending money in customer demand and driving it into the sales channels.  We have gone from the early adopters to the customer mainstream. It´s the time to validate our engine of growth defined in the customer discovery step.

And the fourth step is Company Building to make a transition from a startup to a structured and formal company focused on executing the business model.

According to Steve Blank, we need to pair the customer development with agile development because the product development team can iterate with the product with speed and agility because we can continually take customer input and deliver a product that iterates readily around the minimum features set. This idea can be illustrated in the following figure:

Product/Market Fit

When we´re in the third step (Customer Creation) of the Customer Development method, in my humble opinion, we´ve achieved the product/market fit.

The product/market fit concept was developed by Marc Andreessen, founder of Netscape. This concept is the answer to the question: If a startup is in search of a repeatable, scalable and profitable business, how do you know when it has happened?

Andreessen says that product/market fit means being in a good market with a product that satisfy the clients and they´re willing to pay for. It´s the time when the transition from early adopter to mainstream customers takes place and we´re growing (scaling) very good for adquiring new customers. He also states that “you can always feel the product/market fit when it´s happening” as well as “It is the only thing that matters”.

According to Sean Ellis, the achievement of product/market fit can be measured according to this specific metric: when, in a survey, at least 40% of users say they would be very disappointed without your product.

According to Eric Ries, the engine of growth determines the product/market fit because each engine of growth can be defined quantitatively with its own metrics so we can evaluate if we´re getting closer to the product/market fit, so we can tune our engine of growth.

Technology Adoption Lifecycle – Crossing the Chasm

When we´re in the fourth step (Company Building) of the Customer Development method, in my humble opinion, we´ve crossed the chasm.

The technology adoption lifecycle describes the stages a product goes through the marketplace. These stages are illustrated in the following figure:

Crossing the chasm is a concept developed by Geoffrey Moore that focuses on the nature of high tech products during early startup period. Geoffrey Moore argues that there is a chasm between early adopters of the product and mainstream customers, so we need to understand these differences and apply techniques to successfully cross the chasm.

Crossing the chasm is closely related to the technology adoption lifecycle where five segments are recognized:  innovators, early adopters, early majority, late majority and laggards. The key concepts are illustrated in the following figure:

Another view of the crossing the chasm concepts is illustrated in the following figure:

The most difficult step is making the transition from the early adopters to early majority. According to Geoffrey Moore, we need to focus on one group of customers at a time, using this group as a base for marketing to the next group.

Key techniques to cross the chasms are:

  • Select the target market
  • Understand the whole product concept
  • Position the product
  • Build a market strategy (product differentiation, cost leadership, market segmentation, innovation strategies)
  • Choose the appropriate distribution channel
  • Pricing model (enterprise software licensing structure, freemium pricing model)

Conclusion

In this article, I´ve tried to explain the principles, concepts and methodologies that I´ve learned in my research about building my own company using the lean startup and customer development approaches.

Please, let me know your thoughts regarding what I´ve talked about.

Getting started with Amazon EC2

Currently I´m researching and learning about Amazon Web Services (AWS). Today I want to share my experience and knowledge about Amazon Elastic Compute Cloud (EC2) and Elastic Block Storage (EBS) storage.

EC2 is a web service that provides a resizable compute capacity (to support scalability) in the Amazon AWS. Amazon EC2 enables to provision and run new server instances (server farm) in minutes to support architectural quality attributes such as high performance, high availability and scalability.

EBS provides a block-level storage for EC2 instances as volumes to be used as primary storage for the file system and database storage. You create a ESB volume and then you mount it in an instance , format it and then start to use it. You can unmounit it and then remount it to another instance. You can also take snapshot backups of ESB volumes to S3 storage. EBS volume provides high availability and reliability in its availability zone (data center). It´s possible to increase the I/O performance by mounting multiple EBS volumes in one instance and striping the data across them.

In order to interact with EC2 instances, you´ll need to create a new account in Amazon AWS (http://aws.amazon.com) and sign up for EC2 and EBS.

Amazon is providing a free usage tier for new customers (for further details at http://aws.amazon.com/en/free/).

Now it´s time to create and lunch an AWS instance. Open the AWS Management Console and select the EC2 tab at https://console.aws.amazon.com/console/home. Select the desired region to launch the instance (red circle) and click on the Lauch Instance button (blue circle) in the following figure.

Image

Figure 1

Next select the Amazon Linux AMI 2012.03 (see Figure 2).

Image

Figure 2

Next page is for setting the instance details as shown in the following figure.

Image

Figure 3

After that, we have a set of advanced setting for the instances configuration. When you reach the key pairs page, you have to click on the Create and Download your Key Pair and save the myfirst_instance_keypair.pem file in your local machine. You need a key pair (public/private) to be authenticated when logging using ssh. The public key is retained in the instance (copied into the .ssh/authorized_keys file in the primary user account´s home directory), allowing you to use the private key (downloaded to your local machine) to log in securely without a password. You can have several pair keys, and each key pair requires a name.

Image

Figure 4

Next page allows you creating security groups to define your instance firewall. By default, the only open port is the 22 (ssh) to any host in order to manage our instance using ssh. Enter a name and description for the security group (blue circle in the following figure)

Image

Figure 5

And finally, you´re able to review all your inputs regarding the instance and click on the button Launch (see Figure 6).

Image

Figure 6

Once the instance is running, you might connect using SSH. One thing to note is that you need to locate the myfirst_instance_keypair.pem and use the following command over it: chmod 400 myfirst_instance_keypair.pem.

Next step is to connect using the following command: ssh -i myfirst_instance_keypair.pem ec2-user@<public_dns>.amazonaws.com.

Now let´s install the Apache HTTP server on the instance by typing the following command:  sudo yum install httpd.

After the installation is completed, you need to type the following command to start Apache: sudo /etc/init.d/httpd start.

And finally, we need to open the http port  (80) for inbound traffic toward our instance using the Security Groups mechanisms as shown in the following figure.

Image

Figure 7

If you go with your browser to http://<public_dns&gt;.amazonaws.com, you will see something like this:

Image

Figure 8

Now we´re going to create a dedicated EBS volume for our EC2 instance. In the Management Console, select the Volumes node on the Elastic Block Store tree and click on the Create Volume button. In the Create Volume popup, you need to enter an appropriate size and select the same availability zone of our EC2 instance. Finally, let´s click on the Yes, Create button (see Figure 9).

Image

Figure 9

Next step is to select the created volume and select the option Attach Volume to attach it to our instance. Click on the Yes, Attach button (see Figure 10).

Image

Figure 10

Now let´s format the new volume (device= /dev/sdf) using ext3 file system by typing the following command: sudo mkfs –t ext3 /dev/sdf.

Now let´s create mounting point for the volumen at /data by typing the following command: sudo mkdir /data.

To mount the EBS volume at /dev/sdf in the file system at the mounting point /data, we need to type the following command: sudo mount /dev/sdf /data. For mounting automatically the EBS volume, you need to add the mount command at the /etc/fstab file by typing the following command: echo “/dev/sdh /data xfs noatime 0 0” | sudo tee -a /etc/fstab.

Next step is to install Postgresql, you need to type the following command: sudo yum install postgresql postgresql-contrib postgresql-libs postgresql-server.

Let´s configure the Postgresql database server to point the data directory to the directory /data pointing to the ESB volume. First of all, we need to stop the Postgresql server by typing the command: sudo /etc/init.d/postgresql stop. Open the Postgresql configuration file and change the data_directory to /data. And finally, let´s start the Postgresql server again: sudo /etc/init.d/postgresql start. 

In this article, I´ve shown how to provision an EC2 instance with two ESB block-storage devices as well as how to install Apache and Postgresql on to the instance.