Tuesday, June 30, 2009

my experience with CDI

In the product development world, there are "mainly" two forms of innovation.
1.Customer Driven Innovation(CDI)
2.Technology Driven Innovation(TDI)

As the names suggest, TDI is all about coming up with a solution to a known problem using a very novel technology(might also be invention of new technology) and CDI is more about finding the right problem that needs a solution.

CDI is a very broad topic and there is no one fixed answer to what it is, What I'm about to write here is just my experiences. CDI is one methodical way of conceptualizing and building something that people are likely to use but not an exclusive epitome of creating money-minting products.

For the last couple of months I've been part of researching the business needs of typical small business owners in emerging markets and to conceptualize a product around them. This is where I got some grounding with CDI techniques.

Ideation:
Usually, you start with a very high level sense of a set of ideas and there are two formal techniques to narrow down the choices.

1. D4D(Design for Delight): Here we ask everyone in the team to write down their good/bad thoughts on sticky notes and stick them against respective idea. So basically against every idea we get a list of goods/delighters and bads.
2. Brainstorming: Above session is followed with a long brainstorming session where every thought received above is discussed collectively and agreed upon.

Once we're done with above, its time to make visits to the target audience(customers) and further drill down the high level idea. This is where the CDI starts, you are talking to/observing the customer and constructing the details of the idea. When you're visiting the customer, Following are some important points at this state to be kept in mind...

1. Watch their (work)activities very closely. Observe very very carefully or maybe try to put yourself in their shoes, lookup the world from their eyes and you might see their business problems.
2. Find out their business priorities and filter the ones where they have problems(or inefficiencies in execution).
3. Find the most important problem they have by sorting them according to the business priority and solving which would make the person happy(and more importantly, for its solution he will be very likely to even pay money)
4. Now design a solution/product(just in concepts) around this problem that solves the problem really really well.

So, Now we have conceptualized a product.

Validation
This is one stage that many people forget about. Most of the times, After conceptualizing the idea, people just create the product with all their might in 8-10 months(or whatever) just to learn that the problem they identified was very real but the the solution(they built) is not quite right to solve it(or not perceived right by the customer). So, one should not forget that its very very important to validate their proposed solution and to fill the gaps(improve the solution) iteratively. And, following is a summary version of CDI techniques for same..

1. Create a UI-prototype(not necessarily in the real software form but some screens or designs on paper are just fine).
2. Go back to your target audience and see how they respond to it, let them show their creativity and allow any modifications if they want to make. Adjust your design according to the feedbacks you receive.
3. Continue iterating step#2 until you come to a fairly stable design.
4. Now, create a running prototype of the product asap and hand it over to a couple of people from your target audience to get a taste of it.
5. Take their feedback about the product, adjust it again and hand over the new version.
6. Keep repeating step#5 until you come to a point where your target audience is really happy with the prototype and *ready to pay* for it. Then we're done here.

Productization
This is a fairly well known stage. Following are few things we should keep in mind at this early stage of building the product.

1. Durable Competitive Advantage: What is the competitive advantage built into the product that noone else can copy and catch up with you.
2. Stickiness: If someone else replicates the product, why users would not be easily able to migrate from you. This brings in the "services" aspect in the product.
3. The viral effect: Can you build some feature in the product so that it automatically spreads itself(not spread as in virus but it should be easy for one user to talk about it to others and very easy for others to get it). It should be easy in the product to leverage word-of-mouth marketing.
4. It should not have chicken-or-the-egg problem. That is, it should not be that for your product to succeed, it needs mass adoption from two communities and one community is not going to adopt it unless you have enough adoption from other community. The only way this can succeed then is that somehow you force one community to adopt it and others will follow automatically, but this is usually very hard to achieve.
5. Have a business model ready, there should always be a very good answer to the question, "Why and Who is gonna pay for it?".

