hasan hosgel moosecon_2013_customers_choice fullsize
TRANSCRIPT
![Page 1: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/1.jpg)
www.immobilienscout24.de www.immobilienscout24.de
Customer‘s Choice Let the user decide, which is the best solution
moosecon | 07.03.2013 | Hasan Hosgel
![Page 2: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/2.jpg)
About me
Hasan Hosgel Twitter: @alosdev Github: alosdev Google+: Hasan Hosgel Slideshare: hosgel developer @ ImmobilienScout24
moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page 2
![Page 3: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/3.jpg)
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/
![Page 4: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/4.jpg)
First design
moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page 4
![Page 5: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/5.jpg)
Design Variants
moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page 5
![Page 6: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/6.jpg)
User Test
moosecon 2013 | Customer‘s Choice | Hasan Hosgel page6
Source: http://www.flickr.com/photos/lwaldal/4900501706/
![Page 7: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/7.jpg)
User Test Results
moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page 7
Source: http://www.flickr.com/photos/couragextoxlive/3054488331/
![Page 8: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/8.jpg)
moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page 8
Source: http://www.flickr.com/photos/mkamp/2429091134/
What now?
![Page 9: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/9.jpg)
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/
![Page 10: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/10.jpg)
moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page 10
Source: http://www.flickr.com/photos/8047705@N02/5366637592/
Make an AB-Test
![Page 11: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/11.jpg)
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.
![Page 12: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/12.jpg)
The Development
moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page 12
Source: http://www.flickr.com/photos/geminidustin/275375865/
![Page 13: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/13.jpg)
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
![Page 14: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/14.jpg)
Smarter Solution The library Customer’s Choice with a common approach
![Page 15: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/15.jpg)
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
![Page 16: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/16.jpg)
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
![Page 17: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/17.jpg)
Usage
moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page 17
● Will an exception be raised?
![Page 18: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/18.jpg)
Usage
moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page 18
● Will an exception be raised? " No
![Page 19: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/19.jpg)
Usage
moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page 19
● Will an exception be raised? " No ● Will it have full functionality?
![Page 20: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/20.jpg)
Usage
moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page 20
● Will an exception be raised? " No ● Will it have full functionality?
" Not really
![Page 21: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/21.jpg)
Usage
moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page 21
● Will an exception be raised? " No ● Will it have full functionality?
" Not really ● Why?
![Page 22: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/22.jpg)
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
![Page 23: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/23.jpg)
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
![Page 24: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/24.jpg)
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
![Page 25: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/25.jpg)
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
![Page 26: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/26.jpg)
Demo time Showing code samples
![Page 27: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/27.jpg)
Demo Application
moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page 27
![Page 28: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/28.jpg)
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.
![Page 29: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/29.jpg)
Q & A
moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page 29
Source: http://www.flickr.com/photos/21496790@N06/5065834411/
![Page 30: Hasan hosgel moosecon_2013_customers_choice fullsize](https://reader033.vdocuments.us/reader033/viewer/2022052618/554d23fcb4c905c5208b4cc0/html5/thumbnails/30.jpg)
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