SlideShare una empresa de Scribd logo
1 de 97
Controlled Chaos
         A case study of introducing Rails into an
         operational NASA system


         Dan Pilone / Jason Gilman

                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
ECHO Key Metrics

              Support 13 Data Centers
              3200 Earth Science Datasets
              ~100M pieces of science information
              ~100% uptime*



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman   *excluding planned maintenance

Wednesday, June 1, 2011
Why are we talking about this...



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
http://pastorweasel.blogspot.com/

                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Why did we do it?



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Problem had changed



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
WIST




                                                                 ECHO




                                                                    ECHO
                                                                     DB


                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
WIST




                ECHO




                     ECHO
                      DB



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
WIST




                ECHO




                     ECHO
                      DB



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
WIST




                ECHO




                     ECHO
                      DB



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Technology had changed



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
WIST




                ECHO




                     ECHO
                      DB



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
WIST

                                                                        Perl

                ECHO
                                            <!DOCTYPE xml PUBLIC “-//W3C//DT
                                              <html> bgcolor="red">
                                                <body
                                                <?xml
                                                  <html> bgcolor="red">
                                                  <body
                                                    <h1>
                                                      <h1>
                                                      <body shouldn't be static.
                                                      This bgcolor="red">
                                                         This shouldn't be static.
                                                    </h1> <h1>
                                                      </h1> This shouldn't be static.
                                                </body>
                                                  </body> </h1>
                     ECHO                   </html>
                                              </html> </body>
                      DB                          </html>




                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
??????




                ECHO




                     ECHO
                      DB
                                                                              ?
                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
WIST




                ECHO




                     ECHO
                      DB



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
WIST




                ECHO




                     ECHO
                      DB



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
WIST




                ECHO




                     ECHO
                      DB


                                                                                   REST API...
                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
But there was hope...



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Agile Process



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Very Talented Team



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Fantastic Customer and
                      Management support


                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
What did we want?



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Happy customer



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Top Notch Client



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Happy Developers



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Quality Development
                               Experience


                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
We had about 10 months...



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
...and 4 developers...



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
We went shopping.



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman   http://www.cheapbeast.com/profile-vicky


Wednesday, June 1, 2011
Prototyping is hard.



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Developers are harder.



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Why Rails?


              Lots of community “sell”
              JRuby gave us a transition path*
              RailsConf




                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
What Rails offered us

              Developer interest and excitement
              Clearly the right tool for the job
              Hoped for a significantly reduced code base
              Hoped for rapid development and releases



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
What did this impact?



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Everything.



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Java Developers



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
List<String> names = new
                                                       ArrayList<String>();




                                   Java Developers



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
List<String> names = new
                                                       ArrayList<String>();




                                   Java Developers



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
List<String> names = new
                                                       ArrayList<String>();




                                   Java Developers

                                                            expe
                                                                      rts!


                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
List<String> names = new
                                                       ArrayList<String>();




                                   Java Developers

                                                            expe
                                                                      rts!         Monthly Iteration

                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
List<String> names = new
                                                       ArrayList<String>();




                                   Java Developers
        Dedicated Test
            Team                                            expe
                                                                      rts!         Monthly Iteration

                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
First Attempts



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Adopting a new language



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
ACTFL Stages


                                                      1.     Novice
                                                      2.     Intermediate
                                                      3.     Advanced
                                                      4.     Superior


                                                                   http://www.languagetesting.com/scale.htm
                                            http://www.sil.org/lingualinks/languagelearning/otherresources/
                                          gudlnsfralnggandcltrlrnngprgrm/IntroductionToGuidelinesForALa.htm
                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Novice

              Can not hold a conversation
              "memorized survival phrases"
                    "Where is the bathroom?"
                    "What time is it?
                    "Check, please."


                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Novice Equivalent



            $ rails generate scaffold
            Post name:string title:string
            content:text


                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Intermediate
              Conversations with pauses,
              inaccuracies, and self
              corrections
              Struggle to answer questions
              "vocabulary and syntax are
              strongly influenced by their first
              language"
              "I + want + beer + for + me +
              drink"
                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Intermediate Equivalent
                               class Person
                                 def getName()
                                   @name
                                 end

                                  def setName(newName)
                                    @name = newName
                                  end

                                 def self.getNames(peopleList)
                                   nameList = Array.new()
                                   for(person in peopleList)
                                     nameList.push(person.getName())
                                   end
                                   return nameList
                                 end
                               end

                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Advanced

                    "connected narrative discourse"
                    "comprehend language related to
                    a vast range of topics, situations
                    and contexts"
                    "easily process many social
                    nuances"



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Advanced Equivalent

                               class Person
                                 include XmlSerializer

                                    attr_accessor :name

                                 def self.names(people)
                                   people.map &:name
                                 end
                               end


                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Superior
                     "increasing facility in
                     abstract and hypothetical
                     discussions"
                     "provide lengthy and
                     coherent narrations, all
                     with ease, fluency, and
                     accuracy"
                     Ability to speak at length
                     on abstract topics
                     without hesitation.

                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Superior Equivalent


                 module ActiveRecord
                   class Base
                     def method_missing(method_id, *arguments, &block)
                       # generates find_by_field type methods ...
                     end
                   end
                 end




                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
