SlideShare a Scribd company logo
1 of 30
www.immobilienscout24.de




Customer‘s Choice
Let the user decide, which is the best solution


moosecon | 07.03.2013 | Hasan Hosgel
About me


           Hasan Hosgel


           Twitter:            @alosdev
           Github:             alosdev
           Google+:            Hasan Hosgel
           Slideshare: hosgel


           developer @ ImmobilienScout24




                                                     Page 2
           moosecon 2013 | Customer‘s Choice | Hasan Hosgel
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 Hosgel


Source: http://www.flickr.com/photos/europedistrict/4292951182/
First design




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




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




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




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




                                                                                                        Page 8
Source: http://www.flickr.com/photos/mkamp/2429091134/        moosecon 2013 | Customer‘s Choice | Hasan Hosgel
What now?
               What do we normally in the web?




                                                                                                   Page 9
Source: http://www.flickr.com/photos/mkamp/2429091134/   moosecon 2013 | Customer‘s Choice | Hasan Hosgel
Make an AB-Test




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


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 11
                              moosecon 2013 | Customer‘s Choice | Hasan Hosgel
The Development




                                                                                                        Page 12
Source: http://www.flickr.com/photos/geminidustin/275375865/   moosecon 2013 | Customer‘s Choice | Hasan Hosgel
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
Smarter Solution
The library Customer’s Choice
with a common approach
Customer’s Coice


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 15
                                moosecon 2013 | Customer‘s Choice | Hasan Hosgel
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
Usage


●   Will an exception be raised?




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


●   Will an exception be raised?
      No




                                                                            Page 18
                                   moosecon 2013 | Customer‘s Choice | Hasan Hosgel
Usage


●   Will an exception be raised?
      No
●   Will it have full functionality?




                                                                                Page 19
                                       moosecon 2013 | Customer‘s Choice | Hasan Hosgel
Usage


●   Will an exception be raised?
      No
●   Will it have full functionality?
      Not really




                                                                                Page 20
                                       moosecon 2013 | Customer‘s Choice | Hasan Hosgel
Usage


●   Will an exception be raised?
      No
●   Will it have full functionality?
      Not really
●   Why?




                                                                                Page 21
                                       moosecon 2013 | Customer‘s Choice | Hasan Hosgel
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
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
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 – reset all variants
                                                                             Page 24
                                    moosecon 2013 | Customer‘s Choice | Hasan Hosgel
Extensibility


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 25
                                    moosecon 2013 | Customer‘s Choice | Hasan Hosgel
Demo time
Showing code samples
Demo Application




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


Always make clear
what and how to
report for gaining the
results you need.
Otherwise you can get
a comparison like the
diagram.




                                    source: http://i.imgur.com/h2JClux.jpg




                                                                  Page 28
                         moosecon 2013 | Customer‘s Choice | Hasan Hosgel
Q&A




                                                                                                         Page 29
Source: http://www.flickr.com/photos/21496790@N06/5065834411/   moosecon 2013 | Customer‘s Choice | Hasan Hosgel
www.immobilienscout24.de


Thanks for your attention!
We are hiring!
Contact:

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

More Related Content

Viewers also liked

Mechanical Characterization of the Adobe and Their Relation with Vulnerability
Mechanical Characterization of the Adobe and Their Relation with VulnerabilityMechanical Characterization of the Adobe and Their Relation with Vulnerability
Mechanical Characterization of the Adobe and Their Relation with VulnerabilityGlobal Risk Forum GRFDavos
 
MPPL Chapter 7
MPPL Chapter 7MPPL Chapter 7
MPPL Chapter 7beiharira
 
Set nits amb la paula (miriam)
Set nits amb la paula (miriam)Set nits amb la paula (miriam)
Set nits amb la paula (miriam)antoniadenrabassa
 
SISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢE
SISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢESISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢE
SISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢERaducanuM
 
Lean, stratégie et résultats par Catherine Chabiron
Lean, stratégie et résultats par Catherine Chabiron Lean, stratégie et résultats par Catherine Chabiron
Lean, stratégie et résultats par Catherine Chabiron Institut Lean France
 
How to become an Android developer
How to become an Android developerHow to become an Android developer
How to become an Android developerIvan Kocijan
 

