際際滷

際際滷Share a Scribd company logo
Customer's Choice
Let the users decide, which is the best
               solution.
about me

           Hasan Hosgel

           Twitter:   @alosdev
           Github:    alosdev
           G+:        Hasan Hosgel

           Senior Developer
           @ImmobilienScout24

           Mobile enthusiast
Current Scenario
Product Management, Designer & Developer
has created a new screen with a button for an
Android application.
They can't decide on two Variants, which
position should be the button.
Current Scenario



                   possible button
                   positions
Current Scenario
They decide to make a user test with about six
participants.

=> NO explicit result



What now?!
Current Scenario
Already a published application in the
Playstore.

  =>    make a so called AB-Test
        It is a Test on a live application, where
        an amount of users get one variant
        and the others another. Depending on
        the success ratio you have now the
        best fitting solution.
Development Part
Create switches depending on a business logic
and create a proprietary solution, which is not
reusable.
Republish the application and hope everybody
will update after the test to the final solution.
Here comes
Customer's Choice
Customer's Choice
a lightweight Android library for making simple
usability tests on a live application

https://github.com/alosdev/CustomersChoice
Usage
add the library (*.jar) to your project
CustomersChoice.getVariant("Variant name");

returns the chosen variant for the test and
reports the test start
CustomersChoice.reachesGoal("Variant name");

for reporting the goal
THAT'S ALL ;)
Does it crash?
No
Minor Problem: it returns
    always variant 1
Configuration of Variants
   code
   JSON string in resources
   configuration file on the SD card
   configuration file in the network

For testing purpose over a Broadcast Intent
with overwriting.
Attributes for a Variant
   Name (required)
   startTime in Milliseconds
   endTime in Milliseconds
   spreading, int definition for ratio of
    different Variants
{"variants":[{
       "startTime": 768997,
       "endTime": 3787789,
       "spreading": [1,2,1],
       "name": "Variant name"},
       {...}
,...]}
Extensibility
You can write easily plugins for:
 Reporting
 Logging

Open Source
Live Coding-/
 Demo time
Demo Application
Attention
make always clear
what and how to
report.
Also gaining the
results you need.



                    source: http://i.imgur.com/h2JClux.jpg
Q&A
Really Last 際際滷
   Repo: https://github.
    com/alosdev/CustomersChoice
   Demo-Application
    https://play.google.com/store/apps/details?id=de.
    alosdev.customerschoice.demo
   際際滷s
    http://slideshare.net/hosgel/customers-choice-
    gdgandroidberlinjanuary

More Related Content

Customer’s Choice @ GDG Android Berlin on January meetup

  • 1. Customer's Choice Let the users decide, which is the best solution.
  • 2. about me Hasan Hosgel Twitter: @alosdev Github: alosdev G+: Hasan Hosgel Senior Developer @ImmobilienScout24 Mobile enthusiast
  • 3. Current Scenario Product Management, Designer & Developer has created a new screen with a button for an Android application. They can't decide on two Variants, which position should be the button.
  • 4. Current Scenario possible button positions
  • 5. Current Scenario They decide to make a user test with about six participants. => NO explicit result What now?!
  • 6. Current Scenario Already a published application in the Playstore. => make a so called AB-Test It is a Test on a live application, where an amount of users get one variant and the others another. Depending on the success ratio you have now the best fitting solution.
  • 7. Development Part Create switches depending on a business logic and create a proprietary solution, which is not reusable. Republish the application and hope everybody will update after the test to the final solution.
  • 9. Customer's Choice a lightweight Android library for making simple usability tests on a live application https://github.com/alosdev/CustomersChoice
  • 10. Usage add the library (*.jar) to your project CustomersChoice.getVariant("Variant name"); returns the chosen variant for the test and reports the test start CustomersChoice.reachesGoal("Variant name"); for reporting the goal THAT'S ALL ;)
  • 12. No
  • 13. Minor Problem: it returns always variant 1
  • 14. Configuration of Variants code JSON string in resources configuration file on the SD card configuration file in the network For testing purpose over a Broadcast Intent with overwriting.
  • 15. Attributes for a Variant Name (required) startTime in Milliseconds endTime in Milliseconds spreading, int definition for ratio of different Variants {"variants":[{ "startTime": 768997, "endTime": 3787789, "spreading": [1,2,1], "name": "Variant name"}, {...} ,...]}
  • 16. Extensibility You can write easily plugins for: Reporting Logging Open Source
  • 19. Attention make always clear what and how to report. Also gaining the results you need. source: http://i.imgur.com/h2JClux.jpg
  • 20. Q&A
  • 21. Really Last 際際滷 Repo: https://github. com/alosdev/CustomersChoice Demo-Application https://play.google.com/store/apps/details?id=de. alosdev.customerschoice.demo 際際滷s http://slideshare.net/hosgel/customers-choice- gdgandroidberlinjanuary