Mayfield Blog

The API-ificiation of software – and LEGOs

LegosToday everything has an API. Facebook has hundreds of APIs across such social areas as friends, photos, likes and events. Google has thousands of APIs across search/AdWords, Web analytics, YouTube, maps, email and many more. Amazon has APIs that cover the spectrum from Alexa Web traffic rankings to e-commerce product and pricing information and even the ability to start and stop individual machines. I spent a decade architecting and building component and services based software, and another decade after that evaluating and investing in infrastructure software, I believe this mobile and cloud influenced wave of RESTful service-oriented software may finally live up to its initial promise.

Although the majority of API attention has centered on consumer Web services, an emerging cadre of startups are focused on infrastructure and business processes. These newcomers are providing a broad range of critical services neatly packaged as frameworks or APIs. Some of these companies, such as Salesforce and Google Maps, are next generation SaaS providers that have built solutions to serve both end users and developers. Others, including Mailchimp and Twilio, are pure play offerings that solely target developers as customers.

Open source helped to reignite the open systems movement in the late 1990s, which popularized the idea of creating public projects and actively soliciting community feedback and involvement. Tens of thousands of open source projects have been created, but only those projects that built sizable communities have thrived. Most of the large infrastructure software categories were eventually filled by strong open source projects and some spawned successful commercial software companies, including RedHat, XenSource, Sourcefire, MySQL, JBoss, Talend and Alfresco. These companies span a broad range — from operating systems/hypervisors to security to middleware and database/content management.

Developers now expect the same instant gratification as end users. Instead of having to download, configure and manage all the associated software components, more and more of these capabilities need to be packaged “as-a-service” — hence, the move to cloud services. It is also important to remember that software development is an art, and programmers want a very simple and elegant programming interface.

These developer-focused startups provide simply packaged programming interfaces for a wide range of cloud-enabled services — from such basic infrastructure capabilities as storing and retrieving files to much more complex business processes, including invoicing, billing and payment processing. In some instances, startups begin by offering a constrained solution around a key feature/function, but then leverage that starting point to broaden the service into a more complete offering. This is the approach that CloudFlare and Urban Airship took, for example.

Targeting developers is not the only thing these startups are doing differently. Leveraging the inherent distribution of the app economy gives these new companies another intriguing opportunity to disrupt the incumbents. The explosive growth in mobile applications and the associated re-platforming means that developers are rebuilding from the ground up and evaluating new technologies at all layers. In addition, the emergence of so many new languages even further complicates the problems for incumbents. Originally written for the C++ and Smalltalk audiences, one of my favorite programming books of all time, “Design Patterns: Elements of Reusable Object-Oriented Software,” by the famous Gang of Four, has certainly influenced software architects on clean and reusable design abstractions.

Here is a broad, but by no means exhaustive, list of some of the potential infrastructure categories and disruptive companies. (If you want an exhaustive list of APIs check out ProgrammableWeb.) Some of the categories are unfilled by potential disruptors, and other categories include pure cloud services as well as software products. (In a follow-up post, I will share another list that includes a range of higher level business process type services.)

Category/Function Incumbents Disruptors
Compute HP, IBM, Dell Amazon, Rackspace, Joyent, Heroku, Node
Networking Cisco, Juniper Amazon, Pertino
WAN Optimization Riverbed, Cisco, Juniper/Peribit  
Load Balancing Cisco, F5, Nginx, Zeus
Disaster Recovery EMC, Symantec/Veritas  
Storage/File Sharing EMC, NetApp Amazon, Dropbox, Box
Email MS Exchange, Constant Contact, Vertical Response MailChimp, Mailgun, Postmark, SendGrid
Telephony Avaya, Nortel 2600hz, ifbyphone, RingCentral, Tropo, Twilio
Chat Microsoft, AOL, Facebook Google Talk, HipChat
GIS/Mapping ESRI, Trimble, MapQuest CloudMade, Google Maps
Anti-malware McAfee, Symantec, Websense Webroot, Zscaler
Web Security Cisco, Checkpoint Cloudflare
Identity Management Active Directory, IBM/Tivoli Centrify, Ping, Symplified
Config/Systems Management BMC/BladeLogic, HP/Opsware, IBM/Tivoli Cfengine, Chef, Puppet, Vagrant
Log Management ArcSight, Splunk Loggly, SumoLogic, Papertrail
App Performance Management IBM Tivoli, HP Openview, BMC Patrol NewRelic, Boundary
Messaging IBM, Tibco Amazon SQS, Urban Airship, Pusher
Data Synchronization Oracle, IBM/Lotus, Symantec/Veritas Couchdb, Simperium
Data Sourcing, Cleansing and Enrichment D&B, Axciom Data.com/Jigsaw, Radius, FullContact
Database IBM, Oracle, Sybase, MySQL Amazon, Google, Cloudant, MongoHQ, Database.com
Data Marketplace D&B, Experian, Axciom Factual, Xignite
Content/Document Management IBM Filenet, OpenText, Sharepoint, Alfresco, Acquia
Testing HP Mercury, CA Gomez, Keynote SOASTA, SauceLabs

In some ways, this isn’t an entirely new approach. During the Web and client server technology cycles, some successful software companies used a similar model of providing libraries (and even DLLs). Crystal Reports made it extremely easy for developers to embed reporting within their applications; Hummingbird and Wollongong offered (TCP/IP) networking stacks; Visigenic provided (ODBC) database libraries/drivers; and Neuron Data and PowerBuilder provided platforms for user interfaces. These examples show that it was possible to build successful businesses at all levels of the software stack.

Consequently, APIs are only the latest packaging as developers transition from objects and class libraries to RESTful services. However, it seems that the promise of service oriented architectures is finally being realized, and it is creating a strong opportunity for innovative business models.

So what does all this mean? Client-server software was replaced by on-premise Web-based apps, which are in turn being replaced by cloud/SaaS solutions. Perhaps the next generation of software will be solutions composed from these APIs/services. All of these exciting startups are proving that developers need — and want — these services. But ultimately, building complete solutions might require a LEGO-like construction kit. Is the future of software about Lightweight Enterprise Gadget Orchestration? Perhaps, there is even an opportunity for someone to provide an Interface Builder (remember NextStep?) that can natively access the myriad of emerging SaaS/APIs.

This article was originally published in Gigaom.