Upload
rackerbr
View
168
Download
6
Embed Size (px)
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