SlideShare a Scribd company logo
1 of 71
Download to read offline
Building a successful business after launch
through rapid iteration


                           Brett G. Durrett (@bdurrett)
                           VP, Engineering & Operations
                                    IMVU, Inc.
Building a successful business after
  launch through rapid iteration

                  Tweet this talk!
                                            #imvugdc

              Brett G. Durrett (@bdurrett)

        VP, Engineering & Operations, IMVU, Inc.
          GDC Online, Austin, TX - October 7, 2010
About Brett

• IMVU
   – Social entertainment
   – 2005 – present
   – VP Engineering & Operations

• There.com
   – Virtual world, RIP 2010
   – Various executive roles, 1999-2004

• Asylum Entertainment
   – Game developer
   – 1992-1999… think Gameboy -> Playstation era
   – CEO
                                                          2
3
4
5
6
7
8
9
10
IMVU’s Big Product Launch!




                             11
IMVU’s Big Product Launch!




   Didn’t Happen That Way

Most of our product was built
        after launch



                                        12
13
14
Goals for this Session



• Describe IMVU’s development systems

• Provide examples that
   – Generate ideas
   – Inspire you to develop faster and better
   – Help you get started

• Convince you that this is possible at your company


                                                            15
Rapid Iteration




                  Big Project

                                16
Need solid understanding of
 your destination, exactly
     how to get there

Hard to change course once
   the mass is in motion

 Plan, check plan, re-plan,
 review plan, execute plan

   Big risk, big rewards!     Big Project
 You probably get one shot
                                            17
Rapid Iteration




React to the road ahead, obstacles unknown
    Frequently adjust and fix (pit stops)
     Smaller risk, incremental rewards
  Ability to change course, or destination
                                             18
IMVU went with rapid iteration
                                 19
Actually… we started with something like this   20
Iteration Cycle




        Build




Learn           Measure

                                   21
Iteration Cycle




        Build




Learn           Measure

                                   22
Guidance for Making “Build” Rapid




1. Customer-facing changes can be made at any
   time




                                                 23
Build Today




        Engineer commits code

20 minutes later it is live in production

    Repeat about 50 times per day




                                                24
Does This Really Work?


“Maybe this is just viable for a single developer
 … your site will be down. A lot.”



“It seems like the author either has no
   customers or very understanding customers”


               Responses to February 2009 posting about Continuous Deployment at IMVU

                                           (at the time IMVU had a $12 million run rate)


                                                                                           25
Local tests                                                   Rollback
pass, engineer                                                  (Blocks)
commits code
                                No


Lots and lots of            Metrics        Yes    Code deployed
   tests run                good?                  to all servers




   All tests       Yes   Code deployed               Metrics
                                                                    No
    pass?                to % of servers              still
                                                     good?

         No                                               Yes

Revert commit
  (Blocks)                                 Win!
Benefits of Continuous Deployment




• Rapid iteration using real customer metrics

• Regressions easy to find, correct

• Releases have zero overhead

• Engineers deploy code first day on job!

                                            #imvugdc
                                                       27
The Cluster Immune System


• Actively watches key metrics
   – Business: revenue, registration, logins
   – System: loads, database connections

• Two phase
   – Initial roll-out to ~5% hosts
   – Complete roll-out to 100% host

• Roll-back is automatic if metrics suffer

                                                   28
Finding and Fixing Problems

                        • Each release has few
                          changes, 1-3 commits

                        • Production issues
                          correlate with check-in
                          timestamp
Identifying cause
  takes minutes
                        • No overhead to
                          producing a new
                          release to correct issue


                                                     29
Schema Changes

Problems                    Solutions

• Difficult to roll-back    • New schema has formal
  schema                      review process

• Alter statements lock /   • No alter on large tables,
  impact customers            create new table
                                – Copy on read
                                – Complete migration
                                  with background job

                            • NoSQL back-end
                                                          30
New Features



• Developed on trunk, not branch
   – “hidden” from customers by A/B experiment
   – 100% control, add QA to experiment

• Deployed daily during development

• Slow roll-out by increasing experiment %
   – Experiment closed = fully launched


                                                     31
Challenges with Continuous Deployment


• Won’t catch issues that fail slowly
   – SELECT * FROM growing_table WHERE 1

• Some critical areas cause hard lock-ups
   – MySQL
   – Memcached

• Lack of test coverage of older code
   – Not an issue if you start with test coverage

• Outsourcing
                                                    32
The Beginning of Build at IMVU



1. Check-in to CVS repository

2. Occasionally rsync to live server (manual)

