Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
www.immobilienscout24.deCustomer‘s ChoiceLet the user decide, which is the best solutionmoosecon | 07.03.2013 | Hasan Hosgel
About me           Hasan Hosgel           Twitter:            @alosdev           Github:             alosdev           Goo...
Agile Scenario     The Product Owner defines following user story:     „As a user I want to purchase the products on a    ...
First design                                                         Page 4               moosecon 2013 | Customer‘s Choic...
Design Variants                                                            Page 5                  moosecon 2013 | Custome...
User Test                                                                                                     page6Source:...
User Test Results                                                                                                         ...
What now?                                                                                                         Page 8So...
What now?               What do we normally in the web?                                                                   ...
Make an AB-Test                                                                                                           ...
AB-Test for AndroidYou have an application, which is probably publiclyavailable.Send an amount of users to another variant...
The Development                                                                                                        Pag...
Developer’s Todo List●  Create switches depending on the business logic●  Create a proprietary solution  "   Not reusable●...
Smarter SolutionThe library Customer’s Choicewith a common approach
Customer’s CoiceA lightweight Open Source Android library making simpleAB-Tests in an application, which can be configured...
Usage●  Add the library (*.jar) to your project●  Configure your switch based on the variant "   CustomersChoice.getVarian...
Usage●  Will an exception be raised?                                                                           Page 17    ...
Usage●  Will an exception be raised?  "   No                                                                           Pag...
Usage●  Will an exception be raised?  "   No●  Will it have full functionality?                                           ...
Usage●  Will an exception be raised?  "   No●  Will it have full functionality?  "   Not really                           ...
Usage●  Will an exception be raised?  "   No●  Will it have full functionality?  "   Not really●  Why?                    ...
Usage●  Will an exception be raised?  "   No●  Will it have full functionality?  "   Not really●  Why?  "   It is not conf...
Configuration of Variants●  Through code●  JSON String in resources●  Configuration file on SD card●  Configuration file i...
Variant’s Attributes●  name: String (required)●  startTime: Integer in Milliseconds●  endTime: Integer in Milliseconds●  s...
ExtensibilityYou can write custom plugins for:  ●  Logging  ●  ReportingYou can fork the library on Github, make your chan...
Demo timeShowing code samples
Demo Application                                                            Page 27                   moosecon 2013 | Cust...
AttentionAlways make clearwhat and how toreport for gaining theresults you need.Otherwise you can geta comparison like the...
Q&A                                                                                                         Page 29Source:...
www.immobilienscout24.deThanks for your attention!We are hiring!Contact:Hasan Hosgel               Customer‘s ChoiceTwitte...
Upcoming SlideShare
Loading in …5
×

Hasan hosgel moosecon_2013_customers_choice fullsize

1,262 views

Published on

  • Be the first to comment

  • Be the first to like this

Hasan hosgel moosecon_2013_customers_choice fullsize

  1. 1. www.immobilienscout24.deCustomer‘s ChoiceLet the user decide, which is the best solutionmoosecon | 07.03.2013 | Hasan Hosgel
  2. 2. About me Hasan Hosgel Twitter: @alosdev Github: alosdev Google+: Hasan Hosgel Slideshare: hosgel developer @ ImmobilienScout24 Page 2 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  3. 3. Agile Scenario The Product Owner defines following user story: „As a user I want to purchase the products on a shopping card with a click on a button.“ Page 3 moosecon 2013 | Customer‘s Choice | Hasan HosgelSource: http://www.flickr.com/photos/europedistrict/4292951182/
  4. 4. First design Page 4 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  5. 5. Design Variants Page 5 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  6. 6. User Test page6Source: http://www.flickr.com/photos/lwaldal/4900501706/ moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  7. 7. User Test Results Page 7Source: http://www.flickr.com/photos/couragextoxlive/3054488331/ moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  8. 8. What now? Page 8Source: http://www.flickr.com/photos/mkamp/2429091134/ moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  9. 9. What now? What do we normally in the web? Page 9Source: http://www.flickr.com/photos/mkamp/2429091134/ moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  10. 10. Make an AB-Test Page 10Source: http://www.flickr.com/photos/8047705@N02/5366637592/ moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  11. 11. AB-Test for AndroidYou have an application, which is probably publiclyavailable.Send an amount of users to another variant than thenormal one. è Depending on success ratio you have the best suiting solution. Page 11 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  12. 12. The Development Page 12Source: http://www.flickr.com/photos/geminidustin/275375865/ moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  13. 13. Developer’s Todo List●  Create switches depending on the business logic●  Create a proprietary solution "   Not reusable●  Publish application "   Waiting for the results●  Remove switches and republish application "   Waiting that everybody updates to the new version Page 13 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  14. 14. Smarter SolutionThe library Customer’s Choicewith a common approach
  15. 15. Customer’s CoiceA lightweight Open Source Android library making simpleAB-Tests in an application, which can be configured overthe network.Possible AB-Tests variants:●  For layouts and positions●  For colors●  For workflows●  For textshttps://github.com/alosdev/CustomersChoice Page 15 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  16. 16. Usage●  Add the library (*.jar) to your project●  Configure your switch based on the variant " CustomersChoice.getVariant(context,“VariantName”);●  When you reach your expected goal, report it " CustomersChoice.reachesGoal(“VariantName”);●  done Page 16 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  17. 17. Usage●  Will an exception be raised? Page 17 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  18. 18. Usage●  Will an exception be raised? "   No Page 18 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  19. 19. Usage●  Will an exception be raised? "   No●  Will it have full functionality? Page 19 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  20. 20. Usage●  Will an exception be raised? "   No●  Will it have full functionality? "   Not really Page 20 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  21. 21. Usage●  Will an exception be raised? "   No●  Will it have full functionality? "   Not really●  Why? Page 21 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  22. 22. Usage●  Will an exception be raised? "   No●  Will it have full functionality? "   Not really●  Why? "   It is not configured, therefore #getVariant(String) will always return variant 1 for the given variant name Page 22 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  23. 23. Configuration of Variants●  Through code●  JSON String in resources●  Configuration file on SD card●  Configuration file in the network with standard caching mechanism, like Etag- and Modified Since Header●  For testing purposes you can overwrite a variant with a broadcast intent Page 23 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  24. 24. Variant’s Attributes●  name: String (required)●  startTime: Integer in Milliseconds●  endTime: Integer in Milliseconds●  spreading: Integer array for ratio of different variants●  reset: Boolean for resetting the current value{“variants”:[{! !“name”:”VariantName”, “startTime”:768997,! !“endTime”:1022222, ”spreading”:[1,2,1],! !“reset”:true}, {…}!,…]}!!Global Attribute: resetAll – Boolean for resetting all variants Page 24 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  25. 25. ExtensibilityYou can write custom plugins for: ●  Logging ●  ReportingYou can fork the library on Github, make your changes andsend a pull request.https://github.com/alosdev/CustomersChoice Page 25 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  26. 26. Demo timeShowing code samples
  27. 27. Demo Application Page 27 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  28. 28. AttentionAlways make clearwhat and how toreport for gaining theresults you need.Otherwise you can geta comparison like thediagram. source: http://i.imgur.com/h2JClux.jpg Page 28 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  29. 29. Q&A Page 29Source: http://www.flickr.com/photos/21496790@N06/5065834411/ moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  30. 30. www.immobilienscout24.deThanks for your attention!We are hiring!Contact:Hasan Hosgel Customer‘s ChoiceTwitter: @alosdev Repo: https://github.com/alosdev/CustomersChoiceGithub: alosdev SlideShare: http://de.slideshare.net/hosgel/moosecon-2013-customerschoice

×