This document discusses the development of the Zooppa website using Ruby on Rails. It advocates for an agile development process with prototypes, incremental development, frequent releases, interface-first design, and testing. This approach allows for crystallizing ideas early, minimizing risks, incorporating feedback, and adapting quickly to changes. The document emphasizes simplicity, focusing on the essential features, and continuous refactoring to improve code quality without changing external behavior.
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
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. 40 days of time and a
few dozens of JPGs as
specifications
sabato 3 novembre 2007 8
11. • The right team
• Prototypes and incremental development
• Release Often
• Interface First
• Tests
sabato 3 novembre 2007 11
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
15. A good formulated idea
is an idea without
details that are not
fundamental
sabato 3 novembre 2007 15
16. Less details, less
discussions, more
prototypes
sabato 3 novembre 2007 16
17. GOD SAVE HIGH
LEVEL
LANGUAGES
sabato 3 novembre 2007 17
18. Prototypes and
incremental
development
sabato 3 novembre 2007 18
19. Going from an idea to a
functional prototype is
very quick (especially in
Ruby)
sabato 3 novembre 2007 19
20. A prototype is a good
base to start
implementing
sabato 3 novembre 2007 20
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. In Zooppa we’ve never
thrown away a
prototype, we just
refactor
sabato 3 novembre 2007 22
23. Refactoring is simpler
then starting with a
new implementation
sabato 3 novembre 2007 23
24. When refactoring,
employ RubyOnRails in
full
sabato 3 novembre 2007 24
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. Zooppa value are
users, our customers
are more than 8000
sabato 3 novembre 2007 29
46. Tests become
functional specifications
on real code
sabato 3 novembre 2007 46
47. • Functional Specifications = Functional Tests
• Data Integrity Specifications = Unit Tests
• User Interaction Specifications =
Integration Tests
sabato 3 novembre 2007 47
48. Making a new
developer productive in
a project is difficult
sabato 3 novembre 2007 48
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. • 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. I didn’t stop worrying,
I’m still a compulsive
paranoic
sabato 3 novembre 2007 51
52. At least, thanks Rails
and a good
developmente strategy,
I’m the fool, not my
software
sabato 3 novembre 2007 52