Brendan McAdams10gen, Inc.
The Care & Feeding of Software
Tuesday, November 27, 12
Open Source Scales
0
25,000
50,000
75,000
100,000
125,000
150,000
May ‘10Jul ‘10Sep ‘10Nov ‘10
Jan ‘11Mar ‘11
May ‘11Jul ‘11
Sep ‘11Nov ‘11
Jan ‘12Mar ‘12
Tuesday, November 27, 12
"In short, software is eating the world."- Marc Andreesen Wall Street Journal, Aug. 2011 http://on.wsj.com/XLwnmo
Tuesday, November 27, 12
Software is Eating the World
• Amazon.com (and .uk, .es, etc) started as a bookstore• Today, they sell just about everything - bicycles, appliances, computers, TVs, etc.• In some cities in America, they even do home grocery delivery• No longer as much of a physical goods company - becoming fixated and surrounded by software• Pioneering the eBook revolution with Kindle• EC2 is running a huge percentage of the public internet
Tuesday, November 27, 12
Software is Eating the World
• Netflix started as a company to deliver DVDs to the home...
Tuesday, November 27, 12
Software is Eating the World
• Netflix started as a company to deliver DVDs to the home...• But as they’ve grown, business has shifted to an online streaming service• They are now rolling out rapidly in many countries including Ireland, the UK, Canada and the Nordics• No need for physical inventory or postal distribution ... just servers and digital copies
Tuesday, November 27, 12
Disney Found Itself Forced To Transform...
From This...
Tuesday, November 27, 12
Disney Found Itself Forced To Transform...
... To This
Tuesday, November 27, 12
But What Does All This Software Do?
• Software always eats data – be it text files, user form input, emails, etc
• All things that eat, must eventually excrete...
Tuesday, November 27, 12
Ingestion = Excretion
+ =
Yeast Ingests Sugars,
and Excretes Ethanol
Tuesday, November 27, 12
Ingestion = Excretion
=
Cows, er...
well, you get the point.
Tuesday, November 27, 12
So What Does Software Eat?
• Software always eats data – be it text files, user form input, emails, etc
• But what does software excrete?• More Data, of course...• This data gets bigger and bigger• The solutions become narrower for storing & processing this data• Data Fertilizes Software, in an endless cycle...
Tuesday, November 27, 12
Feed & Cultivate Your Software
• If we think of Software & Data this way, cultivation, care & feeding become crucial
• The way we cultivate good software and data?• Good Practices• Good Skills• Hard Work
Tuesday, November 27, 12
Don’t Tilt At Windmills...
Tuesday, November 27, 12
... Or Shave Too Many Yaks
Tuesday, November 27, 12
Don’t Tilt At Windmills...
• It is easy to get distracted in today’s environment
• Keep it simple• Use tools you (and your team) can understand• Use tools and techniques that can scale• Try not to reinvent the wheel
Tuesday, November 27, 12
... And Definitely Don’t Bite Off More Than You Can Chew
• Break work into smaller pieces• You can’t fit a whole pig into your mouth... • ... slice it into small parts that you can consume.
Tuesday, November 27, 12
My Beginning...
Tuesday, November 27, 12
Learn. Constantly.
Tuesday, November 27, 12
Would You Go To a Doctor Who
Doesn’t Learn New Things?
Tuesday, November 27, 12
Lack of Planning != Agile
Tuesday, November 27, 12
Let’s Remember The Rules
Tuesday, November 27, 12
This Includes Default Settings
Tuesday, November 27, 12
https://jeffpeachey.wordpress.com/2010/07/19/measure-twice-cut-once/
The Rule is “Measure Twice, Cut Once”
Tuesday, November 27, 12
Lead From The Front
Tuesday, November 27, 12
Community Matters
Tuesday, November 27, 12
Eat Your Own Dog Food
Tuesday, November 27, 12
• 15 years as a developer taught me this: “Tests seem like a really good idea... I’m tired of fixing my broken crap in production”
for (i <- 1 to ∞) println(“Tests. Matter.”)
Eating Your Own Dog Food
Tuesday, November 27, 12
Bugs... and how to avoid them.
Tuesday, November 27, 12
Continuous Integration Testing
Tuesday, November 27, 12
Learn To Relax
Tuesday, November 27, 12
¿QUESTIONS?
Tuesday, November 27, 12