+ All Categories
Home > Documents > Hasan hosgel moosecon_2013_customers_choice fullsize

Hasan hosgel moosecon_2013_customers_choice fullsize

Date post: 09-May-2015
Category:
Upload: heinrich-seeger
View: 377 times
Download: 3 times
Share this document with a friend
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
Transcript
Page 1: Hasan hosgel moosecon_2013_customers_choice fullsize

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

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

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

First design

moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page 4

Page 5: Hasan hosgel moosecon_2013_customers_choice fullsize

Design Variants

moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page 5

Page 6: Hasan hosgel moosecon_2013_customers_choice fullsize

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

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

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

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

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

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

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

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

Smarter Solution The library Customer’s Choice with a common approach

Page 15: Hasan hosgel moosecon_2013_customers_choice fullsize

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

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

Usage

moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page 17

●  Will an exception be raised?

Page 18: Hasan hosgel moosecon_2013_customers_choice fullsize

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

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

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

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

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

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

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

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

Demo time Showing code samples

Page 27: Hasan hosgel moosecon_2013_customers_choice fullsize

Demo Application

moosecon 2013 | Customer‘s Choice | Hasan Hosgel Page 27

Page 28: Hasan hosgel moosecon_2013_customers_choice fullsize

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

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

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


Recommended