leveraging open source software to maximize your development resources (and the problems you can...

46
0 Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success) LOGIN 2010, Seattle, WA March 13, 2010 Brett G. Durrett (@bdurrett) Vice President Engineering & Operations, IMVU, Inc.

Upload: brett-durrett

Post on 06-May-2015

753 views

Category:

Technology


0 download

DESCRIPTION

As presented at LOGIN 2010, Seattle, WA on March 13, 2010. Session Summary: IMVU has become a leader in virtual goods, avatars and user generated content. Open Source Software has been critical to this success, helping IMVU scale to 45 million registered users, a $30 million run rate and a catalog of over 3 million user-generated virtual goods. As a result, IMVU is the largest running installation of multiple Open Source Software projects. One of the key factors to IMVU’s success was experimenting with features to discover a product that would lead to a profitable business. To conserve cash and allow the most focus on product and feature experiments, Open Source Software was heavily utilized to solve any problem that was not specific to the IMVU offering. This approach allowed rapid iteration and testing of feature ideas instead of large development / big-bet type features. In many cases project that would have been several months of work were delivered, tested and abandoned in days. In other cases, features were tested, found successful and adopted – these frequently lead to a new set of problems, from security vulnerabilities to scaling limitations.

TRANSCRIPT

Page 1: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

0

Leveraging Open Source Software to

Maximize Your Development Resources(and the problems you can expect with success)

LOGIN 2010, Seattle, WA

March 13, 2010

Brett G. Durrett (@bdurrett)

Vice President Engineering & Operations, IMVU, Inc.

Page 2: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

1

Who is This Guy?

• VP Engineering & Operations, IMVU

– 5 years, plan on many more

• VP Operations / GM Consumer, There.com

– 5 years

• CEO, Asylum Entertainment

– Independent game studio

– 7 years, 20+ titles

Page 3: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

2

Why Am I Here?

• Talking about Open Source Software

– How it was critical to IMVU’s success

– Problems that resulted

– Why it is probably important to you

• More about business than technology

Page 4: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

An online community where members use 3D avatars

to meet new people, chat, create

and have fun with their friends

Page 5: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

4

How We Work

• Agile

– 2-3 week sprints

• Continuous Deployment

– No QA or staging servers

– Every commit goes live to production, 20 min

– New code goes live 20-50 times each day

• Data Driven

– Make decisions using customer metrics

Page 7: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

6

What Scale are We Talking About?

• Over 4 million user-generated items

• 2 million monthly active users

• 10 million monthly unique visitors

• 50 million registered users

• Peak ~120K concurrent IM client logins

• It’s a real business!

– $40 million run rate

– Profitable and doubled revenue in 2009

Page 8: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

7

Don’t Sue Me

I’m not a lawyer – I don’t play one on TV

I am not offering legal advice

Before using Open Source software, read

the license, consult an attorney if needed

Page 9: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

8

Is Open Source the right solution for you?

Page 10: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

9

What business problem are you trying to solve?

Page 11: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

10

Why Open Source?

• Problem is finding right product, not scale

– A product that supports your business

• Limited resources

• Wheels have already been invented

Page 12: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

11

Why IMVU Chose OSS

• 2004 – are avatars and virtual goods even

a business?

• Wanted to spend limited resources only on

problems somebody else hadn’t solved

• Quickest path to customer feedback

Page 13: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

12

IMVU Launch, 2004

• Small team

– 2 engineers, 3 content / design

• Resources spent on unique problem

– 3D IM Client

– Derivable 3D UGC

• Open Source for everything else

– LAMP stack

– Catalog (and payments)

– Forums

Page 14: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

13

OSS Early Value

• Conception to ship in 6 months

• > 80% code was free

• Real customer feedback

– Quickly learning what had to change

Page 15: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

14

And we continued…

• Photo galleries

– Coppermine added in weeks

• Blogs

– B2evo added in one day

• Groups

– Phorum added in about a week

Page 16: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

15

OSS Opportunities

• Back end (server side)

• Website

– Libraries

– Applications

• Application libraries

Quick mention:

• Development Tools

• Office Productivity

Page 17: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

16

Who Is Making This Stuff

Majority of Open Source projects

designed, created and maintained by

technical people

• Good news for systems & infrastructure

• Not so much for UI for non-technical users

Page 18: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

17

Back End (server side)

• Software in mature state

• Works “out of the box”

• Scalable solutions for several problems

– Database, caching, storage, monitoring

• Active contributors from large companies

– Facebook and Google are working for you

Page 19: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

18

MogileFS

Business problems