3. Pray for the best



 …and there was no automated test coverage

                                            #imvugdc
                                                   33
Getting Started – Extreme Basics



1. Continuous integration system

2. Production monitoring and alerting
   – System performance
   – Business metrics
   – Trending is nice too 

3. Simple deploy / roll-back system

                                                   34
Commit to Making Forward Progress




• Require coverage for all new code

• Add coverage for failures / regressions

• Understand and fix root cause of failures
   – Failures in production
   – Intermittent test failures


                                                 35
Expect Some Hurdles

• Production failures

• Different overhead
   – Tests
   – Build systems

• Production failures

• Frustration

• Process changes

• Production failures
                                              36
Iteration Cycle




        Build




Learn           Measure

                                   37
Guidance for Making “Measure” Rapid




1. Make it simple to add instrumentation

2. Aim for real-time measurements of all
   business-critical data




                                                38
“Measure” Today


• Split-test experiment system
   – Multiple branches
   – Roll-out system

• Real-time business metrics
   – Monitoring
   – Alerting
   – Trending

• User tests
                                                   39
Value of Experiments




• Freedom to try new things

• Validates hypothesis (or not)

• Identifies surprises (big ones)

• Identifying anomalies


                                                    40
Simple Experiment System




• Define experiment in code, branch

• Web interface for adjusting parameters

• Ability to compare metrics vs. control

• Make it easy to do this! Encourage use!


                                                 41
Easy Experiment Setup
$experiment = array(
    ‘name’ -> ‘DemoGDC’,
    'initial_rollout' => '0',
    'branches' => array(
        'Enhanced' => 0.5,
        // can specify multiple weighted branches
        )
    );

// Helper function for readability
function user_should_see_test_feature( $uid = NULL ) {
    return get_branch_for_customer( $uid,
    $experiment ) ) == 'Enhanced';
    // assigns customer if first time called
}

// The experiment branch
if( user_should_see_test_feature( $uid ) ) {
    // behavior for experiment
} else {
    // control behavior
}                                                        42
Experiment Admin Interface




                             43
User Testing



             You are not your user!

• Don’t rely on summarized data
   – Have the whole team watch

• Users better at expressing pain than telling
  you what you should build

• Possible with cheap equipment / no overhead

                                                     44
Monitoring, Alerting, Trending


• System metrics
   – Loads
   – Response times


• Business metrics
   – Revenue
   – Key customer behavior



                                                      45
System Trending




                  46
Application Trending




                       47
System Alerting




                  48
Business Metric Alerting




                           49
Predictive Monitoring




• Sounds great!
   – But we can’t make it work

• Problems with variation in business

• False alerts lead to ignored alerts



                                                    50
The Beginning of Measure at IMVU




1. Simple A/B experiment system

2. No cluster monitoring

3. Manual SQL queries



                                                51
Getting Started with Measure



1. Enable experiments

2. Deploy a packages for trending & alerting

3. Add a simple counter system (memcached)
   – increment / set key functions for your app
   – simple template for monitoring to read value

4. Start counting something (revenue is good)

                                               #imvugdc
                                                      52
Monitoring and Alerting Options



• Nagios – alerting, scales well, state is an issue

• Cacti – trending, simple to start, difficult to scale

• Ganglia – trending, scales well, work to centralize

• Zabbix – trending and alerting

• Munin – trending


                                                          53
Consider Monitoring


• Basic system (load, disk, availability)

• Customer lifetime funnel

• Key business metrics

• As you learn, anything that impacts these



   We are constantly adding new monitoring
                                                    54
Iteration Cycle




        Build




Learn           Measure

                                   55
Guidance for Making “Learn” Rapid




1. Regularly review data from “measure”

2. Make process change part of the process

3. Share data widely as possible




                                                 56
“Learn” Today


• Data frequently reviewed
   –   Postmortem failures
   –   Scrum retrospectives
   –   Weekly business review
   –   Experiment results

• Iterate on processes after every sprint

• Data shared with all employees

                                                   57
Experiment System Output




         #imvugdc




                           58
ROI Analysis




• Experiments simplify understanding ‘R’
   – Measure revenue per user in experiment

• Scrum simplifies understanding ‘I’
   – Track “actual time” on each task




                                                       59
Beware Data!


• Do you understand what was measured?

• Do the results make sense?

• Have you reached a local maximum?

• Is your view too narrowly focused?

• Is it statistically significant?


                                            #imvugdc
                                                   60
