Product Development in the Open - OpenStack Summit May 2014 Atlanta

Preview:

DESCRIPTION

In OpenStack, all our coding is done out in the open. You can read the source code and follow the peer reviews the code went through before it was merged in. Often times, however, the original intent behind a blueprint or feature request gets murky, leaving code reviewers focused on the trees instead of the forest. In this talk, join Brian Rosmaita, Cloud Images Product Manager at Rackspace, as he advocates for full features documented with use cases, prototype press releases, and preliminary FAQ lists to help articulate the vision for features. Brian will share his experiences in working in the Glance project, and offer practical advice on how developers and product managers can work together to improve the overall experience of turning OpenStack ideas into products. http://sched.co/1dJ5rrM

Citation preview

(open source isn’t just a developers’ thing)

Product Development in the Open

#rackstackatl

• Brian Rosmaita

– @br14nr

– IRC: rosmaita

• Cloud Images Product Manager at Rackspace

• OpenStack ATC since Folsom

– Mostly Glance and docs

• Glance driver

• Happy to be here, hope you’re enjoying the summit

About me

#rackstackatl

• Who cares about OpenStack?

• Open source code development vs. product development

• Why product development is important for open source

• Product development in the open

• What you can do

Outline

#rackstackatl

• Who cares about OpenStack?

• Open source code development vs. product development

• Why product development is important for open source

• Product development in the open

• What you can do

• What you should do

Outline

#rackstackatl

• Who cares about OpenStack?

• Open source code development vs. product development

• Why product development is important for open source

• Product development in the open

• What you can do

• What you should do

• What you must do

Outline

#rackstackatl RACKSPACE® HOSTING | WWW.RACKSPACE.COM

WHO CARES

ABOUT OPENSTACK?

#rackstackatl

• Do end-users care about OpenStack?

Who cares about OpenStack?

#rackstackatl

• Do end-users care about OpenStack?

– I hate to say this, but probably not

Who cares about OpenStack?

#rackstackatl

• Do end-users care about OpenStack?

– I hate to say this, but probably not

• Do end-users care about open source?

Who cares about OpenStack?

#rackstackatl

• Do end-users care about OpenStack?

– I hate to say this, but probably not

• Do end-users care about open source?

– Probably not

Who cares about OpenStack?

#rackstackatl

• Do end-users care about OpenStack?

– I hate to say this, but probably not

• Do end-users care about open source?

– Probably not

• Can we just ignore them?

Who cares about OpenStack?

#rackstackatl

• Do end-users care about OpenStack?

– I hate to say this, but probably not

• Do end-users care about open source?

– Probably not

• Can we just ignore them?

– Probably not

Who cares about OpenStack?

#rackstackatl

• Do end-users care about OpenStack?

– I hate to say this, but probably not

• Do end-users care about open source?

– Probably not

• Can we just ignore them?

– Probably not

– If you’re running a public cloud: definitely not

Who cares about OpenStack?

#rackstackatl

• Do end-users care about OpenStack?

– I hate to say this, but probably not

• Do end-users care about open source?

– Probably not

• Can we just ignore them?

– Probably not

– If you’re running a public cloud: definitely not

– If you’re running a private cloud: the “shadow IT” phenomenon

Who cares about OpenStack?

#rackstackatl

• Do providers care about OpenStack?

Who cares about OpenStack?

#rackstackatl

• Do providers care about OpenStack?

– I think current and potential cloud providers care about open-source

Who cares about OpenStack?

#rackstackatl

• Do providers care about OpenStack?

– I think current and potential cloud providers care about open-source

• Providers want

– Stability

Who cares about OpenStack?

#rackstackatl

• Do providers care about OpenStack?

– I think current and potential cloud providers care about open-source

• Providers want

– Stability

– Ongoing improvement

Who cares about OpenStack?

#rackstackatl

• Do providers care about OpenStack?

– I think current and potential cloud providers care about open-source

• Providers want

– Stability

– Ongoing improvement

– Stability

Who cares about OpenStack?

#rackstackatl

• Do providers care about OpenStack?