• Lots of UGC

• Little cash

• Despise being hostage to vendor upgrade

MogileFS

• Distributed, redundant data store

• Using 32 Tb, 600 million files

Page 20: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

19

Website Libraries

• Popular packages are well supported

– YUI

– jQuery

• Already built many common components

– Dialogs, menus, images, pagination

– Fancy AJAX / DHTML

• Can handle browser idiosyncrasies

Page 21: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

20

Website Applications – the Bad

• Software varies in maturity & quality

• Usually requires integration work

– UI consistency

– Interfaces with existing data structures

• It probably won’t scale without investment

Page 22: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

21

Website Applications - the Good

• Early solution for non-core problems

– Customer service

– Profiles

– Account basics

• Great for testing feature interest

Page 23: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

22

Testing Feature Interest

Do our customers care about blogs?

• B2evo integrated & deployed in 1 day

• Real customer feedback (usage metrics)

Page 24: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

23

Application Libraries

• Available for big components

– Rendering

– Audio

– Effects

• Double check the license!

Page 25: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

24

XULRunner

• 2008 updated IM client

• Wanted to rapidly iterate on UI

• Used Mozilla HTML libraries

• HTML / Javascript programmers for UI

– Was previously C++ programmer

Page 26: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

25

Client UI – Old School

Page 27: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

26

Client UI – New Hotness

Page 28: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

27

Client UI – Catalog

Page 29: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)
Page 30: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

HTML/JS

Page 31: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

30

Development Tools

• Lot’s of great tools

– Ranging from editors to testing frameworks

– Built by engineers for engineers

• Extendable

– You have the source!

Page 32: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

31

Office Productivity

• Great options when cash critical

– Free alternatives for Office, Photoshop, etc.

• Sometimes obscure compatibility issues

with commercial versions

• Frequently suffers from unintuitive UI

see http://www.osalt.com/

Page 33: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

32

Congratulations!

You spent your resources wisely

You built a product customers love

You’re growing a business

Now you have some problems to solve

Page 34: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

33

Scalability

• Back-end systems will probably scale

– Easy to scale by following examples

– Some exceptions for trending and alerting

• Web applications will likely require

investment to scale

Page 35: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

34

Scaling Web Applications

• Most packages think of users in the hundreds or

thousands

– “SELECT * FROM USERS WHERE 1”

• Usually no shared (network) caching

– Beneficial for scaling by adding servers

• Nobody has horizontal database partitioning

– Eliminates database as scaling limiter

Page 36: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

35

Web App Scaling Cheat Sheet

Database is almost always your problem

1. Add read slaves to database

2. Use shared (network) caching of queries

3. Vertical partition

4. Horizontal partitions

…and SSDs will buy you a lot of time!!!

Page 37: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

36

Reality Check

In most cases you probably should not have

been solving those problems anyway

(yet)

Page 38: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

37

Feature Testing

• Hypothesis test big wins

– highly valuable

– completely worthless

• Additional difficulties when not definitive

– Kill it or invest in improvements?

• Won’t catch right feature, wrong implementation

• Can lead to orphaned features

Page 39: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

38

Blogs

• Customers liked them… kinda

• Largest user base within a few days

– Forced investment to scale the software

– (still less than if we had written them)

Page 40: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

39

Security

• The world has access to your source code

• Popular back-end systems pretty good

• Web applications less solid

– Cross-site scripting

– SQL injection

– Admin scripts

– Beware PHP “helpers”

Page 41: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

40

Free Upgrades FTW!

Active Open Source projects receive

ongoing improvements

New features and security updates for free!

Page 42: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

41

No Soup for You

…but you might not benefit from them

• As your source changes hard to integrate

updates (unless they are libraries)

– Keeping your changes compatible with OS

package requires more investment

• Some benefit from diffs / patches

Page 43: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

42

Other Challenges

• Code maintainability

– Unlikely matches your coding standards

– May not have test coverage

• New hires learn by example

– Early integrations may not be best example

Page 44: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

43

In conclusion…

Open Source Can Work For You!

• Invest to solve your truly unique problems

• Let others solve your common problems

• Yes, this can lead to future problems

– Many are good, they mean you’re successful

– Better than solving problems you won’t have

Page 45: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

44

Q&A

Questions?

Page 46: Leveraging Open Source Software to Maximize Your Development Resources (and the problems you can expect with success)

45

Thank You!

Brett G. Durrett

[email protected]

Twitter: @bdurrett

IMVU was recognized as one of

the “Best Places to Work” (and we’re hiring)

http://www.imvu.com/jobs/