100%



       75%



       50%



       25%



         0%
          Novice                            Intermediate                           Advanced   Superior

                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Everyone starts here
     100%



       75%



       50%



       25%



         0%
          Novice                            Intermediate                           Advanced   Superior

                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Everyone starts here
     100%

                                   2 weeks to 2 months
       75%



       50%



       25%



         0%
          Novice                            Intermediate                           Advanced   Superior

                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Everyone starts here
     100%

                                   2 weeks to 2 months
       75%
                                                                          3 - 6 months
       50%



       25%



         0%
          Novice                            Intermediate                           Advanced   Superior

                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
8 months to a year
         Everyone starts here
     100%

                                   2 weeks to 2 months
       75%
                                                                          3 - 6 months
       50%



       25%



         0%
          Novice                            Intermediate                           Advanced     Superior

                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
We got a little better...




                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
git




                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
celerity                                   git
     jasmine
                                                      mocha
                      FactoryGirl                                       formtastic
                                                   soap4r              rspec       echoe

                                     jammit
                                                                sass
          cucumber                capybara
                               nokogiri   rufus                             minitest




          webrat 2011 - Controlled Chaos - Dan Pilone - Jason Gilman     xmlsimple
            RailsConf
                                  TestUnit
Wednesday, June 1, 2011
Deadlines were getting closer


                    Developer unrest
                    Working long hours
                    We weren't getting things done




                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
http://www.flickr.com/photos/ewwhite/4462922520/
                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Java
                               • Got things done
                               • Dissatisfied by the technology
                               • Bored

                                                    Unhappy
                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Rails
                          •We weren't getting things done
                          •Technology Unfamiliarity
                          •Frustrated

                                                    Unhappy
                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Developer Happiness

                                                             Challenged

                                       Meaningful Work                        Language



                                                                             Workplace

                                                            ?



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Developer Happiness

                                                             Challenged

                                       Meaningful Work                        Language



      Productivity                                                           Workplace

                                                            ?



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Am I trying to understand a business problem or am I
      trying to figure out why bundle install just failed?




                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
http://www.flickr.com/photos/ladybeames/2896787167/
                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Addressing the problems

              Disciplined refactoring and introduction of new gems
              Communication
                    Brown bags
                    Chat rooms
                    Pair programming
                    Wiki

                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
http://www.flickr.com/photos/camknows
                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Things we worried about...

              Maintainability
              Technical longevity
              Learning Curve
              Developer buy-in



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
...but didn’t need to.

              Maintainability
              Technical longevity
              Learning Curve
              Developer buy-in



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
...but didn’t need to.
                                                                                    Lines of code


                                                                     300000
              Maintainability
                                                                     225000
              Technical longevity
                                                                     150000
              Learning Curve
              Developer buy-in                                         75000


                                                                              0
                                                                                   WIST      Reverb + REST

                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
...but didn’t need to.

              Maintainability
              Technical longevity
              Learning Curve
              Developer buy-in



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
...but didn’t need to.

              Maintainability
              Technical longevity
              Learning Curve
              Developer buy-in



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
...but didn’t need to.

              Maintainability
              Technical longevity
              Learning Curve
              Developer buy-in



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
...but didn’t need to.

              Maintainability
              Technical longevity
              Learning Curve
              Developer buy-in



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
What were the real problems?




                               http://www.flickr.com/photos/stuant63/2255781557
                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Real Problems


              Learning curve
              Constant refactoring
              Cucumber testing is hard to get right
              Proliferation of technologies



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Better than expected...

              Ruby language productivity
              Metaprogramming application to domain problems
              Wide availability and applicability of gems
              Community (enthusiasm, meet ups, speed of
              improvements in technology)


                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
It’s just Ruby 1.9

              Gave us a transition path and ROI on our Java

              All the benefits of the JVM - performance, threading,
              GC, etc.

              Combined with Warbler allows us to leverage existing
              deployment model



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
It’s just Ruby 1.9

              Gave us a transition path and ROI on our Java

              All the benefits of the JVM - performance, threading,
              GC, etc.

              Combined with Warbler allows us to leverage existing
              deployment model
              But we actually reused less Java than we thought...

                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Time on a
      logarithmic
         scale!
                                                                                                     REXML




                              source: http://www.rubyinside.com/ruby-xml-performance-benchmarks-1641.html




                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Generated
                WSDL                                                                 Java

                                                            JAXB
            Schemas                                                                spring-ws




                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Would we do it again?



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Absolutely



                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