8 comments:

  1. Himanshu,

    A very nice step wise article on CDI and the other key tenets of Innovation. I like the step wise and concise approach you have followed, this will appeal to many engineers out there who want to innovate the right way.

    A suggestion for a follow up article: Given that TDI is probably what most engineers out there are familiar with and practice it will be nice to have you outline why CDI is better in your view.

    Vijay Anand

    ReplyDelete
  2. Hi Vijay,

    Thanks and I'm really glad to see you taking time and reading it all the way.

    I think its not really CDI "vs" TDI but they both complement each other. From where I see it, We definitely need alot of CDI to figure out the right problems to solve but we also need some TDI, depending upon the complexity of problem space, to find solutions to them. I will write more about them as and when I collect more thoughts on each. :)

    Thanks,
    Himanshu

    ReplyDelete
  3. There is an even easier way to conceptualize the difference.

    Paul Graham once wrote that the way to succeed in a startup is to "make something people want".

    TDI and CDI emphaisze different parts of this idea.

    Now, even with the "CDI" concept, there are multiple "schools", some very different from (the Intuit flavor of ) D4D. e.g: See Steve Blank's book "Four steps to the epiphany".

    TDI = "First, make something cool. Then see how ot make money off it". This is the "Google way". They went a few years without any business model at all, just building a cool piece of tech that smashed the existing search companies into the ground. AdWords came about a long time after the company was formed.

    CDI says " find out what people want and build it". This is (arguably ;-) ) the Intuit way

    ReplyDelete
  4. Hi Ravi,

    Thanks, I completely agree that TDI is also very important. But TDI alone usually doesn't take off unless what you built is something very superior. A mix of CDI and TDI has a bit higher chance of success. Even paul graham in his article (at points 10 and 16), http://www.paulgraham.com/startupmistakes.html, seems to give atleast some importance to understanding the users.
    This is just an opinion and may be flawed :)

    Thanks,
    Himanshu

    ReplyDelete
  5. "But TDI alone usually doesn't take off unless what you built is something very superior."

    Yes but the whole point of TDI is to build something so superior as to crush the competition utterly. If you don't do this then it is not TDI.

    As to PG"s comment, I started with PG's quote so I am in agreement. BUT .. (there's always a BUT .. ;-) ) let's ee what *exactly* PG says...

    from point 15,

    "The companies that win are the ones that put users first. Google, for example. They made search work, then worried about how to make money from it. And yet some startup founders still think it's irresponsible not to focus on the business model from the beginning. They're often encouraged in this by investors whose experience comes from less malleable industries"


    THIS is what I meant by "TDI". The "user" is still there, but the work is not "Cutomer Driven" in thesense that some random people go hang around sme random "customer" and then put sticky notes on a blackboard *before* building anything ( ;-) )


    So it is perfectly fine to get great tech to work first with an asbtract notion of "customer" (here people searching on the web) and THEN worry about the business model(how to make money). And we BOTH know companies who don't work this way and need all the i's dotted and t's crossed before a product is launched don't we? ;-)

    ReplyDelete
  6. More PG, from his "Ideas for Startups" article, (in other words this is about how do you decide what to build, which is what "CDI" tries to answer),

    " It becomes: let's try making a web-based spreadsheet and see how far we get. And everyone knows that if you tried this you'd be able to make something useful. Maybe what you'd end up with wouldn't even be a spreadsheet. Maybe it would be some kind of new spreasheet-like collaboration tool that doesn't even have a name yet. You wouldn't have thought of something like that except by implementing your way toward it."

    The last sentence is key.

    So "understand what users want and then build it" is not the perfect idea it seems to be. As I see it, TDI also involves the notion of "user" or "customer" it i just that it is abstract for a while, and there ia belief that sufficiently advanced (over the competition) technology *will* find customers eventually. This is the google model.

    Now *one* version of CDI, otoh, puts *concrete* customers *first* goes around taking notes and talking to them etc *before* building anything. The *beginning* of the sequence of building/ customer interaction offers a clue.

    Now as PG points out withe "web basedspearedsheet" example, you don't necessarily need a masses of "follow me homes" before you build evena "customer driven" app. That is just one way of doing it. Whether it is succesful in a particluar context can be validated only by concrete results(say a revenue stream ;-))

    ReplyDelete
  7. Hmm... In my mind whenever we bring the notion of user, no matter how abstract it is, its CDI and TDI is that great piece of work which does the trick for the benefit of that user.
    That is why I belive its not "either CDI or TDI" but they both are *always* working together for the same end goal.
    This reminds me of master yoda's quote, "Always two there are, a master and an apprentice." (though in our case neither of TDI/CDI are master-apprentice but always together).

    My interpretation of CDI is not just talking to ppl and sticking notes :).But a way to, as PG puts it, "understand the user" so that one can see the bird's eye and hit it with the arrow named TDI.

    ReplyDelete
  8. "In my mind whenever we bring the notion of user, no matter how abstract it is, its CDI"

    in which case all programming is "CDI". When I create a shellscript or even an html page I am doing "cdi" by this definition.

    *All* business, no matter how badly run, uses "CDI" by this (new) definition of yours.

    The definition is too broad to be useful. The adoption of such a broad definition leads us to nice sounding but ultimately useless conclusions.

    "My interpretation of CDI is not just talking to ppl and sticking notes :).
    "

    no but your description of doing it certainly did. I am reacting to what you wrote in the main article not the mystical "yoda definition" you bring up now. My claim is that such shenanigans (as in the original post) have nothing to do with CDI. This is just one company's bureaucratic process for something *called* CDI. Big difference there.

    Again I am responding to the process you identify in your original post "d4d" (this is another meaningless word with zero meaning, but that's for another time) + "brainstorming" (+ sticky notes ;-) ) followed by "follow me homes", followed by a sequence of "prototypes" and then finally "productization" as some kind of well understood "tail on the dog" (in my opinion) completely ,misses the boat on real CDI.

    Sometimes, just building the damn thing no matter how imperfectly, in a week or two, can serve as the "prototype". What would a "paper prototype" of google look like? or Facebook? or Twitter? Skype? Linux?

    To continue,

    "But a way to, as PG puts it, "understand the user" so that one can see the bird's eye and hit it with the arrow named TDI."

    Ahh but this is the crux. No real CDI proponent claims you can always understand the user *before* coding stuff up.

    Using your analogy,in software one can't see always the bird's eye **before** firing the arrow to " hit it with the arrow named TDI." You (often) can't "see the birds eye" before you stat building stuff. It is more like firing an arrow into an arbitrarily shaped gravity field and using the trajectory to guide the next shot and using *that* trajectory to fine tune the next and so on.


    And the analogy is flawed anyway. TDI is certainly not an "arrow" to CDI's "aim". TDI is more like inventing a machine gun in a land of archers and then figuring out the details of the deployment options and doctrine for the weapon use. You may be able to do away with the whole concept of "bird's eye" aiming ;-).

    I think you didn't read (or process) the sentence where I said the *sequence* of building stuff vs "observing a customer" and so on is a key difference.

    Allow me to quote from earlier comments.

    "You wouldn't have thought of something like that except by implementing your way toward it."

    PG

    "Now *one* version of "CDI", otoh, puts *concrete* customers *first* goes around taking notes and talking to them etc *before* building anything. The *beginning* of the sequence of building/ customer interaction offers a clue."

    me. (please note the emphases - the * marks).

    Also you haven't read Steve Blanks "Four Steps to the Epiphany" (I reccomended this in my first comment I think). This is *the* book on CDI in the context of software based startups. When I give a reference and yo don't follow it up, making a coherent counter argument becomes harder ;-)

    More when we meet in person. I have enough in my comments here for a blog post of my own. Look for it in a few days!

    ReplyDelete