OK I'll admit it: I'm an API-oholic. I'm addicted to APIs. In the nerdy tech world, APIs are old news, but to most regular folks, the term APIs is just a confusing acronym. It is my goal to de-mystify the API a bit in this post, and explain how APIs are changing the world in very real, tangible ways that will matter to you.
First, a definition and a bit of history. API stands for Application Programming Interface. That's also a pretty incomprehensible set of words to most people. So let's simplify: For the purpose of this blog post, think of an API as a key that opens a door to a room you really want to get into.
Let's take this fantasy analogy a bit further. Let's imagine that there are rumors that there's an island in the Pacific ocean that's inhabited by a previously unknown group of humans which have never before had contact with the modern world. They don't speak English, but it just so happens that their little island is known to have a tremendous stockpile of diamonds and gold. There's a mad rush by many people to figure out where this island is located so they can lay claim to its natural resources.
But the inhabitants of this Secret Island are smart. They know how valuable their gold and diamonds are, and they know that by allowing the modern world to find them, they'll be in danger. So they send an ambassador to strike a compromise, and that ambassador happens to find you (imagine the odds -- it's your lucky day!)
The ambassador tells you that the entire modern world can communicate with their island through a special interface they've set up. And they will answer, but only if the communication happens on very specific terms -- their terms. They won't answer to any random requests.
This interface he gives you happens to be through a computer terminal. Well, that's convenient, they know how to use computers.
This ambassador gives you a special URL through which you can contact his people. It looks something like this:
That wasn't so bad, right? Well congratulations, you just parsed a real API request -- the new Census Bureau's API, which is detailed here. But let's stay in fantasy land a bit longer before we return back to the real world.
So why is this such a big deal? Well, every database is like that Secret Island, full of diamonds and gold that others want access to. And throughout much of modern technology's history, there has not been any good way to give others access to a company's data without running the risk of it being accessed inappropriately. In fact, earlier in my career I worked for GE's Electronic Data Interchange business, where we did a lot of data mapping. One company would provide access to their data in a very rudimentary, proprietary way, and we had to map it to another company's database structure. It was a mess, and GE had an entire business to help companies communicate with each other. This is the way the world used to be.
But the rise of APIs is incredibly exciting because it gives all of these companies ways to give the world access to their Secret Islands -- their data -- in carefully structured ways. And that's what Application Programming Interface means: A set of instructions that says "if you get a key from us, and you use it responsibly, we will continue to give you carefully structured access to some of our data. You won't get access to everything, but we'll give you some of it, and if you behave yourself and prove yourself to be reliable and trustworthy, we may then decide to give you access to more of it."
This means that, for the first time, creative people can start getting bits of data from various Secret Islands and use it. And that is a big deal for a number of reasons. Let's explore them:
Reason #1 that APIs are a big deal: Data Mashups
Being able to get Secret Island data from various islands and mash it together means you can start adding context to data, and you end up with a scenario where the whole is greater than the sum of the parts. HousingMaps is an example. It mashes Craigslist data up with Google Maps. Click here to see seven other great mashup examples.
Reason #2 that APIs are a big deal: Focus on what you do best, and outsource the rest
APIs let you focus on what you do best as a business. Our company, Socialize is a great example of this new breed of API offering. We have a drop-in social platform offered as an API and SDK which lets any mobile app developer instantly create a social platform inside of his app. So a developer can do in minutes what would otherwise take months or years to do, and since it's all we focus on, we do it better than he ever could. Start looking for more of this "do what you do best and outsource the rest" attitude to start permeating business more and more as people get used to the idea of offloading non-core parts of their processes and infrastructure to others.
Reason #3 that APIs are a big deal: Work more efficiently internally between teams inside companies
But why stop at using APIs externally? Really progressive companies are starting to use APIs to make communication between internal departments more efficient. Is the marketing department always bugging the engineering department for last month's growth numbers? Just create an API for them to consume instead. No longer will engineers feel like they have to drop whatever they're working on to respond to the marketing department's requests. Amazon is a best-in-class leader in this area, and I wrote a blog post about it previously. The really great side benefit you get from this approach is that if an API is popular internally, the company can better document and bulletproof it for public consumption. The Socialize executive team talked about our internal use of APIs recently in this infrastructure video.
Reason #4 that APIs are a big deal: New channels & revenue sources for companies
This one is really progressive, but looming on the horizon in such a way that businesses that ignore it do so at their own risk: Whatever your business is, if you offer a digital product of any type, you need to consider re-packaging it as an API. Let me give you an example: Let's say you run a software company that helps people manage their finances. And for the past 30 years, you've been shipping this software in a box, and it's typically been purchased at retail outlets. Business is good, but where do you expand from here? Well, what if you turned your finance-management tools into an API? This would allow others to gain access to it in new and creative ways. Maybe I'm a mobile app developer and I create a car shopping app. I might include functionality from your API in my app so that my users could calculate the monthly payment of a new car, and then see if they have the funds available to afford that vehicle over the life of the payments. Even better, your API might let me offer my users ways to contact various banks to get quotes for a car loan. In this way, you as the financial company offering the API are creating entirely new channels of business.
Reason #5 that APIs are a big deal: Others are more creative than you
What the top four reasons boil down to is that almost always, the world at large will find ways to be more creative than you, and you'll find that by exposing your diamonds and gold -- your data -- in a structured way via an API, it will be mashed up and used in ways you could never have imagined. That's what innovation is really all about, and we're about to see an explosion of it with the coming onslaught of APIs.
If you're curious to learn more, I talk more about the rise of APIs in my 45 minute talk about why I believe mobile is way bigger than most people imagine.
Oh, and kudos to our government for requiring that every federal agency create an API. It's not often that we see our government being more progressive than private enterprise. We'll see how they do on the execution side of things.
WOW I'm checking Zapier out and it looks incredible. It's basically an API mapping layer.
Here's an example of a trigger I could create:
When a new activity happens in Pivotal Tracker, Send me an IM.
Here's another great example of API mashups to determine whether to ride a bike or take the tube to work: http://blog.oftcc.net/post/39219681688/the-bicycle-barometer-takes-data-about-the
This is BEAUTIFUL.
Over the last week, I've gotten turned onto programming/coding/development, and as i'm wading into it, a lot of it sounds like jibber-jabber. But this lays API's out in such a clear way and THEN lets me know exactly what I could do with them.
AWESOME job. I'll be coming back here more often.
Tody I moderated a discussion today with Socialize executive team members Jason Polites, Isaac Mosquera and Sean Shadmand about how Socialize has created an infrastructure that supports over 7 million API requests per day, 2.5 million social actions (now creating over 1 million new actions per month), 100,000 new users per day, over 7,000 SDK downloads, thousands of live iOS and Android apps running Socialize, all doubling monthly.
I have been getting requests from many companies of all sizes asking how Socialize has built and scaled a large infrastructure with just an 8 person engineering team. Other startups interested in offering APIs and SDKs have wanted to know what we've learned and what pitfalls to avoid, and larger, progressive Fortune 1000 companies have been interested in re-working their infrastructure to be more scalable and efficient.
A partner at Accenture recently told me that I should share some of the secret sauce for other companies to learn from. The Socialize team believes in being as open as possible with non-proprietary knowledge sharing, to help others benefit from what we've learned, and in turn to be able to learn from others as well.
Socialize has created a drop-in social platform that greatly boosts mobile app installs and engagement. If you don't yet know what Socialize does, you may want to learn more about that here before watching this infrastructure talk.
Tody I moderated a discussion today with Socialize executive team members Jason Polites, Isaac Mosquera and Sean Shadmand about how Socialize has created an infrastructure that supports over 7 million API requests per day, 2.5 million social actions (now creating over 1 million new actions per month), 100,000 new users per day, over 7,000 SDK downloads, thousands of live iOS and Android apps running Socialize, all doubling monthly. I have been getting requests from many companies of all sizes asking how Socialize has built and scaled a large infrastructure with just an 8 person engineering team. Other startups interested in offering APIs and SDKs have wanted to know what we've learned and what pitfalls to avoid, and larger, progressive Fortune 1000 companies have been interested in re-working their infrastructure to be more scalable and efficient. A partner at Accenture recently told me that I should share some of the secret sauce for other companies to learn from. The Socialize team believes in being as open as possible with non-proprietary knowledge sharing, to help others benefit from what we've learned, and in turn to be able to learn from others as well. Socialize has created a drop-in social platform that greatly boosts mobile app installs and engagement. If you don't yet know what Socialize does, you may want to learn more about that here before watching this infrastructure talk. Here's the video, with a summary of the discussion points below: > In this 45 minute discussion, the Socialize executive team discusses: How Socialize approaches infrastructure from the perspectives of process and business logic How teams of one to two employees each for API, iOS SDK, Android SDK, Web and QA work together to create a modularized API infrastructure How Socialize teams use APIs to communicate internally within the company to create accountability, efficiency and speed Best practices in segmenting internal teams around APIs, including integration testing, unit testing, minimizing distraction and documentation How to then break APIs up into products which can be exposed beyond the company internally, and how each API has its own Pivotal Tracker, Github issue tracking, Sphinx auto-generated documentation and change-request systems How Socialize treats internal teams as customers of each other, and uses that approach to define and refine the scope of the product, and limits feature creep How the SDK team becomes the 'head of the product,' scoping and defining functionality back into the company as one of the teams The value of hardlining, staying away from perfecting an unreleased API, and getting good at creating a plan to deal with grwoth Using a specific approach to scrum Socialize calls "short-cycle scrum" and tools like Basecamp, Google Docs and Pivotal Tracker to manage situation which often come up, such as capturing and implementing ideas from employees and customers in a structured, productive way, how to stay away from premature design discussions, and how to innovate asynchronously. How short-cycle scrum allows each team member to be a product lead within their team, Taking full advantage of Amazon services for databases, redundancy, queueing, hosting, scalability, load balancing, all done programmatically, which allows for spooling up of infrastructure literally in minutes The benefits of agile development methodologies, and specifically scrum, for those who haven't already used it for development, and how to trust scrum even though it is counter intuitive to remove dates from projects The importance and value of prioritization of focus, and how we use these methodologies to do that, and make the less important things fall away How Socialize is breaking up the Socialize action bar into modular components How on a micro level, within the code base, the Socialize SDK communicates across the stack using the same type of modular infrastructure Socialize employs as a company at a macro level Best practices around continuous integration with TeamCity, code coverage and testing, using GetSatisfaction for support, and how this approach makes support easy How Socialize has implemented Splunk not just for log monitoring, but also at the application level for business intelligence, reporting and alerting, and even exposing Splunk data to Socialize clients
At first I was amazed that lava jewelry was a "thing." Little nuggets of roadside gravel wrapped in gold and silver? What a concept.
I get the appeal of semi-precious stones, and think, in many ways, they're more appealing than overpriced diamonds and other expensive gems. But when an island is made up entirely of a substance (hardened magma) that is then lovingly crafted into rings and things and placed in upscale storefront windows with a hefty price tag….??
Well, visitors to Iceland have voted with their pocketbooks, and lava jewelry gets a big thumbs up. It's a great conversation starter wherever you wear it, and gives you a chance to rave on about your recent visit. It's made by local craftspeople, so it helps the Icelandic economy. And no indigenous people were enslaved to toil in inhumane conditions to mine these "gems." You can pick them up at the side of the road virtually anywhere. Lava is natural, sustainable, and unique.
Only the lumpy lava is Icelandic.