– I think current and potential cloud providers care about open-source

• Providers want

– Stability

– Ongoing improvement

– Stability

– Competitive features for end users

Who cares about OpenStack?

#rackstackatl

• Do providers care about OpenStack?

– I think current and potential cloud providers care about open-source

• Providers want

– Stability

– Ongoing improvement

– Stability

– Competitive features for end users

– Stability

Who cares about OpenStack?

#rackstackatl

• If your customer base primarily interacts with a control panel, you can swap out the control plane and customers might not even notice

Who cares about OpenStack?

2

2

#rackstackatl

• If your customer base primarily interacts with a control panel, you can swap out the control plane and customers might not even notice

• Or you could switch to different cloud software that has a compatible API and customers might not even notice

Who cares about OpenStack?

#rackstackatl

• If your customer base primarily interacts with a control panel, you can swap out the control plane and customers might not even notice

• Or you could switch to different cloud software that has a compatible API and customers might not even notice

It’s a jungle out there!

Who cares about OpenStack?

#rackstackatl

• (I’m kind of scared to pose this next question)

Who cares about OpenStack?

#rackstackatl

• Are software developers committed to OpenStack?

Who cares about OpenStack?

#rackstackatl

• Are software developers committed to OpenStack?

– It’s pretty scary to even think about this question

Who cares about OpenStack?

#rackstackatl

• Are you committed to OpenStack?

Who cares about OpenStack?

#rackstackatl

• Am I committed to OpenStack?

Who cares about OpenStack?

#rackstackatl

• Am I committed to OpenStack?

– What I’m committed to is the ongoing shared project of developing excellent open-source cloud software

Who cares about OpenStack?

#rackstackatl

• Am I committed to OpenStack?

– What I’m committed to is the ongoing shared project of developing excellent open-source cloud software

– OpenStack is the best game in town

Who cares about OpenStack?

#rackstackatl

• Am I committed to OpenStack?

– What I’m committed to is the ongoing shared project of developing excellent open-source cloud software

– OpenStack is the best game in town

• “ongoing shared project” == the community

Who cares about OpenStack?

#rackstackatl

• Am I committed to OpenStack?

– What I’m committed to is the ongoing shared project of developing excellent open-source cloud software

– OpenStack is the best game in town

• “ongoing shared project” == the community

Who cares about OpenStack?

TRUST + CONTRIBUTION

#rackstackatl

• The community isn’t something to observe …

The OpenStack community

TRUST + CONTRIBUTION

#rackstackatl

• The community isn’t something to observe …

• … it’s something to participate in

The OpenStack community

TRUST + CONTRIBUTION

#rackstackatl

• The community isn’t something to observe …

• … it’s something to participate in

• The community requires constant care and nurturing if it’s to remain the vibrant and exciting entity it is today

The OpenStack community

TRUST + CONTRIBUTION

#rackstackatl

• What am I going to do with OpenStack?

The OpenStack community

TRUST + CONTRIBUTION

#rackstackatl

• What am I going to do with OpenStack?

• What am I going to do with OpenStack?

The OpenStack community

TRUST + CONTRIBUTION

#rackstackatl RACKSPACE® HOSTING | WWW.RACKSPACE.COM

ASK NOT WHAT

OPENSTACK

CAN DO FOR YOU,

BUT WHAT YOU CAN

DO FOR OPENSTACK

#rackstackatl RACKSPACE® HOSTING | WWW.RACKSPACE.COM

OPENSOURCE CODE DEVELOPMENT

VS. PRODUCT DEVELOPMENT

#rackstackatl

• Coding is done in the open

Open source code development

#rackstackatl

• Coding is done in the open

• Anyone – cloud provider, ops team, developers, end-users, random passers-by

– Can read the source code

– Can see the peer reviews

– Can see the history of code development

Open source code development

#rackstackatl

• Coding is done in the open

• Anyone – cloud provider, ops team, developers, end-users, random passers-by

– Can read the source code

– Can see the peer reviews

– Can see the history of code development

– Can look up the history of the ideas behind this piece of code

