Successfully reported this slideshow.

RailsToItaly - english

1,169 views

Published on

My speech at RailsToItaly, the first italian conference on RubyOnRails

Published in: Business, Technology
  • Be the first to comment

  • Be the first to like this

RailsToItaly - english

  1. 1. Productivity with RubyOnRails or how I stopped worrying and love Zooppa sabato 3 novembre 2007 1
  2. 2. What’s it ? • I give you a brand • You make an AD • You rate the BEST ones • I pay you sabato 3 novembre 2007 2
  3. 3. sabato 3 novembre 2007 3
  4. 4. Winner contest C1Deejay section Video Ads • 1303 stars (281 votes), 371 comments • Using a concept of another user • 1500 z$ (1500 real $) for the video, 500 z$ for the concept (500 real $) sabato 3 novembre 2007 4
  5. 5. sabato 3 novembre 2007 5
  6. 6. Vincitore Contest C1 Deejay sezione Print Ads • 798 stars (185 voti), 99 comments • 1000 z$ (1000 real $) sabato 3 novembre 2007 6
  7. 7. • Image and Video Upload • Voting (antifraud system) • Users personal area (edit profile, conversion from Z$ to $) • Users ranking • Contest management • A lot of complex relations between data sabato 3 novembre 2007 7
  8. 8. 40 days of time and a few dozens of JPGs as specifications sabato 3 novembre 2007 8
  9. 9. How ? sabato 3 novembre 2007 9
  10. 10. sabato 3 novembre 2007 10
  11. 11. • The right team • Prototypes and incremental development • Release Often • Interface First • Tests sabato 3 novembre 2007 11
  12. 12. Benefits • Bring the team to contribute instead of implementing acritically • Minimize errors • Work on a real basis and not on abstract specifications • Change doesn’t hurt sabato 3 novembre 2007 12
  13. 13. The team sabato 3 novembre 2007 13
  14. 14. Ends and objectives perfectly clear sabato 3 novembre 2007 14
  15. 15. A good formulated idea is an idea without details that are not fundamental sabato 3 novembre 2007 15
  16. 16. Less details, less discussions, more prototypes sabato 3 novembre 2007 16
  17. 17. GOD SAVE HIGH LEVEL LANGUAGES sabato 3 novembre 2007 17
  18. 18. Prototypes and incremental development sabato 3 novembre 2007 18
  19. 19. Going from an idea to a functional prototype is very quick (especially in Ruby) sabato 3 novembre 2007 19
  20. 20. A prototype is a good base to start implementing sabato 3 novembre 2007 20
  21. 21. • Crystallizes the idea • The developer can start to take a grasp of the application domain • Minimizes the risk of overestimating or underestimating a problem sabato 3 novembre 2007 21
  22. 22. In Zooppa we’ve never thrown away a prototype, we just refactor sabato 3 novembre 2007 22
  23. 23. Refactoring is simpler then starting with a new implementation sabato 3 novembre 2007 23
  24. 24. When refactoring, employ RubyOnRails in full sabato 3 novembre 2007 24
  25. 25. Release first and release often sabato 3 novembre 2007 25
  26. 26. Daily internal releases sabato 3 novembre 2007 26
  27. 27. Release often to the public sabato 3 novembre 2007 27
  28. 28. Manifesto for Agile Software Development • Individuals and interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan sabato 3 novembre 2007 28
  29. 29. Zooppa value are users, our customers are more than 8000 sabato 3 novembre 2007 29
  30. 30. Constant specification change sabato 3 novembre 2007 30
  31. 31. Releasing is changing perspective sabato 3 novembre 2007 31
  32. 32. Feedback from different professionalities is pure gold sabato 3 novembre 2007 32
  33. 33. Or: how the lack of analisys can become a strenght (if the project has been set up in the correct way) sabato 3 novembre 2007 33
  34. 34. Interfaces sabato 3 novembre 2007 34
  35. 35. Interfaces are understandable by definition sabato 3 novembre 2007 35
  36. 36. MVC (use the V to build the MC) sabato 3 novembre 2007 36
  37. 37. Impossible to overengineer sabato 3 novembre 2007 37
  38. 38. KISS and make it work sabato 3 novembre 2007 38
  39. 39. An interface allows to build a software keeping in mind the main features and focal points sabato 3 novembre 2007 39
  40. 40. What’s outside the interface isn’t important sabato 3 novembre 2007 40
  41. 41. You can refactor what’s outside the interface and your users will never know sabato 3 novembre 2007 41
  42. 42. Test sabato 3 novembre 2007 42
  43. 43. Rails has the best testing framework actually on the market sabato 3 novembre 2007 43
  44. 44. Plugin and gems • Rcov • Watir • Rspec • Arts sabato 3 novembre 2007 44
  45. 45. Without analysis, the only salvation is testing sabato 3 novembre 2007 45
  46. 46. Tests become functional specifications on real code sabato 3 novembre 2007 46
  47. 47. • Functional Specifications = Functional Tests • Data Integrity Specifications = Unit Tests • User Interaction Specifications = Integration Tests sabato 3 novembre 2007 47
  48. 48. Making a new developer productive in a project is difficult sabato 3 novembre 2007 48
  49. 49. Understanding an API by looking at how it’s used is much more simpler than understanding it by looking at how it’s implemented sabato 3 novembre 2007 49
  50. 50. • Less code dependencies problems • Less bugs • Joining the project is quicker and a new developer doesn’t need to be followed step by step sabato 3 novembre 2007 50
  51. 51. I didn’t stop worrying, I’m still a compulsive paranoic sabato 3 novembre 2007 51
  52. 52. At least, thanks Rails and a good developmente strategy, I’m the fool, not my software sabato 3 novembre 2007 52

×