Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AB-Test Library for Android - Moosecon 2013

AB-Test Library for Android - Moosecon 2013

Customer’s Choice is a AB-Test library for Android. Unlike the Amazon’s offer, you can use it in every productive application, configure it freely and it’s easily extensible. It is provided as an Open Source library that can be used within any Android project. The talk will be an introduction into the library and will present a Demo for showing the practical usage of Customer’s Choice. This session aims at people with knowledge of coding for Android.

Hasan Hosgel

March 07, 2013
Tweet

More Decks by Hasan Hosgel

Other Decks in Technology

Transcript

  1. About me Hasan Hosgel Twitter: @alosdev Github: alosdev Google+: Hasan

    Hosgel Slideshare: hosgel developer @ ImmobilienScout24 moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page 2
  2. Agile Scenario moosecon 2013 | Customer‘s Choice | Hasan Hosgel

    Page 3 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.“ Source: http://www.flickr.com/photos/europedistrict/4292951182/
  3. User Test moosecon 2013 | Customer‘s Choice | Hasan Hosgel

    page6 Source: http://www.flickr.com/photos/lwaldal/4900501706/
  4. User Test Results moosecon 2013 | Customer‘s Choice | Hasan

    Hosgel Page 7 Source: http://www.flickr.com/photos/couragextoxlive/3054488331/
  5. moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page 8

    Source: http://www.flickr.com/photos/mkamp/2429091134/ What now?
  6. What now? What do we normally in the web? moosecon

    2013 | Customer‘s Choice | Hasan Hosgel Page 9 Source: http://www.flickr.com/photos/mkamp/2429091134/
  7. moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page 10

    Source: http://www.flickr.com/photos/8047705@N02/5366637592/ Make an AB-Test
  8. AB-Test for Android moosecon 2013 | Customer‘s Choice | Hasan

    Hosgel Page 11 You have an application, which is probably publicly available. Send an amount of users to another variant than the normal one. è Depending on success ratio you have the best suiting solution.
  9. The Development moosecon 2013 | Customer‘s Choice | Hasan Hosgel

    Page 12 Source: http://www.flickr.com/photos/geminidustin/275375865/
  10. Developer’s Todo List moosecon 2013 | Customer‘s Choice | Hasan

    Hosgel Page 13 •  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
  11. Customer’s Coice moosecon 2013 | Customer‘s Choice | Hasan Hosgel

    Page 15 A lightweight Open Source Android library making simple AB-Tests in an application, which can be configured over the network. Possible AB-Tests variants: •  For layouts and positions •  For colors •  For workflows •  For texts https://github.com/alosdev/CustomersChoice
  12. Usage moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page

    16 •  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
  13. Usage moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page

    17 •  Will an exception be raised?
  14. Usage moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page

    18 •  Will an exception be raised? "   No
  15. Usage moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page

    19 •  Will an exception be raised? "   No •  Will it have full functionality?
  16. Usage moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page

    20 •  Will an exception be raised? "   No •  Will it have full functionality? "   Not really
  17. Usage moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page

    21 •  Will an exception be raised? "   No •  Will it have full functionality? "   Not really •  Why?
  18. Usage moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page

    22 •  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
  19. Configuration of Variants moosecon 2013 | Customer‘s Choice | Hasan

    Hosgel Page 23 •  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
  20. Variant’s Attributes moosecon 2013 | Customer‘s Choice | Hasan Hosgel

    Page 24 •  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
  21. Extensibility moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page

    25 You can write custom plugins for: •  Logging •  Reporting You can fork the library on Github, make your changes and send a pull request. https://github.com/alosdev/CustomersChoice
  22. Attention moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page

    28 source: http://i.imgur.com/h2JClux.jpg Always make clear what and how to report for gaining the results you need. Otherwise you can get a comparison like the diagram.
  23. Q & A moosecon 2013 | Customer‘s Choice | Hasan

    Hosgel Page 29 Source: http://www.flickr.com/photos/21496790@N06/5065834411/
  24. www.immobilienscout24.de www.immobilienscout24.de Thanks for your attention! We are hiring! Contact:

    Hasan Hosgel Twitter: @alosdev Github: alosdev Customer‘s Choice Repo: https://github.com/alosdev/CustomersChoice SlideShare: http://de.slideshare.net/hosgel/moosecon-2013-customerschoice