From Wikipedia: A mashup
is a website or web application that seamlessly combines content from more than
one source into an integrated experience.
From Dharmesh Shah: A gnashup
is a mashup that eventually causes gnashing of teeth because the developer
thought she was building a viable business, when in fact, she was really
conducting a controlled experiment for the benefit of Google and others.
Mashups are all the rage. Many new startups are creating
applications that leverage available web applications that provide APIs (like
Google Maps). These mashup applications put together pieces of web
functionality like search, mapping, photos, news, shopping, etc. into a single,
composite application. These applications weren’t easy to construct
“back in the day” as the web services required to power them simply
didn’t exist. Now, more and more companies are making interesting
web services available for the aspiring mashup developer.
So, what do I have against mashups? Nothing. I think
mashups, as a concept, are a fine thing. As a user, I find them fun and
interesting (and sometimes even useful). My issue is that from an
entrepreneurial perspective, too many mashup startup founders seem to be
working under the misguided notion that they’re building a viable
business – when in most cases, they’re not…
Here are my issues with mashups, and what might cause them to become
gnashups.
- Dependencies
Abound: At the heart of the mashup is the use of
one or more “key” services that make the mashup possible.
In essence, the mashup depends
on the existence of a set of web services in order to work. If one
or more of these services becomes “unavailable”, everything
breaks down.
- Lack
Of SLAs (Service Level Agreements): The above
dependencies wouldn’t be so bad if you could somehow have assurances
or guarantees of certain “uptimes” and availability.
But, in most cases, there is no such guarantee. In fact, many
of the available services mashup developers use today can’t even be
“purchased” (i.e. paid for), and hence there is little
motivation for the providers to offer guarantees or assurances.
- No Good Way Of Dividing Up The Value: Assuming
that there was some possible business model here (I’ll put on my
simple business guy hat and suggest that you might actually charge for
your application someday), its still unclear how the value gets divided up
and who gets paid what. Even if you’re building a revenue
model on advertising, how do the other
service providers make any money?
Absence Of Malicious Intent Is Not
Enough: One of the common arguments I hear from mashup
developers is: “Hey, Google has no motivation to cut me off.
They’re running a multi-billion dollar business.”. I
could even support this argument further by noting that part of Google’s
core philosophy is “do no evil”. However, as it turns out,
this doesn’t really mean much.
For example, lets assume you were writing an application for Microsoft
Windows. This application would be “consuming” software
services (core operating system features) through an API and doing (hopefully)
interesting things. Sound familiar? Remind you of mashups?
That’s because it’s a similar concept. Software developers
have been using third-party platforms and services for a long, long time.
Now, here’s what makes this interesting:
- Microsoft
doesn’t know who you are: When you write Windows applications,
there’s no registration process. You can simply buy the tools
and build your app.
- Microsoft
doesn’t charge you (directly): There’s no
“tax” to you as the software developer. Microsoft makes
its money from the customers that buy Windows.
- Microsoft
doesn’t charge the customer (extra): People that are buying your
application don’t pay more for Windows. More importantly,
Microsoft can’t charge
customers extra for using your application. This is subtle, but
critical. Stick with me.
Now, lets explore this a bit. What if Microsoft made you
“register” with them before you could develop Windows applications
and use their API? What if Microsoft could
(from a technical perspective), turn off your access to their platform at will?
What if Microsoft could
charge you a different fee for access to the Windows API than your competitors?
What if Microsoft could
charge its Windows customers more if they are using your product vs. someone
else’s? Would you write Windows applications? I certainly
wouldn’t. It’d be hard to build a business in these
circumstances that was going to succeed beyond a certain point. The other
party (Microsoft) would have too much power. [Note: I’m going
to be writing about strategic partnerships and dealing with 900 pound gorillas
in a future article].
That’s the situation we have now with mashups that are based
primarily on Google and similar platforms. Back in the day, even if
Microsoft hated your guts, it was very, very difficult for them to do anything
about it, because if you were selling applications running on Windows, they had
no real control over you as a developer. Their software was already
running on millions of desktops, and they couldn’t easily change it just
to spite you. Even then, companies
like WordPerfect and Lotus felt vulnerable because Microsoft could have an unfair
advantage over them.
In a Google mashup world, lets see where we as developers stand:
They make APIs available. But, to use their API, you have to register
with Google and get an account. Not a big deal. Easy enough to
do. But, here’s the catch: Every time your application does anything with the API,
it’s getting implicit approval from Google to do so. Though they don’t
(currently) have any motivation or incentive to cut you off, they could
if they wanted to. They could also charge you a fee, if they wanted to.
They could charge their customers a fee for using your product, if they
wanted to. They have the ability to perfectly
price discriminate (a neat economics concept I learned at MIT) if
they wanted to. As such, your destiny is in their hands. Sure,
they’re likely a benevolent dictator, but as a business guy, that
doesn’t give me the warm comfies (my own term, I didn’t learn this
at MIT).
What surprises me most is that the same community of developers that is
pushing for open standards and open source (Linux, PHP, Ruby, etc.) is also the same community of developers that
at some level is willing to build on a closed platform where the platform
provider has complete control.
What am I missing here?
Moral Of The Story: Putting
too much power in the hands of a few doesn’t seem particularly prudent
for software developers and startup founders. We shouldn’t let the
current wave of innovation cloud the need for sound business strategy.
. Also, if you found this useful, please share it.