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