30
www.immobilienscout24.de www.immobilienscout24.de Customer‘s Choice Let the user decide, which is the best solution moosecon | 07.03.2013 | Hasan Hosgel

Customer's Choice @ Moosecon 2013

Embed Size (px)

Citation preview

Page 1: Customer's Choice @ Moosecon 2013

www.immobilienscout24.dewww.immobilienscout24.de

Customer‘s ChoiceLet the user decide, which is the best solution

moosecon | 07.03.2013 | Hasan Hosgel

Page 2: Customer's Choice @ Moosecon 2013

moosecon 2013 | Customer‘s Choice | Hasan Hosgel

About me

Hasan Hosgel

Twitter: @alosdevGithub: alosdevGoogle+: Hasan HosgelSlideshare: hosgel

developer @ ImmobilienScout24

Page 2

Page 3: Customer's Choice @ Moosecon 2013

Agile Scenario

moosecon 2013 | Customer‘s Choice | Hasan HosgelPage 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: Customer's Choice @ Moosecon 2013

moosecon 2013 | Customer‘s Choice | Hasan Hosgel

First design

Page 4

Page 5: Customer's Choice @ Moosecon 2013

moosecon 2013 | Customer‘s Choice | Hasan Hosgel

Design Variants

Page 5

Page 6: Customer's Choice @ Moosecon 2013

User Test

moosecon 2013 | Customer‘s Choice | Hasan Hosgelpage6

Source: http://www.flickr.com/photos/lwaldal/4900501706/

Page 7: Customer's Choice @ Moosecon 2013

User Test Results

moosecon 2013 | Customer‘s Choice | Hasan HosgelPage 7

Source: http://www.flickr.com/photos/couragextoxlive/3054488331/

Page 8: Customer's Choice @ Moosecon 2013

moosecon 2013 | Customer‘s Choice | Hasan HosgelPage 8

Source: http://www.flickr.com/photos/mkamp/2429091134/

What now?

Page 9: Customer's Choice @ Moosecon 2013

What now?What do we normally in the web?

moosecon 2013 | Customer‘s Choice | Hasan HosgelPage 9

Source: http://www.flickr.com/photos/mkamp/2429091134/

Page 10: Customer's Choice @ Moosecon 2013

moosecon 2013 | Customer‘s Choice | Hasan HosgelPage 10

Source: http://www.flickr.com/photos/8047705@N02/5366637592/

Make an AB-Test

Page 11: Customer's Choice @ Moosecon 2013

moosecon 2013 | Customer‘s Choice | Hasan Hosgel

AB-Test for Android

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: Customer's Choice @ Moosecon 2013

The Development

moosecon 2013 | Customer‘s Choice | Hasan HosgelPage 12

Source: http://www.flickr.com/photos/geminidustin/275375865/

Page 13: Customer's Choice @ Moosecon 2013

moosecon 2013 | Customer‘s Choice | Hasan Hosgel

Developer’s Todo List

Page 13

●Create switches depending on the business logic●Create a proprietary solution

Not reusable

●Publish applicationWaiting for the results

●Remove switches and republish applicationWaiting that everybody updates to the new version

Page 14: Customer's Choice @ Moosecon 2013

Smarter SolutionThe library Customer’s Choice with a common approach

Page 15: Customer's Choice @ Moosecon 2013

moosecon 2013 | Customer‘s Choice | Hasan Hosgel

Customer’s Coice

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: Customer's Choice @ Moosecon 2013

moosecon 2013 | Customer‘s Choice | Hasan Hosgel

Usage

Page 16

●Add the library (*.jar) to your project

●Configure your switch based on the variantCustomersChoice.getVariant(context,“VariantName”);

●When you reach your expected goal, report itCustomersChoice.reachesGoal(“VariantName”);

●done

Page 17: Customer's Choice @ Moosecon 2013

moosecon 2013 | Customer‘s Choice | Hasan Hosgel

Usage

Page 17

●Will an exception be raised?

Page 18: Customer's Choice @ Moosecon 2013

moosecon 2013 | Customer‘s Choice | Hasan Hosgel

Usage

Page 18

●Will an exception be raised?No

Page 19: Customer's Choice @ Moosecon 2013

moosecon 2013 | Customer‘s Choice | Hasan Hosgel

Usage

Page 19

●Will an exception be raised?No

●Will it have full functionality?

Page 20: Customer's Choice @ Moosecon 2013

moosecon 2013 | Customer‘s Choice | Hasan Hosgel

Usage

Page 20

●Will an exception be raised?No

●Will it have full functionality?Not really

Page 21: Customer's Choice @ Moosecon 2013

moosecon 2013 | Customer‘s Choice | Hasan Hosgel

Usage

Page 21

●Will an exception be raised?No

●Will it have full functionality?Not really

●Why?

Page 22: Customer's Choice @ Moosecon 2013

moosecon 2013 | Customer‘s Choice | Hasan Hosgel

Usage

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: Customer's Choice @ Moosecon 2013

moosecon 2013 | Customer‘s Choice | Hasan Hosgel

Configuration of Variants

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: Customer's Choice @ Moosecon 2013

moosecon 2013 | Customer‘s Choice | Hasan Hosgel

Variant’s Attributes

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 – reset all variants

Page 25: Customer's Choice @ Moosecon 2013

moosecon 2013 | Customer‘s Choice | Hasan Hosgel

Extensibility

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: Customer's Choice @ Moosecon 2013

Demo timeShowing code samples

Page 28: Customer's Choice @ Moosecon 2013

moosecon 2013 | Customer‘s Choice | Hasan Hosgel

Attention

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: Customer's Choice @ Moosecon 2013

Q & A

moosecon 2013 | Customer‘s Choice | Hasan HosgelPage 29

Source: http://www.flickr.com/photos/21496790@N06/5065834411/