SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
The Care & Feeding of Software

                           Brendan McAdams
                               10gen, Inc.
                            brendan@10gen.com
                                  @rit


Tuesday, November 27, 12
Open Source Scales
                                                                                                                                150,000




                                                                                                                                125,000



                                                                                                                               100,000



                                                                                                                               75,000



                                                                                                                           50,000


                           May ‘10
                                 Jul ‘10
                                       Sep ‘10                                                                             25,000
                                             Nov ‘10
                                                   Jan ‘11
                                                         Mar ‘11
                                                               May ‘11
                                                                         Jul ‘11
                                                                                   Sep ‘11
                                                                                             Nov ‘11
                                                                                                                           0
                                                                                                       Jan ‘12
                                                                                                                 Mar ‘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
The Rule is “Measure Twice, Cut Once”




                           https://jeffpeachey.wordpress.com/2010/07/19/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
Eating Your Own Dog Food



                           for (i <- 1 to ∞)
                             println(“Tests. Matter.”)


                • 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”




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

Mais conteúdo relacionado

Mais de MongoDB

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump StartMongoDB
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB
 

Mais de MongoDB (20)

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
 

Telefonica

  • 1. The Care & Feeding of Software Brendan McAdams 10gen, Inc. brendan@10gen.com @rit Tuesday, November 27, 12
  • 2. Open Source Scales 150,000 125,000 100,000 75,000 50,000 May ‘10 Jul ‘10 Sep ‘10 25,000 Nov ‘10 Jan ‘11 Mar ‘11 May ‘11 Jul ‘11 Sep ‘11 Nov ‘11 0 Jan ‘12 Mar ‘12 Tuesday, November 27, 12
  • 3. "In short, software is eating the world." - Marc Andreesen Wall Street Journal, Aug. 2011 http://on.wsj.com/XLwnmo Tuesday, November 27, 12
  • 4. 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
  • 5. Software is Eating the World • Netflix started as a company to deliver DVDs to the home... Tuesday, November 27, 12
  • 6. 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
  • 7. Disney Found Itself Forced To Transform... From This... Tuesday, November 27, 12
  • 8. Disney Found Itself Forced To Transform... ... To This Tuesday, November 27, 12
  • 9. 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
  • 10. Ingestion = Excretion + = Yeast Ingests Sugars, and Excretes Ethanol Tuesday, November 27, 12
  • 11. Ingestion = Excretion = Cows, er... well, you get the point. Tuesday, November 27, 12
  • 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
  • 13. 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
  • 14. Don’t Tilt At Windmills... Tuesday, November 27, 12
  • 15. ... Or Shave Too Many Yaks Tuesday, November 27, 12
  • 16. 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
  • 17. ... 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
  • 20. Would You Go To a Doctor Who Doesn’t Learn New Things? Tuesday, November 27, 12
  • 21. Lack of Planning != Agile Tuesday, November 27, 12
  • 22. Let’s Remember The Rules Tuesday, November 27, 12
  • 23. This Includes Default Settings Tuesday, November 27, 12
  • 24. The Rule is “Measure Twice, Cut Once” https://jeffpeachey.wordpress.com/2010/07/19/measure-twice-cut-once/ Tuesday, November 27, 12
  • 25. Lead From The Front Tuesday, November 27, 12
  • 27. Eat Your Own Dog Food Tuesday, November 27, 12
  • 28. Eating Your Own Dog Food for (i <- 1 to ∞) println(“Tests. Matter.”) • 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” Tuesday, November 27, 12
  • 29. Bugs... and how to avoid them. Tuesday, November 27, 12
  • 31. Learn To Relax Tuesday, November 27, 12