Open source code development

#rackstackatl

• Coding is done in the open

• Anyone – cloud provider, ops team, developers, end-users, random passers-by

– Can read the source code

– Can see the peer reviews

– Can see the history of code development

– Can look up the history of the ideas behind this piece of code

• Mailing list archives

Open source code development

#rackstackatl

• Coding is done in the open

• Anyone – cloud provider, ops team, developers, end-users, random passers-by

– Can read the source code

– Can see the peer reviews

– Can see the history of code development

– Can look up the history of the ideas behind this piece of code

• Mailing list archives

• IRC meeting logs

Open source code development

#rackstackatl

• Coding is done in the open

• Anyone – cloud provider, ops team, developers, end-users, random passers-by

– Can read the source code

– Can see the peer reviews

– Can see the history of code development

– Can look up the history of the ideas behind this piece of code

• Mailing list archives

• IRC meeting logs

–“official” IRC meeting channels

» #openstack-meeting , #openstack-meeting-alt

Open source code development

#rackstackatl

• Coding is done in the open

• Anyone – cloud provider, ops team, developers, end-users, random passers-by

– Can read the source code

– Can see the peer reviews

– Can see the history of code development

– Can look up the history of the ideas behind this piece of code

• Mailing list archives

• IRC meeting logs

–“official” IRC meeting channels

» #openstack-meeting , #openstack-meeting-alt

–Project-specific meeting channels

»E.g., #openstack-glance

Open source code development

#rackstackatl

• The history of the ideas behind a piece of code is important when reviewing it

Open source code archaeology

#rackstackatl

• The history of the ideas behind a piece of code is important when reviewing it

• This code is acceptable because:

– It has no obvious flaws

– It doesn’t break compatibility with other parts of the code

Open source code archaeology

#rackstackatl

• The history of the ideas behind a piece of code is important when reviewing it

• This code is acceptable because:

– It has no obvious flaws

– It doesn’t break compatibility with other parts of the code

– It implements the feature correctly

Open source code archaeology

#rackstackatl

• The history of the ideas behind a piece of code is important when reviewing it

• This code is acceptable because:

– It has no obvious flaws

– It doesn’t break compatibility with other parts of the code

– It implements the feature correctly

– … and if there’s a migration path, it’s well thought-out

Open source code archaeology

#rackstackatl

• It would be good if the archaeology were not so “archaeological”

Open source code archaeology

#rackstackatl RACKSPACE® HOSTING | WWW.RACKSPACE.COM

WHY PRODUCT DEVELOPMENT

IS IMPORTANT FOR OPEN SOURCE

#rackstackatl

• Customer-validated

Modern product development

#rackstackatl

• OpenStack has two customer segments:

– Deployers (consumers of OpenStack software)

– End-users (consumers of cloud services)

Modern product development

#rackstackatl

• Customer-validated

– We’ve got data indicating that a proposed feature will actually be used by real customers

Modern product development

#rackstackatl

• Software development goes better when developers understand:

– The purpose of the feature they’re developing

– How it fits into the Big Picture

– That it will actually be used

Modern software development

#rackstackatl

• Software development goes better when developers understand:

– The purpose of the feature they’re developing

– How it fits into the Big Picture

– That it will actually be used

• And, of course, code reviews can be more meaningful when these things are understood

Modern software development

#rackstackatl RACKSPACE® HOSTING | WWW.RACKSPACE.COM

PRODUCT DEVELOPMENT

IN THE OPEN

#rackstackatl

• Product-type people have a skill set that can contribute to the community

Product development in the open

#rackstackatl

• Product-type people have a skill set that can make a serious contribution to the community

Product development in the open

#rackstackatl

• Product-type people have a skill set that can make a serious contribution to the community

• We can decrease the necessary amount of “archaeology” by treating OpenStack code development as part of product development

Product development in the open

#rackstackatl

• Product-type people have a skill set that can make a serious contribution to the community

• We can decrease the necessary amount of “archaeology” by treating OpenStack code development as part of product development

• … rather than as an artifact around which to build a product

Product development in the open

