The rising power of the Google platform

If anyone ever doubted that Google is a platform company, check out the “Google SDK.” I’m putting this in quotes because what you find there is really an aggregation of a bunch of separate projects than a well-thought-out integrated SDK–that wouldn’t fit Google’s chaos by design operating principles.

That said, it’s hard to ignore the breadth and depth of what’s on offer. Or think about how, regardless of any theoretical openness, using many of these APIs in your applications would tie you and your data inseparably to Google.

I predict than within 2-3 years many projects that depend on third party APIs will start including a data and API portability review just as they have security reviews today. This will come as a result of more and more data living behind SaaS apps and online services, making cloud integration as common as enterprise integration is today.

 

Google API and SDK

Posted in Google, Uncategorized | Tagged , , , | 5 Comments

Eric Ries interview about lean startups

Lean startup meme inventor Eric Ries is in town. He will be at the Lean Startup Circle event on Thursday night. If you are lucky-enough to have gotten a ticket for this, either hold it tight or sell it on eBay.

For the rest, there is another chance. The good people at CSN Stores, an awesome and fast-growing e-commerce company in Boston, have organized a Thursday morning event with Eric. Hurry up and get a spot while there are any left.

I have the honor of interviewing Eric for a second time in a few months–we was at the customer development event I put together in the fall with Future M, General Catalyst and Microsoft. What questions shall I ask him? Leave a comment here or @reply @simeons.

Posted in Uncategorized | Tagged , , , , | 1 Comment

Twilio forwarding and CallerID hack

I like Twilio. They’ve made programming voice fun, something it certainly wasn’t when Dialogic boards were the platform of choice. I’m using Twilio for a new service I’m working on. More on this in another post.

When you start playing with Twilio, a few common needs arise. For me, the first two were:

  • Forward a Twilio phone number to another phone number. In testing, I have to switch between lots of different numbers. Twilio uses Web hooks, i.e., maps phone and SMS events to HTTP requests. I found myself tweaking scripts a few times per day.
  • Registering a Twilio phone number for CallerID. Twilio wants to validate that you control the number you want to register for CallerID. Therefore, they give you a call and ask you to enter a random PIN. That’s not easy to do when the verification call to the Twilio number will result in an HTTP request to some app.

It was the problem of registering a CallerID for a Twilio number that led me to a simple hack that solved both problems. My idea was to forward the Twilio number to my cell phone and enter the PIN validation when I got the verification call. To make things a little easier, I made the forwarding endpoint accept the forwarding number as a parameter.

You use it like this:

http://simeonov.com/twilio/forward.php?to=12345678900

The link is live so feel free to point your Twilio numbers to it. Remember to enter the phone number with the country code.

The code is trivial:

<?php
    header("content-type: text/xml");
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
    if(!$to = $_REQUEST['to'])
        $to = "18005551212";
?>
<Response>
    <Dial>+<?php echo $to ?></Dial>
    <Say>The call failed or the remote party hung up. Goodbye.</Say>
</Response>

One of the Twilio numbers I set up for CallerID is going to be used for outbound calls only. What was going to happen when someone called it directly? That led to another quick Twilio hack–email me instead–which will greet callers and tell them to email you at a given address.

http://simeonov.com/twilio/email-me-instead.php?name=Twilio+Hacks+Incorporated&email=info,+at,+twilio+hacks+ink,+dot+com

Side note: when doing speech to text, you have to write the text in a way that helps the speech engine pronounce it correctly. Note the commas I added to insert short pauses and the mis-spelling of Inc as ink, which I found made the “k” sound a little stronger.

Go ahead, try this by calling (917) 300-0268.

Another “twivial” code snippet:

<?php
    header("content-type: text/xml");
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
    if(!$name = $_REQUEST['name'])
        $name = "";
    if(!$email = $_REQUEST['email'])
        $email = "the feedback address on our site";
