Controlled Chaos         A case study of introducing Rails into an         operational NASA system         Dan Pilone / Ja...
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 o...
Why are we talking about this...                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday,...
http://pastorweasel.blogspot.com/                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday...
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                                                 ...
WIST                ECHO                     ECHO                      DB                   RailsConf 2011 - Controlled Ch...
WIST                ECHO                     ECHO                      DB                   RailsConf 2011 - Controlled Ch...
WIST                ECHO                     ECHO                      DB                   RailsConf 2011 - Controlled Ch...
Technology had changed                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2...
WIST                ECHO                     ECHO                      DB                   RailsConf 2011 - Controlled Ch...
WIST                                                                        Perl                ECHO                      ...
??????                ECHO                     ECHO                      DB                                               ...
WIST                ECHO                     ECHO                      DB                   RailsConf 2011 - Controlled Ch...
WIST                ECHO                     ECHO                      DB                   RailsConf 2011 - Controlled Ch...
WIST                ECHO                     ECHO                      DB                                                 ...
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 P...
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 Pil...
We had about 10 months...                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1...
...and 4 developers...                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2...
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, 2...
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, 2...
RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
Why Rails?              Lots of community “sell”              JRuby gave us a transition path*              RailsConf     ...
What Rails offered us              Developer interest and excitement              Clearly the right tool for the job      ...
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>();                       ...
List<String> names = new                                                       ArrayList<String>();                       ...
List<String> names = new                                                       ArrayList<String>();                       ...
List<String> names = new                                                       ArrayList<String>();                       ...
List<String> names = new                                                       ArrayList<String>();                       ...
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, ...
ACTFL Stages                                                      1.     Novice                                           ...
Novice              Can not hold a conversation              "memorized survival phrases"                    "Where is the...
Novice Equivalent            $ rails generate scaffold            Post name:string title:string            content:text   ...
Intermediate              Conversations with pauses,              inaccuracies, and self              corrections         ...
Intermediate Equivalent                               class Person                                 def getName()          ...
Advanced                    "connected narrative discourse"                    "comprehend language related to            ...
Advanced Equivalent                               class Person                                 include XmlSerializer      ...
Superior                     "increasing facility in                     abstract and hypothetical                     dis...
Superior Equivalent                 module ActiveRecord                   class Base                     def method_missin...
100%       75%       50%       25%         0%          Novice                            Intermediate                     ...
Everyone starts here     100%       75%       50%       25%         0%          Novice                            Intermed...
Everyone starts here     100%                                   2 weeks to 2 months       75%       50%       25%         ...
Everyone starts here     100%                                   2 weeks to 2 months       75%                             ...
8 months to a year         Everyone starts here     100%                                   2 weeks to 2 months       75%  ...
We got a little better...                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1...
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     ...
Deadlines were getting closer                    Developer unrest                    Working long hours                   ...
http://www.flickr.com/photos/ewwhite/4462922520/                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason G...
Java                               • Got things done                               • Dissatisfied by the technology        ...
Rails                          •We werent getting things done                          •Technology Unfamiliarity          ...
Developer Happiness                                                             Challenged                                ...
Developer Happiness                                                             Challenged                                ...
Am I trying to understand a business problem or am I      trying to figure out why bundle install just failed?             ...
http://www.flickr.com/photos/ladybeames/2896787167/                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jaso...
Addressing the problems              Disciplined refactoring and introduction of new gems              Communication      ...
http://www.flickr.com/photos/camknows                   RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednes...
Things we worried about...              Maintainability              Technical longevity              Learning Curve      ...
...but didn’t need to.              Maintainability              Technical longevity              Learning Curve          ...
...but didn’t need to.                                                                                    Lines of code   ...
...but didn’t need to.              Maintainability              Technical longevity              Learning Curve          ...
...but didn’t need to.              Maintainability              Technical longevity              Learning Curve          ...
...but didn’t need to.              Maintainability              Technical longevity              Learning Curve          ...
...but didn’t need to.              Maintainability              Technical longevity              Learning Curve          ...
What were the real problems?                               http://www.flickr.com/photos/stuant63/2255781557                ...
Real Problems              Learning curve              Constant refactoring              Cucumber testing is hard to get r...
RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
Better than expected...              Ruby language productivity              Metaprogramming application to domain problem...
It’s just Ruby 1.9              Gave us a transition path and ROI on our Java              All the benefits of the JVM - pe...
It’s just Ruby 1.9              Gave us a transition path and ROI on our Java              All the benefits of the JVM - pe...
Time on a      logarithmic         scale!                                                                                 ...
Generated                WSDL                                                                 Java                        ...
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? ...
Key Take-aways              It will impact everything              Communication is essential              Rails has been ...
Questions?                                 Dan Pilone - @danpilone  http://spkr8.com/t/7577                             Ja...
Upcoming SlideShare
Loading in...5
×

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

1,430

