Dell’s OpenStack strategy (besides being interesting by itself) brings together Agile and Lean approaches and serves as a good illustration of the difference between the two approaches.
Before I can start the illustration, I need to explain the strategy clearly enough that the discussion makes sense. Of course, my group is selling these systems so the strategy starts a sales pitch. Bear with me, this is a long post and I promise we’ll get to the process parts as fast as possible.
Dell’s OpenStack strategy is to enter the market with the smallest possible working cloud infrastructure practical. We have focused maniacally on eliminating all barriers and delays for customers’ evaluation processes. Our targets are early adopters who want to invest in a real, hands-on OpenStack evaluation and understand they will have to work to figure out OpenStack. White gloves, silver spoons and expensive licensed applications are not included in this offering.
We are delivering a cloud foundation kit: 7u hardware setup (6 nodes+switch), white paper, installer, and a dollop of consulting services. It is a very small foot print system with very little integration. The most notable deliverable is our target of going from boxes to working cloud in less than 4 hours (I was calling this “nuts to soup before lunch” but marketing didn’t bite).
Enough background? Let’s talk about business process!
From this point on, our product offering is just an example. You should imagine your product or service in these descriptions. You should think about the internal reconfiguration required needed to bring your product or service to market in the way I am describing.
There are two critical elements in the go-fasterer strategy:
- a very limited “lean” product and
- a very fast “agile” installation process.
The offering challenges the de facto definition of solutions as being complete packages bursting with features, prescriptive processes, licensed companion products and armies of consultants. While Dell will eventually have a solution that meets (or exceeds) these criteria; our team did not think we should wait until we had all those components before we begin engaging customers.
Our first offering is not for everyone by design. It is highly targeted to early adopters who have specific needs (desire to move quickly) that outweigh all other feature requirements. They are willing to invest in a less complete product because to core alone solves an important problem.
The concept of stripping back your product to the very core is the essence of Lean process. Along this line of thinking, maintaining ship readiness is the primary mantra – if you can’t sell your product then your entire company’s existence is at risk. I like the way the Poppendieck ‘s describe it: you should consider product features as perishable inventory. If we were selling fruit salad and you had bananas and apples but no cherries then it makes sense to sell apple/banana medley while you work on the cherries.
Whittling back a product to the truly smallest possible feature set is very threatening and difficult. It forces teams to take risks and guesses that leave you with a product that many customers will reject. Let me repeat that: you’re objective is to create a product that many customers will reject. You must do this because it:
- gets into the market much faster for some customers (earning $ is wonderfully clarifying)
- learn immediately what’s missing (fewer future guesses)
- learn immediately what’s important to customers (less risk)
- builds credibility that you are delivering something (you’re building relationships)
Ironically, while lean approaches exist to reduce risk and guesswork; they will feel very risky and like gambling to organizations used to traditional processes. This is not surprising because our objective is to go faster so initially we will be uncomfortable that we have enough information to make decisions.
The best cure for lack of information is not more analysis! The cure is interacting with customers.
Lean says that you need product if you want to interact meaningfully with customers. This is because customers (even those who are not buying right away) will take you more seriously if you’ve got a product. Talking about products that you are going to release is like talking about the person you wanted to take to prom but never asked.
To achieve product early, you need to find the true minimum product set. This is not the smallest comfortable set. It is the set that is so small, so uncomfortable, so stripped down that it seems to barely do anything at all.
In our case, we considered it sufficient if the current OpenStack release could be reliably and quickly installed on Dell hardware. We believe there are early adopter customers who want to evaluate OpenStack right away and their primary concern starting their pilot and marketing towards eventually deployment.
Mixing Agile into Lean is needed to make the “skinny down” discipline practical and repeatable.
Agile brings in a few critical disciplines to enable Lean:
- Prioritized roadmaps help keep teams focused on what’s needed first but don’t lose sight of longer term plans.
- Predictable pace of delivery allows committed interactions with customers that give timelines for fixing issues or adding capabilities.
- Working out of order keeps the great from being the enemy of the good so that we delay field testing while we solve imagined problems.
- Focus on quality / automation / repeatability reduces paying for technical debt internally and time firefighting careless defects when a product is “in the wild” with customers.
- Insistence on installable “ship ready” product ensures that product gets into the field whenever the right customer is found. Note: this does not mean any customer. Selling to the wrong customer can be deadly too, but that’s a different topic.
- Feedback driven iterations ensures that Lean engagements with customers are interactive and inform development.
These disciplines are important for any organization but vital when you go Lean. To take your product early and aggressively to market, you must have confidence that you can continue to deliver after your customers get a taste of the product.
You cannot succeed with Lean if you cannot quickly evolve your initial offering.
The enabling compromise with Lean is that you will keep the train running with incremental improvements: Lean fails if you engage customers early then disappear back into a long delivery cycle. That means committing to an Agile product delivery cycle if you want Lean (note: the reverse not true)
I think of Lean and Agile as two sides of the same results driven coin: Lean faces towards the customer and market while Agile faces internally to engineering.
Please let me know how your team is trying to accelerate product delivery.
Note: of course, you’re also welcome to contact me if you’re interested in being an early adopter for our OpenStack foundation kit.