?>
<Response>
    <Say voice="woman">Thank you for calling <?php echo $name ?>.</Say>
    <Pause length="1"/>
    <Say voice="woman">Please, email us at <?php echo $email ?>.</Say>
    <Pause length="2"/>
    <Say voice="woman">Goodbye.</Say>
</Response>

I wish Twilio did three things:

  1. Allow for static TwiML to be associated with a phone number. I’d love to just be able to enter some markup in a text box to handle simple cases like the ones above without having to deploy any server-side code.
  2. Automatically allowed us to set up CallerID on Twilio numbers we own. That’s just common sense.
  3. Allowed localhost targets using some type of automatic gateway software (in-page applet or browser plugin or Adobe AIR app). This will make testing so much easier.

Other than that, thanks, guys!

Posted in Web 2.0 | Tagged , , , | 15 Comments

Finally

After more than four years, I finally updated the theme of this blog and added better linking to FastIgnite and FastStartup.

The new theme is Twenty Ten, which sets me up for planned obsolescence in less than three months. Know any great WordPress designers?

Kidding aside, I’ve made extensive tweaks to the theme using only CSS and widgets, because I keep the blog hosted on WordPress.com. I’m at about 300 lines of custom CSS and seven custom widgets. I plan on sharing the code soon so that others can take advantage of the tweaks.

I’d appreciate your thoughts on what you do and don’t like about the blog’s design in the comments.

Posted in Posts | Tagged , | 1 Comment

The Zen of fundraising

When investing in companies through FastIgnite, I usually sell my super-secret value-add as opposed to just cash. See, cash is not that hard to get if you know how to ask for it and there aren’t any obvious reasons for investors to say “no.”

Much of the fundraising advice entrepreneurs get is extremely tactical, e.g., say the following thing on this slide or don’t say “platform”, etc. This may make a first meeting with investors go better but usually leads to disillusionment and a pass later on in the process. It’s a lose-lose proposition. Both sides spend precious time and go nowhere.

I prefer a more fundamental approach, one that attempts to help build a business with fundraising simply an artifact of that broader goal. A founding team must discover its core strength and the reason why they, as opposed to the other dozen smart teams going after similar ideas, are going to win. This requires intellectual honesty and emotional maturity. It’s hard work. It may point out significant holes in a team’s capabilities or issues with the company’s business model. Then the work gets harder. Companies that face these challenges come out stronger and much better prepared to raise money and grow.

Here are a few of my posts I tend to refer founders to over and over. I hope you find them helpful.

Posted in FastIgnite, startups, VC, Venture Capital | Tagged , , , , , , | Leave a comment

FastStartup

Through FastIgnite I work closely with entrepreneurs as a co-founder, investor and mentor. Today, FastIgnite gets a partner – FastStartup. While FastIgnite is primarily about my work, FastStartup will be more community-oriented.

FastStartup will do some events, like the sold out Customer Development: The Second Decade. Let me know if you want invites to future events.

FastStartup is about to take part in something BIG. More on that tomorrow at the event.

Posted in FastIgnite | Tagged , , | Leave a comment

The Startup Holy Trinity

My last post was about agile ideologies, the practice of suspending disbelief and trying something without too much thinking or tweaking for long-enough to collect quality data but not long-enough to go native and lose perspective.

A great starting point for practicing agile ideology in startups is The Startup Holy Trinity:

  • Agile development for high-velocity product execution
  • Cloud deployment for managing operating costs
  • Customer development for achieving product/market fit

Pick a methodology and, unless you are already an expert in it, follow it blindly for two iterations. Put incentives that support your team’s blind faith. Make it fun. Make it competitive. Make it understood exactly when blind faith will go away.

Unless you have a very good reason or two why your product can’t be running on infrastructure-as-a-service (IaaS) or, even better, a platform-as-a-service (PaaS) provider, try the cloud. Take the top two reasons why you think you can’t deploy to the cloud and question the assumptions they are based on. Early stage startups don’t have Innovator’s Dilemma but their founders do. Don’t be like those to looked at Windows 3.0 in 1990 and thought they needed their Unix workstations or like the those who laughed at the Web’s clunkiness in 1994.