Published on

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.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,430
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

  1. 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 GilmanWednesday, June 1, 2011
  2. 2. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  3. 3. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  4. 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 maintenanceWednesday, June 1, 2011
  5. 5. Why are we talking about this... RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  6. 6. http://pastorweasel.blogspot.com/ RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  7. 7. Why did we do it? RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  8. 8. Problem had changed RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  9. 9. WIST ECHO ECHO DB RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  10. 10. WIST ECHO ECHO DB RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  11. 11. WIST ECHO ECHO DB RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  12. 12. WIST ECHO ECHO DB RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  13. 13. Technology had changed RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  14. 14. WIST ECHO ECHO DB RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  15. 15. 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
  16. 16. ?????? ECHO ECHO DB ? RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  17. 17. WIST ECHO ECHO DB RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  18. 18. WIST ECHO ECHO DB RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  19. 19. WIST ECHO ECHO DB REST API... RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  20. 20. But there was hope... RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  21. 21. Agile Process RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  22. 22. Very Talented Team RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  23. 23. Fantastic Customer and Management support RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  24. 24. What did we want? RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  25. 25. Happy customer RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  26. 26. Top Notch Client RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  27. 27. Happy Developers RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  28. 28. Quality Development Experience RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  29. 29. We had about 10 months... RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  30. 30. ...and 4 developers... RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  31. 31. We went shopping. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  32. 32. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason Gilman http://www.cheapbeast.com/profile-vickyWednesday, June 1, 2011
  33. 33. Prototyping is hard. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  34. 34. Developers are harder. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  35. 35. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  36. 36. Why Rails? Lots of community “sell” JRuby gave us a transition path* RailsConf RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  37. 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 GilmanWednesday, June 1, 2011
  38. 38. What did this impact? RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  39. 39. Everything. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  40. 40. Java Developers RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  41. 41. List<String> names = new ArrayList<String>(); Java Developers RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  42. 42. List<String> names = new ArrayList<String>(); Java Developers RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  43. 43. List<String> names = new ArrayList<String>(); Java Developers expe rts! RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  44. 44. List<String> names = new ArrayList<String>(); Java Developers expe rts! Monthly Iteration RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  45. 45. 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
  46. 46. First Attempts RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  47. 47. Adopting a new language RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  48. 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 GilmanWednesday, June 1, 2011
  49. 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 GilmanWednesday, June 1, 2011
  50. 50. Novice Equivalent $ rails generate scaffold Post name:string title:string content:text RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  51. 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 GilmanWednesday, June 1, 2011
  52. 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 GilmanWednesday, June 1, 2011
  53. 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 GilmanWednesday, June 1, 2011
  54. 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 GilmanWednesday, June 1, 2011
  55. 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 GilmanWednesday, June 1, 2011
  56. 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 GilmanWednesday, June 1, 2011
  57. 57. 100% 75% 50% 25% 0% Novice Intermediate Advanced Superior RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  58. 58. Everyone starts here 100% 75% 50% 25% 0% Novice Intermediate Advanced Superior RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  59. 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 GilmanWednesday, June 1, 2011
  60. 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 GilmanWednesday, June 1, 2011
  61. 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 GilmanWednesday, June 1, 2011
  62. 62. We got a little better... RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  63. 63. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  64. 64. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  65. 65. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  66. 66. git RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  67. 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 TestUnitWednesday, June 1, 2011
  68. 68. 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
  69. 69. http://www.flickr.com/photos/ewwhite/4462922520/ RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  70. 70. Java • Got things done • Dissatisfied by the technology • Bored Unhappy RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  71. 71. Rails •We werent getting things done •Technology Unfamiliarity •Frustrated Unhappy RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  72. 72. Developer Happiness Challenged Meaningful Work Language Workplace ? RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  73. 73. Developer Happiness Challenged Meaningful Work Language Productivity Workplace ? RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  74. 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 GilmanWednesday, June 1, 2011
  75. 75. http://www.flickr.com/photos/ladybeames/2896787167/ RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  76. 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 GilmanWednesday, June 1, 2011
  77. 77. http://www.flickr.com/photos/camknows RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  78. 78. Things we worried about... Maintainability Technical longevity Learning Curve Developer buy-in RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  79. 79. ...but didn’t need to. Maintainability Technical longevity Learning Curve Developer buy-in RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  80. 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 GilmanWednesday, June 1, 2011
  81. 81. ...but didn’t need to. Maintainability Technical longevity Learning Curve Developer buy-in RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  82. 82. ...but didn’t need to. Maintainability Technical longevity Learning Curve Developer buy-in RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  83. 83. ...but didn’t need to. Maintainability Technical longevity Learning Curve Developer buy-in RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  84. 84. ...but didn’t need to. Maintainability Technical longevity Learning Curve Developer buy-in RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  85. 85. What were the real problems? http://www.flickr.com/photos/stuant63/2255781557 RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  86. 86. 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
  87. 87. RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  88. 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 GilmanWednesday, June 1, 2011
  89. 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 GilmanWednesday, June 1, 2011
  90. 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 GilmanWednesday, June 1, 2011
  91. 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 GilmanWednesday, June 1, 2011
  92. 92. Generated WSDL Java JAXB Schemas spring-ws RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  93. 93. Would we do it again? RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  94. 94. Absolutely RailsConf 2011 - Controlled Chaos - Dan Pilone - Jason GilmanWednesday, June 1, 2011
  95. 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 GilmanWednesday, June 1, 2011
  96. 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 GilmanWednesday, June 1, 2011
  97. 97. Questions? Dan Pilone - @danpilone http://spkr8.com/t/7577 Jason Gilman - @jasongilmanWednesday, June 1, 2011

×