Viewers also liked (7)

Mechanical Characterization of the Adobe and Their Relation with Vulnerability
Mechanical Characterization of the Adobe and Their Relation with VulnerabilityMechanical Characterization of the Adobe and Their Relation with Vulnerability
Mechanical Characterization of the Adobe and Their Relation with Vulnerability
 
MPPL Chapter 7
MPPL Chapter 7MPPL Chapter 7
MPPL Chapter 7
 
Set nits amb la paula (miriam)
Set nits amb la paula (miriam)Set nits amb la paula (miriam)
Set nits amb la paula (miriam)
 
SISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢE
SISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢESISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢE
SISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢE
 
Inheritance in java
Inheritance in javaInheritance in java
Inheritance in java
 
Lean, stratégie et résultats par Catherine Chabiron
Lean, stratégie et résultats par Catherine Chabiron Lean, stratégie et résultats par Catherine Chabiron
Lean, stratégie et résultats par Catherine Chabiron
 
How to become an Android developer
How to become an Android developerHow to become an Android developer
How to become an Android developer
 

Similar to Customer's Choice @ Moosecon 2013

Products Not Projects: Delivering Value with Product Roadmaps
Products Not Projects: Delivering Value with Product RoadmapsProducts Not Projects: Delivering Value with Product Roadmaps
Products Not Projects: Delivering Value with Product RoadmapsEBG Consulting, Inc.
 