Customer development is the tricky one. The methodology is iterative and self-regulating but the iteration lengths can vary. It’s easy to know when to initiate blind faith but not so easy to know when to stop. It’s an issue a number of us are starting to think about and one we’ll cover at Customer Development: The Second Decade.

Where I will deviate from the traditional lean startup thinking is on the topic of bootstrapping. I simply do not see the type of fundamental, long-term transformational benefits coming from bootstrapping that I see from agile development, cloud deployment and customer development. Don’t get me wrong, I like bootstrapping, have used it and have recommended it to others in the right circumstances. But bootstrapping has an opportunity cost and there are common anti-patterns that lead startups to under-perform in bootstrap mode.

Posted in cloud computing, startups | Tagged , , , , , , , , | 6 Comments

Agile ideology in startups

I am not a fan of ideologies. Inflexibility of thinking or the ability to take reality into account rarely leads to great outcomes. Just look at history. Methodologies, on the other hand, I like. The difference between the two is in the level of critical thinking. A good methodology isn’t just a set template. It is an evolving, data- and introspection-driven process that’s very much reality-based.

There two big problems with methodologies, or rather, with the way we adopt them that lead to failure. The first is lack of commitment. The second is premature optimization.

Many methodologies require a significant investment of time and effort, not just of an individual but of entire teams and organizations, before the benefits start showing up. The animal brain inside us doesn’t like delayed gratification. We invest half-heartedly into a methodology and then back out. It’s like quitting karate training after a year because we can’t split bricks with our bare hands. Early data can be too random due to poor selection of data sources and small sample sizes, as in the case of a startup’s first customers. We have to give the new thing a chance.

At times we start tinkering with a methodology too soon, before knowing enough or having enough experience to understand the trade-offs we are making. We call it “adapting the process to our special circumstances.” (Funny how every one has special circumstances.) This is premature optimization–which is “the root of all evil” according to the venerable Donald Knuth. In agile development, for example, Jeff Sutherland, one of the creators of Scrum, calls this practice of the methodology “Scrum But” as in, “we do Scrum but in our case we don’t do A and B and we’ve started doing C.” Jeff and other agile practitioners have overwhelming evidence that organizations with little agile development experience are much more likely to lose than gain when they customize a methodology before having developed the experience and judgment to understand the impact of the changes.

I see many examples of useful methodologies failing inside startups because of the of the above reasons. Time pressure makes delayed gratification difficult. Resource and team constraints as well as passion, vision and arrogance make premature optimization seem like a very smart thing at the time.

Startups have to be “all in” for a good length of time in order to be able to get quality data about the performance of a methodology. They have to practice “suspension of disbelief”, a phrase I learned from my friend Charles Teague who now runs FitNow, maker of Lose It.

If the difference between practicing a methodology and practicing an ideology is in the level of critical thinking then how does suspending disbelief fit in? Let’s call it the practice of agile ideology. The idea is that before committing to suspend disbelief, a team needs to make an explicit decision about when it will bring full-strength, data-driven critical thinking back in. The goal of the “ideological period” is to protect us from our own worst instincts. The goal of the precisely-defined condition for allowing disbelief back in is to protect us from going native. Here are some practical examples:

  • Agile development practitioners recommend that inexperienced teams go through at least 2-3 full iterations before they start tuning their practice of a methodology.
  • In A/B testing you can use the convergence method to get a better sense of when to discontinue a test.

One of the areas where I don’t have a good rule about when to believe and when to question is in customer development. While the model is very iterative, the amount of effort spent per iteration and the estimation of the quality of data coming back is something I need to learn more about. I’ll ask that question of Bob Dorf, the guest speaker of a free customer development event I’m putting together with General Catalyst in two weeks as part of FutureM. Bob is a long-time partner of Steve Blank, the father of customer development, and a co-author of Customer Development: The Second Decade—a dramatically-updated Four Steps to the Epiphany. This is going to be the first “under the covers” look at the latest in customer development.

