Saturday, October 10, 2009

Automating "Lean Startups"

Recently I've been learning about something called "Lean Startups", which is an extension of the "Lean Manufacturing" concepts from physical production to software production.

"Lean Manufacturing" derives from the famous Toyota Production System (and see also Goldratt's "Theory of Constraints" et. al.)

Steve Blank, Eric Ries

There's a very interesting guy named Steve Blank who has a student named Eric Ries who, as far as I know, is the person who first came up with the concept of "Lean Startup".

Ries has done a lot of talks (check out the video linked from this blog post) describing the "origin story" of the "Lean Startup" concept.

They tend to be a little sparse on the details of exactly what and how Reis' company, IWVU, does to implement the ideas, but one Timothy Fitz, employee at IMVU, describes their outrageous Continuous Deployment strategy in a post on his blog.

Steve Blank is no slouch either. Check out his "Customer Development Model".

Blank stresses, among other things, that business decisions should be made on the basis of verified facts rather than the opinions (I would call them hallucinations after the NLP usage) of the people in the company. They advocate a quasi-scientific approach of creating formal hypotheses and actually testing them out, as well as developing explicit feedback mechanisms and metrics to make sure things are happening like you think they are (and that when they're not, you know about it ASAP.)

Algorithm for Flushing Out Hypotheses

There's an interesting tool called Cucumber for "Outside-In" Behavior Driven Development (BDD) that has potential for use in "Lean Startup". You can watch a video of a presentation given by Ben Mabey that demonstrates it.

You create "feature descriptions" in a form that can be "run" by Cucumber something like unittests. The term "Outside-In" refers to the idea that these features should be tied to business values (i.e. increasing revenue, reducing cost, increasing value to your customers, etc...) before being implemented. Instead of writing the code first and then hoping it will deliver something of value to you and your customers, you write the "value" first and then write only the code necessary to implement it.

In order to tie features to business value the BDD folks recommend something they call "popping the why stack". You take a feature and ask "why are we implementing this?" and then you take the answer to that and repeat the process. You continue to ask "why?" until you've found a chain of reasoning that terminates in one or more business values. The Cucumber wiki page has an IRC transcript that is an excellent example of "popping the why stack".

If you go read that transcript now, you'll notice that each answer to the question "why?" is just such a business value hypothesis as Steve Blank and Eric Reis tell you to elucidate.

"Popping the why stack" leads directly to explicit testable assumptions about how you intend to get business value from your software.

Beyond Business Value

"Popping the why stack" can be considered a subset of something called the Core Transformation Process.

This is an NLP psychological algorithm developed by Connirae Andreas that starts with a problem or issue you're having and, through "eliciting the outcome chain" driving it, transforms it into an experience of the Divine.

I have used the Core Transformation Process on myself and others, and I can attest that the results are deep and profound.

In essence you suss out your "meta-intentions" for your behavior by asking, "What do you want, through having that, that's even more important?", which is a specifically crafted way to ask "why?", and then for each answer you repeat the question.

After about five to seven iterations you reach an incredibly profound "Core State" that can be described variously as "Oneness", "Bliss", "Unity"...

The universality of the results of this process imply that everything we do has, as its ultimate aim and motivation, the same beautiful and harmonious goal. In the courses of our lives this ultimate motivator gets "sidetracked" or redirected into more or less effective strategies for achieving "sub-goals".

I urge you, in removing waste from your processes and improving your effectiveness via real-world feedback, do not limit yourself to seeking value just in your business. Seek the deeper reason.

Live and be well.

For more on the Core Transformation Process I recommend this interview with Tamara Andreas (Connirae Andreas' sister and a teach of the process) and this excellent history of the development of the process.