SlideShare a Scribd company logo
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 Vulnerability
Global Risk Forum GRFDavos
 
MPPL Chapter 7
MPPL Chapter 7MPPL Chapter 7
MPPL Chapter 7
beiharira
 
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
 
Inheritance in java
Inheritance in javaInheritance 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
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 developer
Ivan 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 Roadmaps
EBG 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.
 
Success With User Stories:
Success With User Stories: Success With User Stories:
Success With User Stories:
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 app
Hasan 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 Devices
Hasan Hosgel
 
Android Developer Days 2013 - MultiDevice Nightmare
Android Developer Days 2013 - MultiDevice NightmareAndroid Developer Days 2013 - MultiDevice Nightmare
Android Developer Days 2013 - MultiDevice Nightmare
Hasan Hosgel
 
Droidcon 2013 Multidevice Nightmare
Droidcon 2013 Multidevice NightmareDroidcon 2013 Multidevice Nightmare
Droidcon 2013 Multidevice Nightmare
Hasan Hosgel
 
Android bootcamp 2013 Lists & Adapter
Android bootcamp 2013 Lists & AdapterAndroid bootcamp 2013 Lists & Adapter
Android bootcamp 2013 Lists & Adapter
Hasan 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 meetup
Hasan Hosgel
 
Continuously Break The Android
Continuously Break The AndroidContinuously Break The Android
Continuously Break The Android
Hasan Hosgel
 
Coexisting of Android & Robots
Coexisting of Android & RobotsCoexisting of Android & Robots
Coexisting of Android & Robots
Hasan Hosgel
 
Mobile Development across Different Platforms @ Immobilienscout24
Mobile Development across Different Platforms @ Immobilienscout24Mobile Development across Different Platforms @ Immobilienscout24
Mobile Development across Different Platforms @ Immobilienscout24
Hasan 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

Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 

Recently uploaded (20)

Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 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