I hope those of you near Boston can come to the event. Even if you can’t, please share the details with your startup friends from the main event page so that they can benefit from Bob’s perspective and the discussion.

Posted in Life, startups | Tagged , , , , , , , , | 9 Comments

The master moves to the cloud

Fact: data is moving en masse from PCs and enterprise networks to SaaS applications in the cloud. This trend will reshape the computing industry and change the very core of how we think about data and applications.

For example, we now think about our pictures as stored on a PC or Mac, uploaded through a USB cable and protected by an online service such as Carbonite or Dropbox. We select which pictures to put in Facebook, Flickr or Picasa Web Albums. In a couple of years we’ll think about the pictures as stored primarily online, directly uploaded there by our WiFi or UWB-enabled camera and protected by a service such as Backupify (yes, we’ll still need backups).

Our computers’ will still have our documents and pictures and music downloads but these won’t be the “master” copies but serve merely as performance optimization and offline access caches for the data, in the same way you can read your email on a plane with no WiFi access using Google Gears for Gmail and Cached Exchange mode for Microsoft Outlook. Amazon’s Kindle is another good example. I read my Kindle books on my laptop, iPad, iPhone, Blackberry and, oh yeah, Kindle. All my content is there, locally cached for fast access without requiring connectivity with the latest read position automatically synchronized without me having to even think about it.

Side note: A few weeks ago Google deprecated Gears with an eye towards HTML5 offering more standard approaches for building these types of application experiences. I would expect significant extensions–going well beyond HTML5–to show up in ChromeOS.

The change will profoundly impact both the hardware and SW industry. On the hardware side, it benefits netbooks and tablet devices as well as smartphones. On the software side, it benefits third-generation SaaS players who are targeting this deployment model as they will have a noticeable performance and user experience advantage over current-generation Web apps.

I’m even more excited about fourth-generation SaaS apps whose user experience will automatically scale up and down with the capabilities of the client-side hardware and bandwidth constraints, similar to the way some gaming engines & services work today.

The shift of master data from PCs and local networks to the cloud creates significant opportunities. Get in touch if you are working in this area–I’d love to hear from you.

Posted in cloud computing, Google, Microsoft, startups | Tagged , , , , , , , , | Leave a comment

Finding the best startup customers

Phil Libin (@plibin, CEO of Evernote), Alexei Erchak (CEO of Luminous Devices) and I did a session with the Boston chapter of the Founder Institute last night. Towards the end of the program we listened to several startup pitches. Every startup was tackling an important problem for a large audience and they all said something along the lines of:

  • My target audience is […]. There are […] thousands/millions of these businesses/people in the US.
  • Our goal is to have [a few dozen .. a few tens of thousands] of users in the first few months after launch.

In working with startups, I hear this all the time. What I don’t hear enough of is how a company is going to select its very first customers. Unfortunately, that’s because most early stage startups don’t select their early customers. Instead, they are happy to have any customers. They are simply trying to get customers as opposed to select them. In that lies the root of many problems startups have with product/market fit and building scalable go-to-market models.

Let’s set the record straight:

All customers are not the same. Some are good, some are bad.

Therefore:

All revenue is not the same. Some is good, some is bad.

One of the worst things that can happen to a startup is dealing with and especially taking money from a bad customer. The definition of a bad customer varies based on the nature of the business you are in. Some common examples in the enterprise space include businesses who’d love to have you as a custom development shop as opposed to buy lots of product from you. In the consumer space, those can be users who have a negative product experience and then start spreading the word about it to their social network. These are cut and dry examples but there are much subtler ones.

