• Save
Controlled Chaos: A Case Study Of Introducing Rails Into An Operational NASA System - RailsConf 2011
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 1,485 views

A case study in introducing Rails into a public NASA Earth Science system presented by Dan Pilone and Jason Gilman at RailsConf 2011. Despite a broad investment in Java, we conducted a survey of ...

A case study in introducing Rails into a public NASA Earth Science system presented by Dan Pilone and Jason Gilman at RailsConf 2011. Despite a broad investment in Java, we conducted a survey of modern development technologies including Flex, Django, JSF2 and Rails. We chose to move forward using Ruby on Rails with JRuby. This presentation discusses our experiences, including technical, process, and psychological, using RoR on a production system.

Statistics

Views

Total Views
1,485
Views on SlideShare
1,478
Embed Views
7

Actions

Likes
1
Downloads
0
Comments
0

2 Embeds 7

http://mezura.com.br 5
https://si0.twimg.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

    • Controlled Chaos A case study of introducing Rails into an operational NASA system Dan Pilone / Jason Gilman RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, 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 maintenanceWednesday, June 1, 2011
    • Why are we talking about this... RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • http://pastorweasel.blogspot.com/ RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • Why did we do it? RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • Problem had changed RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • WIST ECHO ECHO DB RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • WIST ECHO ECHO DB RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • WIST ECHO ECHO DB RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • WIST ECHO ECHO DB RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • Technology had changed RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • WIST ECHO ECHO DB RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • WIST Perl ECHO <!DOCTYPE xml PUBLIC “-//W3C//DT <html> bgcolor="red"> <body <?xml <html> bgcolor="red"> <body <h1> <h1> <body shouldnt be static. This bgcolor="red"> This shouldnt be static. </h1> <h1> </h1> This shouldnt be static. </body> </body> </h1> ECHO </html> </html> </body> DB </html> RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • ?????? ECHO ECHO DB ? RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • WIST ECHO ECHO DB RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • WIST ECHO ECHO DB RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • WIST ECHO ECHO DB REST API... RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • But there was hope... RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • Agile Process RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • Very Talented Team RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • Fantastic Customer and Management support RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • What did we want? RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • Happy customer RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • Top Notch Client RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • Happy Developers RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • Quality Development Experience RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • We had about 10 months... RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • ...and 4 developers... RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • We went shopping. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman http://www.cheapbeast.com/profile-vickyWednesday, June 1, 2011
    • Prototyping is hard. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • Developers are harder. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • Why Rails? Lots of community “sell” JRuby gave us a transition path* RailsConf RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, 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 GilmanWednesday, June 1, 2011
    • What did this impact? RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • Everything. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • Java Developers RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • List<String> names = new ArrayList<String>(); Java Developers RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • List<String> names = new ArrayList<String>(); Java Developers RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • List<String> names = new ArrayList<String>(); Java Developers expe rts! RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • List<String> names = new ArrayList<String>(); Java Developers expe rts! Monthly Iteration RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, 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 GilmanWednesday, June 1, 2011
    • First Attempts RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • Adopting a new language RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, 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 GilmanWednesday, 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 GilmanWednesday, June 1, 2011
    • Novice Equivalent $ rails generate scaffold Post name:string title:string content:text RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, 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 GilmanWednesday, 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 GilmanWednesday, 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 GilmanWednesday, 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 GilmanWednesday, 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 GilmanWednesday, 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 GilmanWednesday, June 1, 2011
    • 100% 75% 50% 25% 0% Novice Intermediate Advanced Superior RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • Everyone starts here 100% 75% 50% 25% 0% Novice Intermediate Advanced Superior RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, 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 GilmanWednesday, 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 GilmanWednesday, 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 GilmanWednesday, June 1, 2011
    • We got a little better... RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • git RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, 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 TestUnitWednesday, June 1, 2011
    • Deadlines were getting closer Developer unrest Working long hours We werent getting things done RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • http://www.flickr.com/photos/ewwhite/4462922520/ RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • Java • Got things done • Dissatisfied by the technology • Bored Unhappy RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • Rails •We werent getting things done •Technology Unfamiliarity •Frustrated Unhappy RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • Developer Happiness Challenged Meaningful Work Language Workplace ? RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • Developer Happiness Challenged Meaningful Work Language Productivity Workplace ? RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, 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 GilmanWednesday, June 1, 2011
    • http://www.flickr.com/photos/ladybeames/2896787167/ RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, 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 GilmanWednesday, June 1, 2011
    • http://www.flickr.com/photos/camknows RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • Things we worried about... Maintainability Technical longevity Learning Curve Developer buy-in RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • ...but didn’t need to. Maintainability Technical longevity Learning Curve Developer buy-in RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, 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 GilmanWednesday, June 1, 2011
    • ...but didn’t need to. Maintainability Technical longevity Learning Curve Developer buy-in RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • ...but didn’t need to. Maintainability Technical longevity Learning Curve Developer buy-in RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • ...but didn’t need to. Maintainability Technical longevity Learning Curve Developer buy-in RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • ...but didn’t need to. Maintainability Technical longevity Learning Curve Developer buy-in RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • What were the real problems? http://www.flickr.com/photos/stuant63/2255781557 RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, 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 GilmanWednesday, June 1, 2011
    • RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, 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 GilmanWednesday, 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 GilmanWednesday, 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 GilmanWednesday, 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 GilmanWednesday, June 1, 2011
    • Generated WSDL Java JAXB Schemas spring-ws RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • Would we do it again? RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
    • Absolutely RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, 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 GilmanWednesday, 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 GilmanWednesday, June 1, 2011
    • Questions? Dan Pilone - @danpilone http://spkr8.com/t/7577 Jason Gilman - @jasongilmanWednesday, June 1, 2011