Statistical Significance Made Simple

 1. Define N as “the                                                          T1       T2         T3
                                                        Control               8        32         62
    number of trials.”
                                                        Experiment            4        19         40
                                                        N                     12       51        102
 2. Define D as “half the
                                                        D                     2        6.5        11
    difference between the
                                                        D2                    4      42.25       121
    'winner' and the                                    Significant?         No        No        Yes
    'loser'.”                                           Requires 50/50 split between control and
                                                        experiment. Provides 95% confidence interval
                                                        using a Chi-squared test
 3. The test result is
    statistically significant if
    D2 is bigger than N.

This is a great blog post: http://blog.asmartbear.com/easy-statistics-for-adwords-ab-testing-and-hamsters.html
                                                                                                            61
Review and Revise



• Regularly review your operating data
   – Business performance
   – Experiment results
   – Retrospectives for process

• Change processes based on learning
   – Stop doing, Start doing


                                                      62
Now What, Mr. Rapid Iteration?




                                 63
Failure is a Learning Opportunity



• Postmortem undesired results
   – Service failure
   – Business failure
   – Organizational problems

• Produce action items that prevent recurrence
   – And actually do them


                                                    64
Toyota “5 Why” Method




• Get to root cause, not just symptom

• Ask “why” 5 levels deep for each issue

• Identify corrective measures for each cause
   – Respond with appropriate level of investment



                                                    65
Example 5 Why

Y1: Why were logins failing
A1: The master database has too many connections

Y2: Why did the master have too many connections?
A2: A new feature was using slow-running queries

Y3: Why were there slow queries?
A3: They were implemented with a cache time of 0

Y4: Why would queries have a cache time of 0?
A4: Ned, the new engineer, did not know that slow queries on the
master have to be cached

Y5: Why didn’t Ned know about caching slow queries?
A5: Well, he’s new and we don’t discuss it in boot camp and he cut and
pasted from another query as an example

                                                                         66
Transparency


• Share data!
   – More informed decisions
   – Empowered staff

• Share the good and the bad

• Don’t penalize failures
   – People avoid sharing data if they are penalized
   – Failure is an opportunity to learn & improve


                                                 #imvugdc
                                                        67
The Beginning of “Learn” at IMVU




1. A/B testing (no roll-out)

2. Extremely basic reporting on funnel

3. Shared in daily standup and by e-mail



                                                   68
Making Iteration Rapid



• Make it easy

• Measure!
   – Look for anything that slows the iteration cycle

• Incremental improvements
   – Baby steps on your way to rapid iteration
   – Pick one thing to improve


                                                        69
Thank You! Any Questions?

                           IMVU recognized as:


                            Inc. 500
Brett G. Durrett                 http://bit.ly/dv52wK
                            Red Herring 100:
bdurrett@imvu.com                http://bit.ly/bbz5Ex
                            Best Place to Work:
Twitter: @bdurrett
                                 http://bit.ly/aAVdp8
  Tweet this talk!
                              (and we're hiring)

                          http://www.imvu.com/jobs
     #imvugdc
                                                        70

More Related Content

Recently uploaded

Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Recently uploaded (20)

Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Building a successful business after launch

  • 1. Building a successful business after launch through rapid iteration Brett G. Durrett (@bdurrett) VP, Engineering & Operations IMVU, Inc.
  • 2. Building a successful business after launch through rapid iteration Tweet this talk! #imvugdc Brett G. Durrett (@bdurrett) VP, Engineering & Operations, IMVU, Inc. GDC Online, Austin, TX - October 7, 2010
  • 3. About Brett • IMVU – Social entertainment – 2005 – present – VP Engineering & Operations • There.com – Virtual world, RIP 2010 – Various executive roles, 1999-2004 • Asylum Entertainment – Game developer – 1992-1999… think Gameboy -> Playstation era – CEO 2
  • 4. 3
  • 5. 4
  • 6. 5
  • 7. 6
  • 8. 7
  • 9. 8
  • 10. 9
  • 11. 10
  • 12. IMVU’s Big Product Launch! 11
  • 13. IMVU’s Big Product Launch! Didn’t Happen That Way Most of our product was built after launch 12
  • 14. 13
  • 15. 14
  • 16. Goals for this Session • Describe IMVU’s development systems • Provide examples that – Generate ideas – Inspire you to develop faster and better – Help you get started • Convince you that this is possible at your company 15
  • 17. Rapid Iteration Big Project 16
  • 18. Need solid understanding of your destination, exactly how to get there Hard to change course once the mass is in motion Plan, check plan, re-plan, review plan, execute plan Big risk, big rewards! Big Project You probably get one shot 17
  • 19. Rapid Iteration React to the road ahead, obstacles unknown Frequently adjust and fix (pit stops) Smaller risk, incremental rewards Ability to change course, or destination 18
  • 20. IMVU went with rapid iteration 19
  • 21. Actually… we started with something like this 20
  • 22. Iteration Cycle Build Learn Measure 21
  • 23. Iteration Cycle Build Learn Measure 22
  • 24. Guidance for Making “Build” Rapid 1. Customer-facing changes can be made at any time 23
  • 25. Build Today Engineer commits code 20 minutes later it is live in production Repeat about 50 times per day 24
  • 26. Does This Really Work? “Maybe this is just viable for a single developer … your site will be down. A lot.” “It seems like the author either has no customers or very understanding customers” Responses to February 2009 posting about Continuous Deployment at IMVU (at the time IMVU had a $12 million run rate) 25
  • 27. Local tests Rollback pass, engineer (Blocks) commits code No Lots and lots of Metrics Yes Code deployed tests run good? to all servers All tests Yes Code deployed Metrics No pass? to % of servers still good? No Yes Revert commit (Blocks) Win!
  • 28. Benefits of Continuous Deployment • Rapid iteration using real customer metrics • Regressions easy to find, correct • Releases have zero overhead • Engineers deploy code first day on job! #imvugdc 27
  • 29. The Cluster Immune System • Actively watches key metrics – Business: revenue, registration, logins – System: loads, database connections • Two phase – Initial roll-out to ~5% hosts – Complete roll-out to 100% host • Roll-back is automatic if metrics suffer 28
  • 30. Finding and Fixing Problems • Each release has few changes, 1-3 commits • Production issues correlate with check-in timestamp Identifying cause takes minutes • No overhead to producing a new release to correct issue 29
  • 31. Schema Changes Problems Solutions • Difficult to roll-back • New schema has formal schema review process • Alter statements lock / • No alter on large tables, impact customers create new table – Copy on read – Complete migration with background job • NoSQL back-end 30
  • 32. New Features • Developed on trunk, not branch – “hidden” from customers by A/B experiment – 100% control, add QA to experiment • Deployed daily during development • Slow roll-out by increasing experiment % – Experiment closed = fully launched 31
  • 33. Challenges with Continuous Deployment • Won’t catch issues that fail slowly – SELECT * FROM growing_table WHERE 1 • Some critical areas cause hard lock-ups – MySQL – Memcached • Lack of test coverage of older code – Not an issue if you start with test coverage • Outsourcing 32
  • 34. The Beginning of Build at IMVU 1. Check-in to CVS repository 2. Occasionally rsync to live server (manual) 3. Pray for the best …and there was no automated test coverage #imvugdc 33
  • 35. Getting Started – Extreme Basics 1. Continuous integration system 2. Production monitoring and alerting – System performance – Business metrics – Trending is nice too  3. Simple deploy / roll-back system 34
  • 36. Commit to Making Forward Progress • Require coverage for all new code • Add coverage for failures / regressions • Understand and fix root cause of failures – Failures in production – Intermittent test failures 35
  • 37. Expect Some Hurdles • Production failures • Different overhead – Tests – Build systems • Production failures • Frustration • Process changes • Production failures 36
  • 38. Iteration Cycle Build Learn Measure 37
  • 39. Guidance for Making “Measure” Rapid 1. Make it simple to add instrumentation 2. Aim for real-time measurements of all business-critical data 38
  • 40. “Measure” Today • Split-test experiment system – Multiple branches – Roll-out system • Real-time business metrics – Monitoring – Alerting – Trending • User tests 39
  • 41. Value of Experiments • Freedom to try new things • Validates hypothesis (or not) • Identifies surprises (big ones) • Identifying anomalies 40
  • 42. Simple Experiment System • Define experiment in code, branch • Web interface for adjusting parameters • Ability to compare metrics vs. control • Make it easy to do this! Encourage use! 41
  • 43. Easy Experiment Setup $experiment = array( ‘name’ -> ‘DemoGDC’, 'initial_rollout' => '0', 'branches' => array( 'Enhanced' => 0.5, // can specify multiple weighted branches ) ); // Helper function for readability function user_should_see_test_feature( $uid = NULL ) { return get_branch_for_customer( $uid, $experiment ) ) == 'Enhanced'; // assigns customer if first time called } // The experiment branch if( user_should_see_test_feature( $uid ) ) { // behavior for experiment } else { // control behavior } 42
  • 45. User Testing You are not your user! • Don’t rely on summarized data – Have the whole team watch • Users better at expressing pain than telling you what you should build • Possible with cheap equipment / no overhead 44
  • 46. Monitoring, Alerting, Trending • System metrics – Loads – Response times • Business metrics – Revenue – Key customer behavior 45
  • 51. Predictive Monitoring • Sounds great! – But we can’t make it work • Problems with variation in business • False alerts lead to ignored alerts 50
  • 52. The Beginning of Measure at IMVU 1. Simple A/B experiment system 2. No cluster monitoring 3. Manual SQL queries 51
  • 53. Getting Started with Measure 1. Enable experiments 2. Deploy a packages for trending & alerting 3. Add a simple counter system (memcached) – increment / set key functions for your app – simple template for monitoring to read value 4. Start counting something (revenue is good) #imvugdc 52
  • 54. Monitoring and Alerting Options • Nagios – alerting, scales well, state is an issue • Cacti – trending, simple to start, difficult to scale • Ganglia – trending, scales well, work to centralize • Zabbix – trending and alerting • Munin – trending 53
  • 55. Consider Monitoring • Basic system (load, disk, availability) • Customer lifetime funnel • Key business metrics • As you learn, anything that impacts these We are constantly adding new monitoring 54
  • 56. Iteration Cycle Build Learn Measure 55
  • 57. Guidance for Making “Learn” Rapid 1. Regularly review data from “measure” 2. Make process change part of the process 3. Share data widely as possible 56
  • 58. “Learn” Today • Data frequently reviewed – Postmortem failures – Scrum retrospectives – Weekly business review – Experiment results • Iterate on processes after every sprint • Data shared with all employees 57
  • 60. ROI Analysis • Experiments simplify understanding ‘R’ – Measure revenue per user in experiment • Scrum simplifies understanding ‘I’ – Track “actual time” on each task 59
  • 61. Beware Data! • Do you understand what was measured? • Do the results make sense? • Have you reached a local maximum? • Is your view too narrowly focused? • Is it statistically significant? #imvugdc 60
  • 62. Statistical Significance Made Simple 1. Define N as “the T1 T2 T3 Control 8 32 62 number of trials.” Experiment 4 19 40 N 12 51 102 2. Define D as “half the D 2 6.5 11 difference between the D2 4 42.25 121 'winner' and the Significant? No No Yes 'loser'.” Requires 50/50 split between control and experiment. Provides 95% confidence interval using a Chi-squared test 3. The test result is statistically significant if D2 is bigger than N. This is a great blog post: http://blog.asmartbear.com/easy-statistics-for-adwords-ab-testing-and-hamsters.html 61
  • 63. Review and Revise • Regularly review your operating data – Business performance – Experiment results – Retrospectives for process • Change processes based on learning – Stop doing, Start doing 62
  • 64. Now What, Mr. Rapid Iteration? 63
  • 65. Failure is a Learning Opportunity • Postmortem undesired results – Service failure – Business failure – Organizational problems • Produce action items that prevent recurrence – And actually do them 64
  • 66. Toyota “5 Why” Method • Get to root cause, not just symptom • Ask “why” 5 levels deep for each issue • Identify corrective measures for each cause – Respond with appropriate level of investment 65
  • 67. Example 5 Why Y1: Why were logins failing A1: The master database has too many connections Y2: Why did the master have too many connections? A2: A new feature was using slow-running queries Y3: Why were there slow queries? A3: They were implemented with a cache time of 0 Y4: Why would queries have a cache time of 0? A4: Ned, the new engineer, did not know that slow queries on the master have to be cached Y5: Why didn’t Ned know about caching slow queries? A5: Well, he’s new and we don’t discuss it in boot camp and he cut and pasted from another query as an example 66
  • 68. Transparency • Share data! – More informed decisions – Empowered staff • Share the good and the bad • Don’t penalize failures – People avoid sharing data if they are penalized – Failure is an opportunity to learn & improve #imvugdc 67
  • 69. The Beginning of “Learn” at IMVU 1. A/B testing (no roll-out) 2. Extremely basic reporting on funnel 3. Shared in daily standup and by e-mail 68
  • 70. Making Iteration Rapid • Make it easy • Measure! – Look for anything that slows the iteration cycle • Incremental improvements – Baby steps on your way to rapid iteration – Pick one thing to improve 69
  • 71. Thank You! Any Questions? IMVU recognized as: Inc. 500 Brett G. Durrett http://bit.ly/dv52wK Red Herring 100: bdurrett@imvu.com http://bit.ly/bbz5Ex Best Place to Work: Twitter: @bdurrett http://bit.ly/aAVdp8 Tweet this talk! (and we're hiring) http://www.imvu.com/jobs #imvugdc 70