What would we have done
        differently?
              Not a whole lot
              Consultants?
              Training?
              Medium sized pilot project?
              Address build and deployment approaches earlier?


                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Key Take-aways

              It will impact everything
              Communication is essential
              Rails has been a good choice but..
                    Dependent on team and management to pull it off
              Developer happiness = Developer Productivity
                    Control the change

                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman


Wednesday, June 1, 2011
Questions?




                                 Dan Pilone - @danpilone
  http://spkr8.com/t/7577
                             Jason Gilman - @jasongilman
Wednesday, June 1, 2011

Más contenido relacionado

Último

Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 

Último (20)

Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 

Destacado

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destacado (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Controlled Chaos: A Case Study Of Introducing Rails Into An Operational NASA System - RailsConf 2011

  • 1. Controlled Chaos A case study of introducing Rails into an operational NASA system Dan Pilone / Jason Gilman RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 2. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 3. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 4. ECHO Key Metrics Support 13 Data Centers 3200 Earth Science Datasets ~100M pieces of science information ~100% uptime* RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman *excluding planned maintenance Wednesday, June 1, 2011
  • 5. Why are we talking about this... RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 6. http://pastorweasel.blogspot.com/ RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 7. Why did we do it? RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 8. Problem had changed RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 9. WIST ECHO ECHO DB RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 10. WIST ECHO ECHO DB RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 11. WIST ECHO ECHO DB RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 12. WIST ECHO ECHO DB RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 13. Technology had changed RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 14. WIST ECHO ECHO DB RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 15. WIST Perl ECHO <!DOCTYPE xml PUBLIC “-//W3C//DT <html> bgcolor="red"> <body <?xml <html> bgcolor="red"> <body <h1> <h1> <body shouldn't be static. This bgcolor="red"> This shouldn't be static. </h1> <h1> </h1> This shouldn't be static. </body> </body> </h1> ECHO </html> </html> </body> DB </html> RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 16. ?????? ECHO ECHO DB ? RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 17. WIST ECHO ECHO DB RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 18. WIST ECHO ECHO DB RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 19. WIST ECHO ECHO DB REST API... RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 20. But there was hope... RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 21. Agile Process RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 22. Very Talented Team RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 23. Fantastic Customer and Management support RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 24. What did we want? RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 25. Happy customer RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 26. Top Notch Client RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 27. Happy Developers RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 28. Quality Development Experience RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 29. We had about 10 months... RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 30. ...and 4 developers... RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 31. We went shopping. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 32. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman http://www.cheapbeast.com/profile-vicky Wednesday, June 1, 2011
  • 33. Prototyping is hard. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 34. Developers are harder. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 35. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 36. Why Rails? Lots of community “sell” JRuby gave us a transition path* RailsConf RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 37. What Rails offered us Developer interest and excitement Clearly the right tool for the job Hoped for a significantly reduced code base Hoped for rapid development and releases RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 38. What did this impact? RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 39. Everything. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 40. Java Developers RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 41. List<String> names = new ArrayList<String>(); Java Developers RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 42. List<String> names = new ArrayList<String>(); Java Developers RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 43. List<String> names = new ArrayList<String>(); Java Developers expe rts! RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 44. List<String> names = new ArrayList<String>(); Java Developers expe rts! Monthly Iteration RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 45. List<String> names = new ArrayList<String>(); Java Developers Dedicated Test Team expe rts! Monthly Iteration RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 46. First Attempts RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 47. Adopting a new language RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 48. ACTFL Stages 1. Novice 2. Intermediate 3. Advanced 4. Superior http://www.languagetesting.com/scale.htm http://www.sil.org/lingualinks/languagelearning/otherresources/ gudlnsfralnggandcltrlrnngprgrm/IntroductionToGuidelinesForALa.htm RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 49. Novice Can not hold a conversation "memorized survival phrases" "Where is the bathroom?" "What time is it? "Check, please." RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 50. Novice Equivalent $ rails generate scaffold Post name:string title:string content:text RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 51. Intermediate Conversations with pauses, inaccuracies, and self corrections Struggle to answer questions "vocabulary and syntax are strongly influenced by their first language" "I + want + beer + for + me + drink" RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 52. Intermediate Equivalent class Person def getName() @name end def setName(newName) @name = newName end def self.getNames(peopleList) nameList = Array.new() for(person in peopleList) nameList.push(person.getName()) end return nameList end end RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 53. Advanced "connected narrative discourse" "comprehend language related to a vast range of topics, situations and contexts" "easily process many social nuances" RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 54. Advanced Equivalent class Person include XmlSerializer attr_accessor :name def self.names(people) people.map &:name end end RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 55. Superior "increasing facility in abstract and hypothetical discussions" "provide lengthy and coherent narrations, all with ease, fluency, and accuracy" Ability to speak at length on abstract topics without hesitation. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 56. Superior Equivalent module ActiveRecord class Base def method_missing(method_id, *arguments, &block) # generates find_by_field type methods ... end end end RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 57. 100% 75% 50% 25% 0% Novice Intermediate Advanced Superior RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 58. Everyone starts here 100% 75% 50% 25% 0% Novice Intermediate Advanced Superior RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 59. Everyone starts here 100% 2 weeks to 2 months 75% 50% 25% 0% Novice Intermediate Advanced Superior RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 60. Everyone starts here 100% 2 weeks to 2 months 75% 3 - 6 months 50% 25% 0% Novice Intermediate Advanced Superior RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 61. 8 months to a year Everyone starts here 100% 2 weeks to 2 months 75% 3 - 6 months 50% 25% 0% Novice Intermediate Advanced Superior RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 62. We got a little better... RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 63. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 64. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 65. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 66. git RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 67. celerity git jasmine mocha FactoryGirl formtastic soap4r rspec echoe jammit sass cucumber capybara nokogiri rufus minitest webrat 2011 - Controlled Chaos - Dan Pilone - Jason Gilman xmlsimple RailsConf TestUnit Wednesday, June 1, 2011
  • 68. Deadlines were getting closer Developer unrest Working long hours We weren't getting things done RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 69. http://www.flickr.com/photos/ewwhite/4462922520/ RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 70. Java • Got things done • Dissatisfied by the technology • Bored Unhappy RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 71. Rails •We weren't getting things done •Technology Unfamiliarity •Frustrated Unhappy RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 72. Developer Happiness Challenged Meaningful Work Language Workplace ? RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 73. Developer Happiness Challenged Meaningful Work Language Productivity Workplace ? RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 74. Am I trying to understand a business problem or am I trying to figure out why bundle install just failed? RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 75. http://www.flickr.com/photos/ladybeames/2896787167/ RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 76. Addressing the problems Disciplined refactoring and introduction of new gems Communication Brown bags Chat rooms Pair programming Wiki RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 77. http://www.flickr.com/photos/camknows RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 78. Things we worried about... Maintainability Technical longevity Learning Curve Developer buy-in RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 79. ...but didn’t need to. Maintainability Technical longevity Learning Curve Developer buy-in RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 80. ...but didn’t need to. Lines of code 300000 Maintainability 225000 Technical longevity 150000 Learning Curve Developer buy-in 75000 0 WIST Reverb + REST RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 81. ...but didn’t need to. Maintainability Technical longevity Learning Curve Developer buy-in RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 82. ...but didn’t need to. Maintainability Technical longevity Learning Curve Developer buy-in RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 83. ...but didn’t need to. Maintainability Technical longevity Learning Curve Developer buy-in RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 84. ...but didn’t need to. Maintainability Technical longevity Learning Curve Developer buy-in RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 85. What were the real problems? http://www.flickr.com/photos/stuant63/2255781557 RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 86. Real Problems Learning curve Constant refactoring Cucumber testing is hard to get right Proliferation of technologies RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 87. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 88. Better than expected... Ruby language productivity Metaprogramming application to domain problems Wide availability and applicability of gems Community (enthusiasm, meet ups, speed of improvements in technology) RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 89. It’s just Ruby 1.9 Gave us a transition path and ROI on our Java All the benefits of the JVM - performance, threading, GC, etc. Combined with Warbler allows us to leverage existing deployment model RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 90. It’s just Ruby 1.9 Gave us a transition path and ROI on our Java All the benefits of the JVM - performance, threading, GC, etc. Combined with Warbler allows us to leverage existing deployment model But we actually reused less Java than we thought... RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 91. Time on a logarithmic scale! REXML source: http://www.rubyinside.com/ruby-xml-performance-benchmarks-1641.html RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 92. Generated WSDL Java JAXB Schemas spring-ws RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 93. Would we do it again? RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 94. Absolutely RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 95. What would we have done differently? Not a whole lot Consultants? Training? Medium sized pilot project? Address build and deployment approaches earlier? RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 96. Key Take-aways It will impact everything Communication is essential Rails has been a good choice but.. Dependent on team and management to pull it off Developer happiness = Developer Productivity Control the change RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman Wednesday, June 1, 2011
  • 97. Questions? Dan Pilone - @danpilone http://spkr8.com/t/7577 Jason Gilman - @jasongilman Wednesday, June 1, 2011