際際滷

際際滷Share a Scribd company logo
Technology Overview
HTML5             Mobile HTML5
API
                        JavaScript

               Ruby on Rails

  HTTP                        Data
Passenger       Redis      MongoDB      Solr

 Apache                      MySQL

               Gentoo Linux

            Engine Yard AppCloud

                Amazon EC2


              Technology Stack
Application Master
  Rails                 HAProxy

 Apache


          Application             Application
             Rails                   Rails

            Apache                 Apache



           Master Database
Redis         MongoDB             Solr

               MySQL



        Production Cluster
Events        Venues        Accounts
  Event 1       Venue 1          #1

  Event 2       Venue 2          #2


Reservations   Guest Lists   Ticket Types
    #1             #1            #1

    #2             #2            #2


                 Guests      Ticket Sales
                   #1            #1

                   #2            #2


               Data Model
Event 1              Event 2             Event 3
Reservation 1       Reservation 1        Ticket Type 1

Reservation 2        Guest List 1        Ticket Sale 1

Guest List 1           Guest 1           Ticket Sale 2
  Guest 1              Guest 2           Ticket Sale 3
  Guest 2            Guest List 2        Ticket Sale 4

Ticket Type 1          Guest 1
                                         Ticket Type 2
Ticket Sale 1          Guest 2           Ticket Sale 1
Ticket Sale 1                            Ticket Sale 2




                Event Report Documents
Lean Software Development




   Behavior-Driven Design




Development Methodology
Sell features that dont exist




              WHAT
             to build




Implement features Just-In-Time




Lean Software Development
Specify how a feature should behave




               HOW
              to build




Implement until automated tests pass




    Behavior-Driven Design
Behavior Specifications

                         Cucumber

Jasmine                    RSpec

                         Capybara

Capybara WebKit       Selenium         Simulator

Headless WebKit        Firefox



                   Unit Tests

                  Ruby on Rails



          Automated Testing Technology
Scenario: The customer should see a PDF link at the
 end of the purchase process.


 Given an event "Test Event"
 And 2 active "General Admission" tickets at 10 dollars
 And the event "Test Event" is active,
 When I go to the ticket sales page
 And I follow the buy tickets link for "Test Event"
 And I press "checkout"
 And I submit valid payment details,
 Then I should see "download your ticket here".




         Example Behavioral Specification
def test_generates_valid_hard_ticket_code

  ticket_sale = TicketSale.create(
    :event_id => @event.id, :quantity => 2
  )

  hard_code = ticket_sale.generate_hard_ticket_code

  assert TicketSale.valid_hard_ticket_code? hard_code

end




                Example Unit Test
Backlog     Ready         Working   Complete
Task #14   Task #17      Task #14   Task #15

Task #18   Task #20      Task #11   Task #12

Task #22   Task #21       Task #9   Task #10

Task #23   Task #19       Task #6   Task #8

Task #24   Task #16       Task #4   Task #7

Task #25   Task #15                 Task #5

Task #26   Task #13                 Task #3

Task #27                            Task #2

Task #28                            Task #1


             Kanban Status Board
Task Backlog

More Related Content

Venue Driver Technology Overview

  • 2. HTML5 Mobile HTML5 API JavaScript Ruby on Rails HTTP Data Passenger Redis MongoDB Solr Apache MySQL Gentoo Linux Engine Yard AppCloud Amazon EC2 Technology Stack
  • 3. Application Master Rails HAProxy Apache Application Application Rails Rails Apache Apache Master Database Redis MongoDB Solr MySQL Production Cluster
  • 4. Events Venues Accounts Event 1 Venue 1 #1 Event 2 Venue 2 #2 Reservations Guest Lists Ticket Types #1 #1 #1 #2 #2 #2 Guests Ticket Sales #1 #1 #2 #2 Data Model
  • 5. Event 1 Event 2 Event 3 Reservation 1 Reservation 1 Ticket Type 1 Reservation 2 Guest List 1 Ticket Sale 1 Guest List 1 Guest 1 Ticket Sale 2 Guest 1 Guest 2 Ticket Sale 3 Guest 2 Guest List 2 Ticket Sale 4 Ticket Type 1 Guest 1 Ticket Type 2 Ticket Sale 1 Guest 2 Ticket Sale 1 Ticket Sale 1 Ticket Sale 2 Event Report Documents
  • 6. Lean Software Development Behavior-Driven Design Development Methodology
  • 7. Sell features that dont exist WHAT to build Implement features Just-In-Time Lean Software Development
  • 8. Specify how a feature should behave HOW to build Implement until automated tests pass Behavior-Driven Design
  • 9. Behavior Specifications Cucumber Jasmine RSpec Capybara Capybara WebKit Selenium Simulator Headless WebKit Firefox Unit Tests Ruby on Rails Automated Testing Technology
  • 10. Scenario: The customer should see a PDF link at the end of the purchase process. Given an event "Test Event" And 2 active "General Admission" tickets at 10 dollars And the event "Test Event" is active, When I go to the ticket sales page And I follow the buy tickets link for "Test Event" And I press "checkout" And I submit valid payment details, Then I should see "download your ticket here". Example Behavioral Specification
  • 11. def test_generates_valid_hard_ticket_code ticket_sale = TicketSale.create( :event_id => @event.id, :quantity => 2 ) hard_code = ticket_sale.generate_hard_ticket_code assert TicketSale.valid_hard_ticket_code? hard_code end Example Unit Test
  • 12. Backlog Ready Working Complete Task #14 Task #17 Task #14 Task #15 Task #18 Task #20 Task #11 Task #12 Task #22 Task #21 Task #9 Task #10 Task #23 Task #19 Task #6 Task #8 Task #24 Task #16 Task #4 Task #7 Task #25 Task #15 Task #5 Task #26 Task #13 Task #3 Task #27 Task #2 Task #28 Task #1 Kanban Status Board