#rackstackatl

• Product-types have a skill set that can make a serious contribution to the community

• We can decrease the necessary amount of “archaeology” by treating OpenStack code development as part of product development

• … rather than as an artifact around which to build a product

• Increase

– Developer satisfaction

– Deployer awareness

– Documentation readiness

Product development in the open

#rackstackatl

• Product-types have a skill set that can make a serious contribution to the community

• We can decrease the necessary amount of “archaeology” by treating OpenStack code development as part of product development

• … rather than as an artifact around which to build a product

• Increase

– Developer satisfaction

– Deployer awareness

– Documentation readiness

– User delight!

Product development in the open

#rackstackatl RACKSPACE® HOSTING | WWW.RACKSPACE.COM

WHAT YOU CAN DO

#rackstackatl

• Chris Vander Mey, Shipping Greatness (O’Reilly, 2012)

What you can do

#rackstackatl

• Press release before the product is built

What you can do

#rackstackatl

• Press release before the product is built

• FAQ before the product is built

What you can do

#rackstackatl

• Press release before the product is built

• FAQ before the product is built

• Documented use cases

What you can do

#rackstackatl

• Press release before the product is built

• FAQ before the product is built

• Documented use cases

• Customer validation

What you can do

#rackstackatl

• Press release before the product is built

• FAQ before the product is built

• Documented use cases

• Customer validation

• and …

What you can do

#rackstackatl

• Examples

–https://wiki.openstack.org/wiki/Glance-property-protections-product

–http://tinyurl.com/ATL-BR-1

–https://wiki.openstack.org/wiki/Glance-tasks-api-product

–http://tinyurl.com/ATL-BR-E2

–https://wiki.openstack.org/wiki/Glance-v2-community-image-sharing

–http://tinyurl.com/ATL-BR-3

What you can do

#rackstackatl

• OpenStack is more than code

• Community is key

• Product-type people can contribute to OpenStack

Take-aways

#rackstackatl

• OpenStack is more than code

• Community is key

• Product-type people can contribute to OpenStack

• Product-type people should contribute to OpenStack

Take-aways

#rackstackatl

• OpenStack is more than code

• Community is key

• Product-type people can contribute to OpenStack

• Product-type people should contribute to OpenStack

• Product-type people must contribute to OpenStack

Take-aways

#rackstackatl

RACKSPACE® HOSTING | 5000 WALZEM ROAD | SAN ANTONIO, TX 78218

US SALES: 1-800-961-2888 | US SUPPORT: 1-800-961-4454 | WWW.RACKSPACE.COM

RACKSPACE® HOSTING | © RACKSPACE US, INC. | RACKSPACE® AND FANATICAL SUPPORT® ARE SERVICE MARKS OF RACKSPACE US, INC. REGISTERED IN TH E UNITED STATES AND OTHER COUNTRIES. | WWW.RACKSPACE.COM RACKSPACE® HOSTING | © RACKSPACE US, INC. | RACKSPACE® AND FANATICAL SUPPORT® ARE SERVICE MARKS OF RACKSPACE US, INC. REGISTERED IN TH E UNITED STATES AND OTHER COUNTRIES. | WWW.RACKSPACE.COM

#rackstackatl

• I just wanted to address a few questions that came up

– The example docs are in their final state.

• What you don’t see is that there were several revisions as the discussion developed on the mailing list and in IRC meetings.

• Keep in mind the “archaeology” metaphor—the point of the “product” docs is to record community consensus, not to impose a particular view or to deliver a pre-designed API.

• You want to document the consensus enough so that a core reviewer can look them over and understand whether or not the code being reviewed meets the consensus requirements for the feature.

– Have a thick skin

• Expect to see eyes roll (or whatever the IRC equivalent is) when you first start participating in IRC meetings and design discussions.

• Some developers are more receptive to this kind of help than others. It may take some time to earn trust, don’t get discouraged.

Postscript

#rackstackatl

•Brian Rosmaita –@br14nr

–IRC: rosmaita

–brian.rosmaita@rackspace.com

About me

Recommended