I’ve been on both sides at different points in my life.
When I look back on what I and my teams have built it’s pretty clear that the stuff we did best was the stuff we really understood inside out without needing recourse to too many requirements documents. When we built stuff that scratched our own itches.
So this was an interesting read on Nick Carr’s blog about Amazon’s AWS offering. Amazon was able to develop this because it scratched an itch that they had. They were then able to productise the offering and sell it is a value added service.
Amazon CEO Jeff Bezos underscores this point in describing the origins of Amazon Web Services. “Four years ago is when it started,” he says, “and we had enough complexity inside Amazon that we were finding we were spending too much time on fine-grained coordination between our network engineering groups and our applications programming groups. Basically what we decided to do is build a [set of APIs] between those two layers so that you could just do coarse-grained coordination between those two groups. Amazon is, you know, just a web-scale application.” As it developed the APIs for its own applications developers, it realized that the interfaces would be useful, as well, to other programmers of web apps: “And so, look, let’s make it a new business. It has the potential one day to be a meaningful business for the company, and we need to do it for ourselves anyway.”