Date post: | 08-May-2015 |
Category: |
Technology |
Upload: | rackerbr |
View: | 168 times |
Download: | 6 times |
(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