Open source

advertisement
Open source:
Ultimate survival
romcheg
on freenode.net
© MIRANTIS 2013
PAGE
Agenda
•Why?
•How it works.
•How it does not work.
© MIRANTIS 2013
PAGE
Why open source rocks?
© MIRANTIS 2013
PAGE
Public professional profile
Outline of the work experience after working on...
• 2007-2009: Enterprise solutions
• Implemented bcache
• Middle C# engineer
• 2009-2010: OpenStack
• 2009-2010: Microsoft-partner
Inc.
• Xen driver, PCI device mapping
• Senior SharePoint developer
• 2010-death: Agilescrum Ltd.
• 2007-2009: Linux
• 2010-2011: PostgreSQL
• Native JSON, materialized views
• J2EE architect
…enterprise projects
…open source projects
© MIRANTIS 2013
PAGE
Informal communications
A typical communication flow in...
Your team
Individuals
Busy manager
Re: Re: Re: Answer
our questions ASAP
¿Qué?
Slow manager
Other team
…enterprise projects
…open source projects
© MIRANTIS 2013
PAGE
Mirantis pays for this. Why?
•Mirantis is a very generous company and wants
to help every open source project to grow up!
•Mirantis needs to...
• ...make bigger influence on the community
• ...make more features in the product
• ...be visible as a big OpenStack developer
Visibility + influence
=
more interest from potential customers.
© MIRANTIS 2013
PAGE
Community group’s objectives
•Make more useful features
•Make more influence
•Continuously improve quality
•Provide mentorship for other employees
•Help publishing features to the upstream
© MIRANTIS 2013
PAGE
What to choose?
OpenStack
SQLAlchemy
migration tools
Python
WSME, eventlet,
etc...
OpenStack ecosystem
Open source software
© MIRANTIS 2013
PAGE
A bit of tech talk
on OpenStack
© MIRANTIS 2013
PAGE
Getting ready
•Create a Launchpad account
• https://login.launchpad.net
• Join ~mirantis on Launchpad
•Join OpenStack foundation and sign CLA
• https://www.openstack.org/join
•Read and follow HowToContribute
• https://wiki.openstack.org/wiki/HowToContribute
•Read Gerrit Workflow
• https://wiki.openstack.org/wiki/Gerrit_Workflow
© MIRANTIS 2013
PAGE
Getting ready
•Check your keys
•¡Double check your keys!
•Check your git settings.
•Name and contact info must be valid.
•Keys must be registered.
© MIRANTIS 2013
PAGE
HowToContribute
•Dear managers, please never try to create local
version of HowToContribute document.
• It will always be outdated
• It will always be wrong
• It discourages developers to read official documentation
• You will only screw everything up
© MIRANTIS 2013
PAGE
Getting started
•Choose a project.
• Unless you don’t have a choice 
•Read available specifications
•Search bug tracker for low hanging fruits
• In OS official tag is low-hanging-fruit
•Do code review
© MIRANTIS 2013
PAGE
Getting started in brand new
projects
•Do code review
•Moar reviews!
•Take part in all discussions
• Propose ideas
• Show your interest and vision
•When allowed, submit your patches
© MIRANTIS 2013
PAGE
How it works
© MIRANTIS 2013
PAGE
Terminology
•Project – a project :)
• Core projects
• Incubation
•Core developer – a member of a project who has
merge permissions and sharp eyes.
•PTL – project technical lead. Defines roadmap for
the project.
© MIRANTIS 2013
PAGE
What’s important
•Be patient
• You’re not the only one
•Stay tuned
• Join project chat
• Communicate a lot
•Help others
• Review code
• Help new folks
© MIRANTIS 2013
PAGE
Language barrier
•Russian is rude and mean
•English is sweet and gentle
No!
Fix this.
Avoid
Can you fix this?
Yes!
Can you fix this please?
This patch blocks the rest of
I need someone to review
Review my patch.
the work. Can you please
my patch.
check it out?
© MIRANTIS 2013
PAGE
What kills people
Drugs
Terorrists
Wars
-1s in Gerrit
© MIRANTIS 2013
PAGE
Working on influence
•Improve visibility
• Code review
• Mentorship
•Show good vision
• Raise problems
• Suggest features
• Technical discussions
•Make good relationships
• Non-technical discussions
© MIRANTIS 2013
PAGE
How it does not work
© MIRANTIS 2013
PAGE
Bad practices
•This stinks! Gonna rework everything!
• No, you’re not, stupid!
•Guys, I have a patch that fixes 10 bugs!
• One patch per change.
•Got 5 comments for my patch. Gonna ignore ‘em
all!
• Be as responsive as a TCP client.
© MIRANTIS 2013
PAGE
Bad practices #2
•One patch – several developers
• Avoid working on a single patch as a team
• Publish your patches yourself
•Rejecting P2P communications
• Always chat with other developers personally
• Do not let your manager represent you in the community
•Using non-official resources and tools
• Local Gerrit, local documentation, etc…
© MIRANTIS 2013
PAGE
Interests of the community
•Community doesn’t need your code
• It stinks (by default)
• Anyone else they trust more can write that code
•Community does not care about your customer
• He’s just a regular mortal
• There are too many customers to follow everyone’s will
© MIRANTIS 2013
PAGE
How to get help from
Community group
•Can you please +1 this?
•Our customer need this!
•We work in the same company!
•U’r gettin’ payed for this dawg!
© MIRANTIS 2013
PAGE
Q&A
the faster we finish this, the faster you get your free
pizza
© MIRANTIS 2013
PAGE
Download