Success with User Stories: Cut Through User Story Chaos (Toronto Agile Commun...
Success with User Stories: Cut Through User Story Chaos (Toronto Agile Commun...Success with User Stories: Cut Through User Story Chaos (Toronto Agile Commun...
Success with User Stories: Cut Through User Story Chaos (Toronto Agile Commun...EBG Consulting, Inc.
 
Making Your User Stories Ready to Get to “Done”
Making Your User Stories Ready to Get to “Done”Making Your User Stories Ready to Get to “Done”
Making Your User Stories Ready to Get to “Done”EBG Consulting, Inc.
 
Testers know thy customers - A talk on verifying business ideas using analyti...
Testers know thy customers - A talk on verifying business ideas using analyti...Testers know thy customers - A talk on verifying business ideas using analyti...
Testers know thy customers - A talk on verifying business ideas using analyti...Eddy Bruin
 
Power Up Your Agile Planning and Analysis: Deliver Value Via Structured Conve...
Power Up Your Agile Planning and Analysis: Deliver Value Via Structured Conve...Power Up Your Agile Planning and Analysis: Deliver Value Via Structured Conve...
Power Up Your Agile Planning and Analysis: Deliver Value Via Structured Conve...EBG Consulting, Inc.
 

Similar to Customer's Choice @ Moosecon 2013 (6)

Products Not Projects: Delivering Value with Product Roadmaps
Products Not Projects: Delivering Value with Product RoadmapsProducts Not Projects: Delivering Value with Product Roadmaps
Products Not Projects: Delivering Value with Product Roadmaps
 
Success with User Stories: Cut Through User Story Chaos (Toronto Agile Commun...
Success with User Stories: Cut Through User Story Chaos (Toronto Agile Commun...Success with User Stories: Cut Through User Story Chaos (Toronto Agile Commun...
Success with User Stories: Cut Through User Story Chaos (Toronto Agile Commun...
 
Making Your User Stories Ready to Get to “Done”
Making Your User Stories Ready to Get to “Done”Making Your User Stories Ready to Get to “Done”
Making Your User Stories Ready to Get to “Done”
 
Success With User Stories:
Success With User Stories: Success With User Stories:
Success With User Stories:
 
Testers know thy customers - A talk on verifying business ideas using analyti...
Testers know thy customers - A talk on verifying business ideas using analyti...Testers know thy customers - A talk on verifying business ideas using analyti...
Testers know thy customers - A talk on verifying business ideas using analyti...
 
Power Up Your Agile Planning and Analysis: Deliver Value Via Structured Conve...
Power Up Your Agile Planning and Analysis: Deliver Value Via Structured Conve...Power Up Your Agile Planning and Analysis: Deliver Value Via Structured Conve...
Power Up Your Agile Planning and Analysis: Deliver Value Via Structured Conve...
 

More from Hasan Hosgel

Android Developer Days 2014 How second screen can enhance your app
Android Developer Days 2014 How second screen can enhance your appAndroid Developer Days 2014 How second screen can enhance your app
Android Developer Days 2014 How second screen can enhance your appHasan Hosgel
 
Mtc spring 2014 best practices to develop for different android device classi...
Mtc spring 2014 best practices to develop for different android device classi...Mtc spring 2014 best practices to develop for different android device classi...
Mtc spring 2014 best practices to develop for different android device classi...Hasan Hosgel
 
Droidcon it 2014 best practices to develop for different android device class...
Droidcon it 2014 best practices to develop for different android device class...Droidcon it 2014 best practices to develop for different android device class...
Droidcon it 2014 best practices to develop for different android device class...Hasan Hosgel
 
Droidcon nl 2013 best practices to develop for different android device class...
Droidcon nl 2013 best practices to develop for different android device class...Droidcon nl 2013 best practices to develop for different android device class...
Droidcon nl 2013 best practices to develop for different android device class...Hasan Hosgel
 
MTC 2013 Berlin - Best Practices for Multi Devices
MTC 2013 Berlin - Best Practices for Multi DevicesMTC 2013 Berlin - Best Practices for Multi Devices
MTC 2013 Berlin - Best Practices for Multi DevicesHasan Hosgel
 
Android Developer Days 2013 - MultiDevice Nightmare
Android Developer Days 2013 - MultiDevice NightmareAndroid Developer Days 2013 - MultiDevice Nightmare
Android Developer Days 2013 - MultiDevice NightmareHasan Hosgel
 
Droidcon 2013 Multidevice Nightmare
Droidcon 2013 Multidevice NightmareDroidcon 2013 Multidevice Nightmare
Droidcon 2013 Multidevice NightmareHasan Hosgel
 
Android bootcamp 2013 Lists & Adapter
Android bootcamp 2013 Lists & AdapterAndroid bootcamp 2013 Lists & Adapter
Android bootcamp 2013 Lists & AdapterHasan Hosgel
 
Customer’s Choice @ GDG Android Berlin on January meetup
Customer’s Choice @ GDG Android Berlin on January meetupCustomer’s Choice @ GDG Android Berlin on January meetup
Customer’s Choice @ GDG Android Berlin on January meetupHasan Hosgel
 
Continuously Break The Android
Continuously Break The AndroidContinuously Break The Android
Continuously Break The AndroidHasan Hosgel
 
Coexisting of Android & Robots
Coexisting of Android & RobotsCoexisting of Android & Robots
Coexisting of Android & RobotsHasan Hosgel
 
Mobile Development across Different Platforms @ Immobilienscout24
Mobile Development across Different Platforms @ Immobilienscout24Mobile Development across Different Platforms @ Immobilienscout24
Mobile Development across Different Platforms @ Immobilienscout24Hasan Hosgel
 

More from Hasan Hosgel (12)

Android Developer Days 2014 How second screen can enhance your app
Android Developer Days 2014 How second screen can enhance your appAndroid Developer Days 2014 How second screen can enhance your app
Android Developer Days 2014 How second screen can enhance your app
 
Mtc spring 2014 best practices to develop for different android device classi...
Mtc spring 2014 best practices to develop for different android device classi...Mtc spring 2014 best practices to develop for different android device classi...
Mtc spring 2014 best practices to develop for different android device classi...
 
Droidcon it 2014 best practices to develop for different android device class...
Droidcon it 2014 best practices to develop for different android device class...Droidcon it 2014 best practices to develop for different android device class...
Droidcon it 2014 best practices to develop for different android device class...
 
Droidcon nl 2013 best practices to develop for different android device class...
Droidcon nl 2013 best practices to develop for different android device class...Droidcon nl 2013 best practices to develop for different android device class...
Droidcon nl 2013 best practices to develop for different android device class...
 
MTC 2013 Berlin - Best Practices for Multi Devices
MTC 2013 Berlin - Best Practices for Multi DevicesMTC 2013 Berlin - Best Practices for Multi Devices
MTC 2013 Berlin - Best Practices for Multi Devices
 
Android Developer Days 2013 - MultiDevice Nightmare
Android Developer Days 2013 - MultiDevice NightmareAndroid Developer Days 2013 - MultiDevice Nightmare
Android Developer Days 2013 - MultiDevice Nightmare
 
Droidcon 2013 Multidevice Nightmare
Droidcon 2013 Multidevice NightmareDroidcon 2013 Multidevice Nightmare
Droidcon 2013 Multidevice Nightmare
 
Android bootcamp 2013 Lists & Adapter
Android bootcamp 2013 Lists & AdapterAndroid bootcamp 2013 Lists & Adapter
Android bootcamp 2013 Lists & Adapter
 
Customer’s Choice @ GDG Android Berlin on January meetup
Customer’s Choice @ GDG Android Berlin on January meetupCustomer’s Choice @ GDG Android Berlin on January meetup
Customer’s Choice @ GDG Android Berlin on January meetup
 
Continuously Break The Android
Continuously Break The AndroidContinuously Break The Android
Continuously Break The Android
 
Coexisting of Android & Robots
Coexisting of Android & RobotsCoexisting of Android & Robots
Coexisting of Android & Robots
 
Mobile Development across Different Platforms @ Immobilienscout24
Mobile Development across Different Platforms @ Immobilienscout24Mobile Development across Different Platforms @ Immobilienscout24
Mobile Development across Different Platforms @ Immobilienscout24
 

Recently uploaded

Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftshyamraj55
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxFIDO Alliance
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsLeah Henrickson
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...marcuskenyatta275
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch TuesdayIvanti
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...FIDO Alliance
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAnitaRaj43
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptxFIDO Alliance
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentationyogeshlabana357357
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctBrainSell Technologies
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)Samir Dash
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewDianaGray10
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Skynet Technologies
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe中 央社
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGDSC PJATK
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfdanishmna97
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxFIDO Alliance
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTopCSSGallery
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!Memoori
 

Recently uploaded (20)

Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overview
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 

Customer's Choice @ Moosecon 2013

  • 1. www.immobilienscout24.de Customer‘s Choice Let the user decide, which is the best solution moosecon | 07.03.2013 | Hasan Hosgel
  • 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. 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 Hosgel Source: http://www.flickr.com/photos/europedistrict/4292951182/
  • 4. First design Page 4 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  • 5. Design Variants Page 5 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  • 6. User Test page6 Source: http://www.flickr.com/photos/lwaldal/4900501706/ moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  • 7. User Test Results Page 7 Source: http://www.flickr.com/photos/couragextoxlive/3054488331/ moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  • 8. What now? Page 8 Source: http://www.flickr.com/photos/mkamp/2429091134/ moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  • 9. What now? What do we normally in the web? Page 9 Source: http://www.flickr.com/photos/mkamp/2429091134/ moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  • 10. Make an AB-Test Page 10 Source: http://www.flickr.com/photos/8047705@N02/5366637592/ moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  • 11. AB-Test for Android 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 11 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  • 12. The Development Page 12 Source: http://www.flickr.com/photos/geminidustin/275375865/ moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  • 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. Smarter Solution The library Customer’s Choice with a common approach
  • 15. Customer’s Coice 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 15 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  • 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. Usage ● Will an exception be raised? Page 17 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  • 18. Usage ● Will an exception be raised? No Page 18 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  • 19. Usage ● Will an exception be raised? No ● Will it have full functionality? Page 19 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  • 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. 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. 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. 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. 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 – reset all variants Page 24 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  • 25. Extensibility 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 25 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  • 27. Demo Application Page 27 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  • 28. Attention Always make clear what and how to report for gaining the results you need. Otherwise you can get a comparison like the diagram. source: http://i.imgur.com/h2JClux.jpg Page 28 moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  • 29. Q&A Page 29 Source: http://www.flickr.com/photos/21496790@N06/5065834411/ moosecon 2013 | Customer‘s Choice | Hasan Hosgel
  • 30. www.immobilienscout24.de Thanks for your attention! We are hiring! Contact: Hasan Hosgel Customer‘s Choice Twitter: @alosdev Repo: https://github.com/alosdev/CustomersChoice Github: alosdev SlideShare: http://de.slideshare.net/hosgel/moosecon-2013-customerschoice