I recently gave a few talks in which I gave some reading
advice to the audience and I promised to follow-up with posting the links here.
The first article is the interview of Michael Stonebraker by
Margo Seltzer in the May/June
edition of ACM Queue (unfortunately the article is online yet, but this
link seems to work thanks to Peter
O’Kelly). One of the points Mike makes is that almost everything in the data
management world has changed dramatically over the past decade: applications,
operating environments, hardware architectures, but that databases management
systems have stuck to the one-size-fits-all architecture from 25 years ago. He goes
into several examples why there is a need for different approaches to address
application needs and to exploit hardware advances.
I refer to this article in my talks as it resonates strongly
with my experiences. Even if you would only take a narrow look at scalability
and reliability requirements you can see that the traditional database
architectures have clear, well understood, limitations. There are many data
patterns at application level that can be served by simpler data storage systems,
for example applications that only need to access their data store through a
primary key (promotion for this product, shopping cart of this customer,
thumbnail image of this product). One can develop storage technologies that
specifically address this category of applications and that have excellent
scalability and reliability properties and are very cost-effective.
The second reference is a presentation by Richard Gabriel where he lays out a time
model of traditional software adoptions: “Models of
Software Acceptance: How Winners Win”. I use the data from this presentation
for two purposes: the first to show that for companies such Amazon, who require
technologies to address scaling needs that have not even left the research labs
yet, it is essential to accelerate this adoption model through active
involvement with productizing research results. Most often these advanced research
results will come from our own product teams. The second point is how service
oriented software development can help break through the traditional barriers.
A paper I refer to often is “From Push to Pull –
Emerging Models for Mobilizing Resources” by John Hagel and John Seely Brown. This paper
describes the shift in economic models to deal with uncertainty in demand and growing
consumer power, etc. At Amazon we are addressing these new realities with our
web-scale computing services. On-demand, pay-as-you-go, connectable services
are key in the “Pull models” that are arising in many different economic areas.
I use Richard
Conniff’s “Limits
of the Alpha Male” as an easy intro into self-organizing systems and how in
real life self-organizing is a proven concept. For any truly scalable agile
environment, self-organization is essential.
I then use Steve Grand’s “Creation:
Life and How to Make it”
to dive deeper into self-organization and the
emerging properties one can expect of such an environment.