Developers love APIs for many different reasons. They might browse the ProgrammableWeb directory to be inspired and get ideas for a project. They might be delighted to tie together two disparate sources with their code. One of the biggest reasons developers should love APIs is that APIs save them time — time they can spend elsewhere. And yet, even the smartest developer can be caught answering the question “Can we build it?” with an enthusiastic “Yes we can.”
This refrain from children’s show Bob the Builder is a dangerous-yet-appealing path for many developers. We developers love to solve problems, and to solve them correctly is especially rewarding. Developers see an open source solution, for example, and choose to install it on their servers rather than subscribe to a hosted service.
I’m not advocating against rolling your own in all circumstances. However, it shouldn’t be an instinct. Developers often overvalue the rewards of building their own solutions, such as having more control and avoiding monthly fees. At the same time, they undervalue outsourcing this effort, which includes expertise in the specific technology and ongoing maintenance.
Worst of all, developers forget that any effort used for re-creating a service or an API is effort not spent on the core of what they’re building.
Then we read stories about companies we admire that are undertaking amazing projects in-house. Om Malik has a great piece in the recent Fast Company magazine, which includes examples from Apple and Facebook. The social network created its own servers when it couldn’t buy hardware that would scale like its site needed. Apple similarly built its own chip because it couldn’t source one that advanced as quickly as its iPhone needed.
These are inspiring stories, and I’d give a hand to their achievements. But then I’d look at that same hand and use it to count the number of companies that should follow their lead.
Your technology decisions should solve your current problems or, at most, your next problem. At Apple, the chip performance was a problem. Similarly, Facebook felt the strain on its servers. What’s the problem you need to solve, and do you really need to solve it entirely on your own?
With the rise of API products, there’s no excuse to turn your technical focus away from the central identity of your project. That monthly fee is small in comparison to what you’re giving up by trying to reproduce it. Train yourself to avoid following the instinct to roll your own. Can we build it? Yes we can. Should we build it? Probably not.
Photo by Tom Hughes-Croucher