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.

Wednesday, June 10, 2009

Alan Kay and Viewpoints Research Institute

Alan Kay and the good folks at the Viewpoints Research Institute may usher in the next grand step in our love affair with the machine. They hope to...
"create a model of an entire personal computer system that is extremely compact (under 20,000 lines of code) and yet is quite practical enough to serve as a system for succeeding versions of the $100 laptop and for embedded systems of the future"
...and revolutionize computers all over again.

Their existing work includes feats like language-to-language translation, automatic generation of low-level blit functions from mathematical descriptions of the desired geometry and graphics, and a tiny TCP/IP stack in a few dozen lines of specialized parser code.

They are also exploring the ability to represent or model the system in itself, and then having it automatically reason about how to allocate resources and choose algorithms to solve problems and run better.

If you really want to blow your mind read their 2007 progress report "STEPS Toward The Reinvention of Programming" (PDF). I've never seen anything like it anywhere else.

It's difficult to explain what they're doing concisely. There's a rich history to the work, and the current research and results are themselves densely woven from heavy deep parts. This is all stuff that rewards your perusal.

Monday, May 18, 2009

Wells Scale

Malcolm Wells, the father of underground building, wrote an article that appeared in the "Next Whole Earth Catalog" about, among other things, this simple and ingenious device for rating the desirability of a building.

It's a form that you fill out by rating a building or site according to a bunch of common-sense criteria about what makes it good, healthy, and sustainable.

The left side is sinister stuff and the right side are positive counterparts. There are things like "Destroys pure water vs. Creates pure water" and "Wastes solar energy vs. Uses solar energy".

Not rocket science as they say. It's fun (or rather usually depressing) to rate the various buildings you use in your daily life. I certainly hope you find positive ratings for them. If not then it's time to move or improve.

There are lots of ways to improve existing buildings. Rainwater catchments are an easy win, even if you only use the water to irrigate. If you add an attached greenhouse to a building you can gain several advantages at once: create pure air; produces own food; creates rich soil; uses and stores solar energy; consumes its own wastes (composting); matches nature's cycles; provides human habitat; and, if done well, is beautiful.

With proper planning and a bit of engineering we can create really cool homes and buildings that exist in harmony with Nature. This simple score card makes it easy to wrap your head around what needs to be done to do it.

Monday, May 11, 2009

Ted Nelson

Theodor Holm Nelson is an iconoclastic visionary who wrote the amazing book "Computer Lib / Dream Machines", which is how I first heard of him. He's credited with coining the term "hypertext" although the system he envisioned, called Xanadu, included abilities and structure beyond what the current WWW provides.
"The purpose of computers is human freedom."
~"Ted Nelson's Computer Paradigm, Expressed as One-Liners"

He has spent 30~40 years watching the computer industry not measure up to his innovative visions and by now he seems a little pissed off. This is from a 1999 rant "Way Out of the Box":
...the computer world is entirely built out of artificial, arbitrary constructs. Word processing, spreadsheet, database aren't fundamental, they're just different ideas that different guys have whomped up, ideas that could be totally different in their structure. But these ideas have a plausible air that has set like concrete into a seeming reality. Macintosh and Windows look alike, therefore that must be reality, right?

Wrong. Apple and Windows are like Ford and Chevrolet (or perhaps Tweedledum and Tweedledee), who in their co-imitation create a stereo illusion that seems like reality. The computer guys don't understand computers in all their manifold possibilities; they think today's conventions are how things really are, and so that's what they tell all the new victims. So-called "computer literacy" is an illusion: they train you in today's strange conventions and constructs-- (Desktop? This to you looks like a desktop? A vertical desktop? ) --and tell you that's what computers really are. Wrong.

Today's computer constructs were made up in situations that ranged from emergency to academia, which have been piled up into a seemingly meaningful whole. Yet the world of the screen could be anything at all, not just the imitation of paper. But everybody seems to think the basic designs are finished.
Amen brother!

He's written a new book on the history of computers, and remember that he was there while a lot of this was happening, occasionally directly involved. He has book blurbs by Woz and Stewart Brand.

Check out Chapter Summaries of "GEEKS BEARING GIFTS" for a wild ride.

He has continued his Don Quixote tilting at the windmills of our paucity of access to true power of computing machinery with at least two systems other than Xanadu. First, a bizarre information representation system that seems a billion times better than anything I've heard of to date (to the point where I want to drop everything and develop it) called ZigZag:
And also something called transclusion, which allows a deeper kind of hypertext which he calls Transliterature.

All of Nelson's work is worth reviewing if you're at all involved in creating software that people use. Here's a link to his homepage:

He's sort of like the Oracle at Delphi, and it would suck if he were to be treated like Cassandra.