Startups listen closely to their initial customers. That’s good, up to a point. Customers are the lens through which a startup sees the market it is going after. If the lens distorts reality in some way, especially if the company is unaware of that fact, this can lead to a series of product and business decisions with lasting and often irreversible implications for a company. Someone once said that customers own the company’s product roadmap. If a company cares about its roadmap, it better care about who its early customers are. It should therefore spend time thinking about how to select who its early customers are. That’s especially true if the company is going after a large target market.

Here’s an example of why this is the case. Say your target market is moms with kids under X years old. Let’s say there are 10 million of them. Your plan calls for having 1,000 moms use your super-cool product in the first month growing to 10,000 moms by the end of the third month. Further, let’s say that you’re doing agile development with two week iterations. In three months you’ll do six iterations collecting feedback from 0.01% to 0.1% of your ultimate target demographic. If all moms are the same and they all use your product in the same way that sampling rate would be sufficient for you to evolve the product in the right direction. Chances are that that’s not the case for your product. That creates two problems. First, you won’t have large-enough sub-samples to understand the various sub-groups within your target audience. Second, and what often hurts startups much more, is that your feedback pool will be a mishmash of what’s important to different sub-groups. If you listen and implement what the aggregate group of your customers asks for you may not be able to create an outstanding product experience for any one sub-group.

If you are building something that’s targeting a problem for a large audience (10M moms) the go-to-market question you should be asking yourself is not whether you can find some early users (1,000 out of 10,000,000). Instead you should be asking how do you select (or, to use inbound marketing terminology, make yourself discoverable by) the right 1,000 moms and what to do with any other mom that wants to use your product.

It is not often easy to figure out the profile of the best early customer for a startup. There are lots of trade-offs, for example:

  • Someone who’s cheap to acquire and may not love the product vs. someone who’s expensive to acquire but will likely love your product?
  • Someone you can learn from vs. someone you can get money from?
  • Someone you can get money from now vs. someone you can get more money from in the future?
  • Someone who has influence (Walt Mossberg) but whose negative opinion can hurt your brand and even fundraising ability?
  • Someone who has a big brand but who’ll be slow to sell to, overly demanding and difficult to support or a nobody who you can make really happy?
  • Someone who helps you reach critical mass (in a geography, interest community, etc.) at higher acquisition cost vs. anyone who wants to be a customer?
  • Etc.

The right combination of trade-offs depends on many factors unique to any given startup. My call to action for entrepreneurs is to do the following:

  1. Make a hypothesis about who your best early customers should be based on current product, roadmap and resources.
  2. Validate that using your favorite techniques such as customer development
  3. Develop a mechanism for determining whether a potential customer is of the right type
  4. Create and validate an acquisition plan for that type of customer. Repeat 1-4 as necessary.
  5. Explicitly decide how to handle potential customers who are not of the right type

The last point is very important and something startups typically find very difficult to do. Saying no to customers (revenue, etc.) is not easy. But remember: you don’t want the wrong type of customer. It can lead to problems with product/market fit, cost of sales and support, product and brand perception, capital efficiency and fundraising, etc. It can cost your team countless hours of work down the road and tons of money. Stop thinking of your customers as merely a source of benefits (validation, information, revenue) and think through the reduction in your ability to be an agile startup and real end-to-end costs associated with your ongoing commitment to deliver an outstanding product experience to them for years.

You don’t have to say yes to all potential customers. There are effective strategies for diverting and capitalizing on unwanted interest. Two that I’ve been using with the startups I’m involved with through FastIgnite are to either be honest and tell interested parties that you are not ready to have them on but you’ll let them know when it’s the right time or to set up qualification hurdles to gather data and validate fit and interest. I’ve worked with some companies that used smart automation combined with techniques from behavioral economics to not only make this a low/no-touch process but also to build up demand for their product by having non-customers market it. How’s that for turning lemons into lemonade?

What if you can’t find your ideal customers? That’s a real problem but the best solution certainly isn’t ignoring the root cause and acquiring lots of random customers. A good topic for another post…

Posted in FastIgnite, startups | Tagged , , , , , , , | 2 Comments