SlideShare a Scribd company logo
讓開源雲端與產品接軌
Take the Advantage and connect
upstream to downstream
Rico Lin,
Software Engineer @ EasyStack
OpenStack Heat PTL
Define Upstream
Define Downstream
Take the advantage and connect upstream to downstream
Upstream
Production
Downstream
c1
c4c2 c3
MasterM-1
Product plan
User feedback
c6c5
c7
M-3M-5
c8
Upstream
Production
Downstream
c1
c4c2 c3
Master
Product plan
M-1
User feedback
c6c5
c10
c9
c8c7
User feedback
M-3M-5
c11
Upstream
Production
Downstream
c1
c4c2 c3
MasterM-1
Product plan
User feedback
c6c5
c10
c9
c8c7
User feedback
M-3M-5
c11
And you feel...
You Need a Strategy!!!!
Define Strategy
link
孫子兵法, 始計篇
So That's The Basic Model For You!
(And For Community)
Your Enterprise Community
There are feedins and There are feedbacks
Your Enterprise Community
That's ECOSYSTEM
When Two Forces Can Accelerate Each Other,
That's (More than) the Definition of
PERPETUAL MOTION
Propose
spec & bug
Upstream
Check & Gate
Production
Downstream
c1
c4c2 c3
MasterM-1
Contribute
Product plan
User feedback
c6c5
Propose to
upstream
c10
c9
c8c7
pull &
Integrate
c11 c12
Product plan
User feedback
Upstream
Feedback
Take from community:
● A comparing place, the ring
I'm a Product
I'm a Product
Take from community:
● A comparing place, the ring
Common Questions:
● I don't care about community when I'm a product.
● Product and Open Source project are two conflict concept
I'm a Product
Take from community:
● A comparing place, the ring
Common Questions:
● I don't care about community when I'm a product.
● Product and Open Source project are two conflict concept
Actions or Keep in mind:
● Integration happens fast, the request always urgent, there
is room for done the third step first, but if you never go
back ASAP to fill up the first and second step, you not
actually doing anything
● User experience alway matters, that's the rule
● Upstream is not a product (even it's production ready)
● Aware about the licence
● good product sells itself, but people always is the root
● Don't waste opportunities to new things, but don't go rush
● Don't mess up with your structure, it will crush.
● Make your strategy, execute it, and adjust your strategy
nicely.
I'm Enterprise owner (CXO)
Take from community:
● Good reputation
● More chances to make buessness deal
● Making spec as you needed
I'm Enterprise owner (CXO)
Take from community:
● Good reputation
● More chances to make buessness deal
● Making spec as you needed
Common Questions:
● How's that gonna make renvenue?
● Why should I feedback? Why me?
● This just some works for my engineer, not me!
I'm Enterprise owner (CXO)
Take from community:
● Good reputation
● More chances to make buessness deal
● Making spec as you needed
Common Questions:
● How's that gonna make renvenue?
● Why should I feedback? Why me?
● This just some works for my engineer, not me!
Actions:
● Allow people to join community
● Control the quality
● Join The Enterprise owner cercle
● Control quantity of spend
● Speak to other owners who seems to make it
● Support local events, and partners and let it support you
I'm a Manager
Take from community:
● A stage for manager to present with customers in front of
other potential customers.
● Protential customers in marketing place
I'm a Manager
Take from community:
● A stage for manager to present with customers in front of
other potential customers.
● Protential customers in marketing place
Common Questions:
● None of my client stay in the area where community
events were hosted
● I simply needs the product released ASAP, why should I
care others
I'm a Manager
Take from community:
● A stage for manager to present with customers in front of
other potential customers.
● Protential customers in marketing place
Common Questions:
● None of my client stay in the area where community
events were hosted
● I simply needs the product released ASAP, why should I
care others
Actions:
● Help operators and developers learn about user’s needs
● Support Technical team to build CI/CD and work for
community
● Let customers feel they’re part of this ecosystem, not just
your master. Let them join User survey, give presentations
with you to binding each other
● Do marketing place like you do in front of customers
● go talk to developers
I'm a Technical Leader
Take from community:
● Place to push the skill of developers/ops
● Knew what other companies been doing and where are
the dead end or pain point
● Control the developing flow of an open source
I'm a Technical Leader
Take from community:
● Place to push the skill of developers/ops
● Knew what other companies been doing and where are
the dead end or pain point
● Control the developing flow of an open source
Common Questions:
● To send developers in, gonna leave them un-control
● I can't control the community
● How's that going to serve our products
● We shouldn't share the secret of our business
I'm a Technical Leader
Take from community:
● Place to push the skill of developers/ops
● Knew what other companies been doing and where are
the dead end or pain point
● Control the developing flow of an open source
Common Questions:
● To send developers in, gonna leave them un-control
● I can't control the community
● How's that going to serve our products
● We shouldn't share the secret of our business
Actions:
● Build CI/CD for your products (I mean real CI/CD)
● Make developers/ops do meaningful contribution
● Partially reveal/release your technical power. Keep the
core knowledge as your wish.
● Adopt changes, experiment integration and survey
● Allow developer have time to share and do documentation
● Observe How's a staff doing in Community and Products
I'm a Engineer
Take from community:
● Better develop skill
● Good developer experiences on real world issues
● Work with global team
● Prevent bad decision for development
I'm a Engineer
Take from community:
● Better develop skill
● Good developer experiences on real world issues
● Work with global team
● Prevent bad decision for development
Common Questions:
● Where I can trace these code?
● I don't feel I can do what I want in that project team
I'm a Engineer
Take from community:
● Better develop skill
● Good developer experiences on real world issues
● Work with global team
● Prevent bad decision for development
Common Questions:
● Where I can trace these code?
● I don't feel I can do what I want in that project team
Actions:
● There's always test for your code
● Bring discussion to community
● Don't try to reinvent stuff unless you can prove with tests
● Allow rooms as buffer from product to community, but
make it as small as possible
● Go deep
● Go talk to others
● Really join community, fix real issues, join discussions,
provide ideas, do review, speak, and speak loud!
I'm an Operator( or MIS)
Take from community:
● Observe other people's experiences
● Go bother the best you know
● Make them work for your integration
I'm an Operator( or MIS)
Take from community:
● Observe other people's experiences
● Go bother the best you know
● Make them work for your integration
Common Questions:
● I'm operate my own system, what's that have to do with
community?
● From ops point of view, it's really not clear what is what
● I hard a lot of `This is another team's issue`, not ours
I'm an Operator( or MIS)
Take from community:
● Observe other people's experiences
● Go bother the best you know
● Make them work for your integration
Common Questions:
● I'm operate my own system, what's that have to do with
community?
● From ops point of view, it's really not clear what is what
● I hard a lot of `This is another team's issue`, not ours
Actions:
● Be a devops
● Provide feedback
● go talk to developers
● ducument matters
I'm an Intern/Student
Take from community:
● Learn from the best
● No binding for you in community
I'm an Intern/Student
Take from community:
● Learn from the best
● No binding for you in community
Common Questions:
● I'm just a student
● I'm still wondering what I want
I'm an Intern/Student
Take from community:
● Learn from the best
● No binding for you in community
Common Questions:
● I'm just a student
● I'm still wondering what I want
Actions:
● Learn English
● Learn the spirit of Open Source
● Learn less than two languages
● Treat you self as a serious role
● Go talk to everyone
● Stay with Open Source Community
Upstream
Check & Gate
Production
Downstream
Master
Upstream
Check & Gate
Production
Downstream
c1
c2 c3
Master
Product plan
Upstream
Check & Gate
Production
Downstream
c1
c4c2 c3
Master
Contribute
Product plan
User feedback
Upstream
Check & Gate
Production
Downstream
c1
c4c2 c3
Master
Contribute
Product plan
User feedback
c6c5
Propose to
upstream
c10
c9
c8c7
User feedback
Upstream
Check & Gate
Production
Downstream
c1
c4c2 c3
MasterM-1
Contribute
Product plan
User feedback
c6c5
Propose to
upstream
c10
c9
c8c7
Product plan
User feedback
Upstream
Check & Gate
Production
Downstream
c1
c4c2 c3
MasterM-1
Contribute
Product plan
User feedback
c6c5
Propose to
upstream
c10
c9
c8c7
pull &
Integrate
Product plan
User feedback
Propose
spec & bug
Upstream
Check & Gate
Production
Downstream
c1
c4c2 c3
MasterM-1
Contribute
Product plan
User feedback
c6c5
Propose to
upstream
c10
c9
c8c7
pull &
Integrate
Product plan
User feedback
Don't put all eggs in one basket
Take the advantage and connect upstream to downstream
slide references
ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9, ref10, ref11, ref12, ref13, ref14, ref15

More Related Content

PDF
Take the advantage and connect upstream to downstream
PPTX
Agile?! Are You Crazy???
PPT
Agile Protoyping in Academia
PPTX
Simple Agile
PDF
Danny Setiawan - How to Increase Conversion with Usability Testing
ODP
How to Host a Successful Agile Stand-up Meeting.
PDF
Innovations Accelerated - Design Sprint
PPT
Founder Institute Product Development Workshop
Take the advantage and connect upstream to downstream
Agile?! Are You Crazy???
Agile Protoyping in Academia
Simple Agile
Danny Setiawan - How to Increase Conversion with Usability Testing
How to Host a Successful Agile Stand-up Meeting.
Innovations Accelerated - Design Sprint
Founder Institute Product Development Workshop

What's hot (20)

PDF
Design Sprint Methods
PDF
Erste Bank — How to Cut off Development Times & Get Feedback From Real Users,...
PDF
Thinking more product: Moving from Scrum to a dual-track agile approach by Su...
PDF
Design sprint
PPT
Agile for Me- CodeStock 2009
PPTX
Post-Agile Methodologies and all that Jazz
PDF
Pair Programming, TDD and other impractical things
PPTX
Intro to design sprint
PDF
Understanding Product Design Workshop - Presentation at LBS (Heart Atelier)
PPTX
Agile project inception workshop
PPTX
Agile Innovation - Product Management in Turbulent times
PDF
Let's talk about scrum
PDF
Scrum in practice at klarna
PDF
Always under construction: Websites that are never “finished”
PPTX
Agiles 2015 Feedback Wall
PPTX
How to Combine Design Methods with Agile & Remain Sane
PPTX
Organizational Design for Effective Software Development
PPTX
Goody bag ghc design thinking tools
PDF
Richmond Spin - How To Sell A Traditional Client
PDF
LPCx Barcelona: How to use the design thinking methodology to revamp your API?
Design Sprint Methods
Erste Bank — How to Cut off Development Times & Get Feedback From Real Users,...
Thinking more product: Moving from Scrum to a dual-track agile approach by Su...
Design sprint
Agile for Me- CodeStock 2009
Post-Agile Methodologies and all that Jazz
Pair Programming, TDD and other impractical things
Intro to design sprint
Understanding Product Design Workshop - Presentation at LBS (Heart Atelier)
Agile project inception workshop
Agile Innovation - Product Management in Turbulent times
Let's talk about scrum
Scrum in practice at klarna
Always under construction: Websites that are never “finished”
Agiles 2015 Feedback Wall
How to Combine Design Methods with Agile & Remain Sane
Organizational Design for Effective Software Development
Goody bag ghc design thinking tools
Richmond Spin - How To Sell A Traditional Client
LPCx Barcelona: How to use the design thinking methodology to revamp your API?

Similar to Take the advantage and connect upstream to downstream (20)

PDF
Embrace Community! Embrace a better life!
ODP
Building Vibrant Open Source Communities
PDF
Créer une communauté open source: pourquoi ? comment ?
PPT
Os Nolen Gebhart
PDF
Apache coneu 2009-adrian-trenaman-adopting-open-source-in-the-enterprise
PPTX
Federating Subversion and Git
PDF
InnerSource: Enterprise Lessons from Open Source
PDF
Inner Source 101 - GWO2016
PDF
Inner Source 101
PDF
Open Source: What is It?
PDF
The Open Source Way of Working
PDF
Open Source In Enterprises Apache2009 Beijing Jack Cai
PDF
Strategies for Commercial Software Developers Using Open Source Code in Propr...
PDF
Building Internet-scale Applications
PPTX
Open Source Project Management
PPTX
McComb's MBA Guest Lecture : Presentation Feb 2014
PPTX
Posscon OSS Project Lifecycle
PDF
Open source engagement – best practices_v0.5
PDF
How not-to-do-open-source-okfestival2012
Embrace Community! Embrace a better life!
Building Vibrant Open Source Communities
Créer une communauté open source: pourquoi ? comment ?
Os Nolen Gebhart
Apache coneu 2009-adrian-trenaman-adopting-open-source-in-the-enterprise
Federating Subversion and Git
InnerSource: Enterprise Lessons from Open Source
Inner Source 101 - GWO2016
Inner Source 101
Open Source: What is It?
The Open Source Way of Working
Open Source In Enterprises Apache2009 Beijing Jack Cai
Strategies for Commercial Software Developers Using Open Source Code in Propr...
Building Internet-scale Applications
Open Source Project Management
McComb's MBA Guest Lecture : Presentation Feb 2014
Posscon OSS Project Lifecycle
Open source engagement – best practices_v0.5
How not-to-do-open-source-okfestival2012

More from Rico Lin (10)

PDF
Improvements in OpenStack Integration for Application Developers
PDF
Heat onboarding - Berlin OpenStack summit
PDF
Autoscale a self-healing cluster in OpenStack with Heat
PPTX
OpenInfra Summit - 2018 Vancouver - Heat project update
PPTX
OpenInfra Summit - 2018 Vancouver - Heat Onboarding
PDF
OpenStack - heat on boarding
PDF
Project update - heat (up to pike-1)
PDF
Heat project onboarding
PDF
Heat optimization
PDF
Heat up your stack
Improvements in OpenStack Integration for Application Developers
Heat onboarding - Berlin OpenStack summit
Autoscale a self-healing cluster in OpenStack with Heat
OpenInfra Summit - 2018 Vancouver - Heat project update
OpenInfra Summit - 2018 Vancouver - Heat Onboarding
OpenStack - heat on boarding
Project update - heat (up to pike-1)
Heat project onboarding
Heat optimization
Heat up your stack

Recently uploaded (20)

PDF
Assigned Numbers - 2025 - Bluetooth® Document
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
Tartificialntelligence_presentation.pptx
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
Hybrid model detection and classification of lung cancer
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
DP Operators-handbook-extract for the Mautical Institute
PPTX
cloud_computing_Infrastucture_as_cloud_p
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
TLE Review Electricity (Electricity).pptx
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Approach and Philosophy of On baking technology
PPTX
Chapter 5: Probability Theory and Statistics
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
NewMind AI Weekly Chronicles - August'25-Week II
Assigned Numbers - 2025 - Bluetooth® Document
Programs and apps: productivity, graphics, security and other tools
Tartificialntelligence_presentation.pptx
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Hybrid model detection and classification of lung cancer
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
DP Operators-handbook-extract for the Mautical Institute
cloud_computing_Infrastucture_as_cloud_p
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
TLE Review Electricity (Electricity).pptx
1 - Historical Antecedents, Social Consideration.pdf
A comparative analysis of optical character recognition models for extracting...
Approach and Philosophy of On baking technology
Chapter 5: Probability Theory and Statistics
MIND Revenue Release Quarter 2 2025 Press Release
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
NewMind AI Weekly Chronicles - August'25-Week II

Take the advantage and connect upstream to downstream

  • 1. 讓開源雲端與產品接軌 Take the Advantage and connect upstream to downstream Rico Lin, Software Engineer @ EasyStack OpenStack Heat PTL
  • 6. Upstream Production Downstream c1 c4c2 c3 Master Product plan M-1 User feedback c6c5 c10 c9 c8c7 User feedback M-3M-5 c11
  • 7. Upstream Production Downstream c1 c4c2 c3 MasterM-1 Product plan User feedback c6c5 c10 c9 c8c7 User feedback M-3M-5 c11
  • 9. You Need a Strategy!!!!
  • 12. So That's The Basic Model For You! (And For Community)
  • 13. Your Enterprise Community There are feedins and There are feedbacks
  • 15. When Two Forces Can Accelerate Each Other, That's (More than) the Definition of PERPETUAL MOTION
  • 16. Propose spec & bug Upstream Check & Gate Production Downstream c1 c4c2 c3 MasterM-1 Contribute Product plan User feedback c6c5 Propose to upstream c10 c9 c8c7 pull & Integrate c11 c12 Product plan User feedback Upstream Feedback
  • 17. Take from community: ● A comparing place, the ring I'm a Product
  • 18. I'm a Product Take from community: ● A comparing place, the ring Common Questions: ● I don't care about community when I'm a product. ● Product and Open Source project are two conflict concept
  • 19. I'm a Product Take from community: ● A comparing place, the ring Common Questions: ● I don't care about community when I'm a product. ● Product and Open Source project are two conflict concept Actions or Keep in mind: ● Integration happens fast, the request always urgent, there is room for done the third step first, but if you never go back ASAP to fill up the first and second step, you not actually doing anything ● User experience alway matters, that's the rule ● Upstream is not a product (even it's production ready) ● Aware about the licence ● good product sells itself, but people always is the root ● Don't waste opportunities to new things, but don't go rush ● Don't mess up with your structure, it will crush. ● Make your strategy, execute it, and adjust your strategy nicely.
  • 20. I'm Enterprise owner (CXO) Take from community: ● Good reputation ● More chances to make buessness deal ● Making spec as you needed
  • 21. I'm Enterprise owner (CXO) Take from community: ● Good reputation ● More chances to make buessness deal ● Making spec as you needed Common Questions: ● How's that gonna make renvenue? ● Why should I feedback? Why me? ● This just some works for my engineer, not me!
  • 22. I'm Enterprise owner (CXO) Take from community: ● Good reputation ● More chances to make buessness deal ● Making spec as you needed Common Questions: ● How's that gonna make renvenue? ● Why should I feedback? Why me? ● This just some works for my engineer, not me! Actions: ● Allow people to join community ● Control the quality ● Join The Enterprise owner cercle ● Control quantity of spend ● Speak to other owners who seems to make it ● Support local events, and partners and let it support you
  • 23. I'm a Manager Take from community: ● A stage for manager to present with customers in front of other potential customers. ● Protential customers in marketing place
  • 24. I'm a Manager Take from community: ● A stage for manager to present with customers in front of other potential customers. ● Protential customers in marketing place Common Questions: ● None of my client stay in the area where community events were hosted ● I simply needs the product released ASAP, why should I care others
  • 25. I'm a Manager Take from community: ● A stage for manager to present with customers in front of other potential customers. ● Protential customers in marketing place Common Questions: ● None of my client stay in the area where community events were hosted ● I simply needs the product released ASAP, why should I care others Actions: ● Help operators and developers learn about user’s needs ● Support Technical team to build CI/CD and work for community ● Let customers feel they’re part of this ecosystem, not just your master. Let them join User survey, give presentations with you to binding each other ● Do marketing place like you do in front of customers ● go talk to developers
  • 26. I'm a Technical Leader Take from community: ● Place to push the skill of developers/ops ● Knew what other companies been doing and where are the dead end or pain point ● Control the developing flow of an open source
  • 27. I'm a Technical Leader Take from community: ● Place to push the skill of developers/ops ● Knew what other companies been doing and where are the dead end or pain point ● Control the developing flow of an open source Common Questions: ● To send developers in, gonna leave them un-control ● I can't control the community ● How's that going to serve our products ● We shouldn't share the secret of our business
  • 28. I'm a Technical Leader Take from community: ● Place to push the skill of developers/ops ● Knew what other companies been doing and where are the dead end or pain point ● Control the developing flow of an open source Common Questions: ● To send developers in, gonna leave them un-control ● I can't control the community ● How's that going to serve our products ● We shouldn't share the secret of our business Actions: ● Build CI/CD for your products (I mean real CI/CD) ● Make developers/ops do meaningful contribution ● Partially reveal/release your technical power. Keep the core knowledge as your wish. ● Adopt changes, experiment integration and survey ● Allow developer have time to share and do documentation ● Observe How's a staff doing in Community and Products
  • 29. I'm a Engineer Take from community: ● Better develop skill ● Good developer experiences on real world issues ● Work with global team ● Prevent bad decision for development
  • 30. I'm a Engineer Take from community: ● Better develop skill ● Good developer experiences on real world issues ● Work with global team ● Prevent bad decision for development Common Questions: ● Where I can trace these code? ● I don't feel I can do what I want in that project team
  • 31. I'm a Engineer Take from community: ● Better develop skill ● Good developer experiences on real world issues ● Work with global team ● Prevent bad decision for development Common Questions: ● Where I can trace these code? ● I don't feel I can do what I want in that project team Actions: ● There's always test for your code ● Bring discussion to community ● Don't try to reinvent stuff unless you can prove with tests ● Allow rooms as buffer from product to community, but make it as small as possible ● Go deep ● Go talk to others ● Really join community, fix real issues, join discussions, provide ideas, do review, speak, and speak loud!
  • 32. I'm an Operator( or MIS) Take from community: ● Observe other people's experiences ● Go bother the best you know ● Make them work for your integration
  • 33. I'm an Operator( or MIS) Take from community: ● Observe other people's experiences ● Go bother the best you know ● Make them work for your integration Common Questions: ● I'm operate my own system, what's that have to do with community? ● From ops point of view, it's really not clear what is what ● I hard a lot of `This is another team's issue`, not ours
  • 34. I'm an Operator( or MIS) Take from community: ● Observe other people's experiences ● Go bother the best you know ● Make them work for your integration Common Questions: ● I'm operate my own system, what's that have to do with community? ● From ops point of view, it's really not clear what is what ● I hard a lot of `This is another team's issue`, not ours Actions: ● Be a devops ● Provide feedback ● go talk to developers ● ducument matters
  • 35. I'm an Intern/Student Take from community: ● Learn from the best ● No binding for you in community
  • 36. I'm an Intern/Student Take from community: ● Learn from the best ● No binding for you in community Common Questions: ● I'm just a student ● I'm still wondering what I want
  • 37. I'm an Intern/Student Take from community: ● Learn from the best ● No binding for you in community Common Questions: ● I'm just a student ● I'm still wondering what I want Actions: ● Learn English ● Learn the spirit of Open Source ● Learn less than two languages ● Treat you self as a serious role ● Go talk to everyone ● Stay with Open Source Community
  • 40. Upstream Check & Gate Production Downstream c1 c4c2 c3 Master Contribute Product plan User feedback
  • 41. Upstream Check & Gate Production Downstream c1 c4c2 c3 Master Contribute Product plan User feedback c6c5 Propose to upstream c10 c9 c8c7 User feedback
  • 42. Upstream Check & Gate Production Downstream c1 c4c2 c3 MasterM-1 Contribute Product plan User feedback c6c5 Propose to upstream c10 c9 c8c7 Product plan User feedback
  • 43. Upstream Check & Gate Production Downstream c1 c4c2 c3 MasterM-1 Contribute Product plan User feedback c6c5 Propose to upstream c10 c9 c8c7 pull & Integrate Product plan User feedback
  • 44. Propose spec & bug Upstream Check & Gate Production Downstream c1 c4c2 c3 MasterM-1 Contribute Product plan User feedback c6c5 Propose to upstream c10 c9 c8c7 pull & Integrate Product plan User feedback
  • 45. Don't put all eggs in one basket
  • 47. slide references ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9, ref10, ref11, ref12, ref13, ref14, ref15