Jump to: navigation, search

Difference between revisions of "OpenStack Upstream Training/Info"

(Mark this page for translation)
m (del translation marking and lang tag)
Line 1: Line 1:
<languages />
+
 
 
<translate>
 
<translate>
  
== Introduction == <!--T:1-->
+
== Introduction ==  
  
<!--T:2-->
 
 
With over 2000 developers from 80 different companies worldwide, OpenStack is one of the largest collaborative software-development projects. Because of its size, it is characterized by a huge diversity in social norms and technical conventions.  These can significantly slow down the speed at which newcomers are successful at integrating their own roadmap into that of the OpenStack project.
 
With over 2000 developers from 80 different companies worldwide, OpenStack is one of the largest collaborative software-development projects. Because of its size, it is characterized by a huge diversity in social norms and technical conventions.  These can significantly slow down the speed at which newcomers are successful at integrating their own roadmap into that of the OpenStack project.
  
<!--T:3-->
 
 
We've designed a training program to help professional developers negotiate this hurdle.  It shows them how to ensure their bug fix or feature is accepted in the OpenStack project in a minimum amount of time.  The educational program requires students to work on real-life bug fixes or new features during two days of real-life classes and online mentoring, until the work is accepted by OpenStack. The live two-day class teaches them to navigate the intricacies of the project's technical tools and social interactions. In a followup session, the students benefit from individual online sessions to help them resolve any remaining problems they might have.
 
We've designed a training program to help professional developers negotiate this hurdle.  It shows them how to ensure their bug fix or feature is accepted in the OpenStack project in a minimum amount of time.  The educational program requires students to work on real-life bug fixes or new features during two days of real-life classes and online mentoring, until the work is accepted by OpenStack. The live two-day class teaches them to navigate the intricacies of the project's technical tools and social interactions. In a followup session, the students benefit from individual online sessions to help them resolve any remaining problems they might have.
  
== Objectives == <!--T:4-->
+
== Objectives ==  
  
<!--T:5-->
 
 
* Faster integration of the companies product roadmap into the OpenStack release cycle
 
* Faster integration of the companies product roadmap into the OpenStack release cycle
 
* Successfully contribute one real world patch to an OpenStack component
 
* Successfully contribute one real world patch to an OpenStack component
Line 18: Line 15:
 
* Understand the OpenStack contribution workflow and social norms
 
* Understand the OpenStack contribution workflow and social norms
  
== Target Audience == <!--T:6-->
+
== Target Audience ==  
  
 
* Developers
 
* Developers
 
* System administrators
 
* System administrators
  
== Prerequisites == <!--T:7-->
+
== Prerequisites ==  
  
<!--T:8-->
 
 
* Being able to read and write English at a technical level.
 
* Being able to read and write English at a technical level.
 
* If contributing code, being technically proficient enough to carry out simple bug fixes in the project.
 
* If contributing code, being technically proficient enough to carry out simple bug fixes in the project.
Line 31: Line 27:
 
* Having at least 8 hours a week to dedicate to the project, be it through programming or through interacting with the community.
 
* Having at least 8 hours a week to dedicate to the project, be it through programming or through interacting with the community.
  
== Duration == <!--T:9-->
+
== Duration ==  
  
 
* Face-to-face section: 2 days
 
* Face-to-face section: 2 days
 
* Online section: 10 one-hour individual mentoring sessions over a period of 4 to 10 weeks
 
* Online section: 10 one-hour individual mentoring sessions over a period of 4 to 10 weeks
  
== Infrastructure == <!--T:10-->
+
== Infrastructure ==  
  
 
[[OpenStack_Upstream_Training/Setup_DevStack|ready to use devstack VM]] for participants with network connectivity but troubles with their laptop
 
[[OpenStack_Upstream_Training/Setup_DevStack|ready to use devstack VM]] for participants with network connectivity but troubles with their laptop
  
= Course Outline = <!--T:11-->
+
= Course Outline =  
  
== First day == <!--T:12-->
+
== First day ==  
  
=== Introduction === <!--T:13-->
+
=== Introduction ===  
  
<!--T:14-->
 
 
* A week before Day 1: choice of a contribution, via email, with each participant
 
* A week before Day 1: choice of a contribution, via email, with each participant
 
* Day 1: How OpenStack is made
 
* Day 1: How OpenStack is made
 
* Day 1: Learn and practice git, gerrit, IRC
 
* Day 1: Learn and practice git, gerrit, IRC
  
<!--T:15-->
 
 
* Day 2: The theory of contribution
 
* Day 2: The theory of contribution
 
* Day 2: Lego contribution simulation
 
* Day 2: Lego contribution simulation
Line 57: Line 51:
 
* Day 2: Online mentoring
 
* Day 2: Online mentoring
  
=== How OpenStack is made (3h including 1h30 exercises) === <!--T:16-->
+
=== How OpenStack is made (3h including 1h30 exercises) ===  
  
<!--T:17-->
 
 
* [https://wiki.openstack.org/wiki/Release_Cycle Release cycle] ( [http://dachary.org/loic/openstack-training/release-cycle.odp slides.odp] [http://dachary.org/loic/openstack-training/release-cycle.pdf slides.pdf] )
 
* [https://wiki.openstack.org/wiki/Release_Cycle Release cycle] ( [http://dachary.org/loic/openstack-training/release-cycle.odp slides.odp] [http://dachary.org/loic/openstack-training/release-cycle.pdf slides.pdf] )
 
** [https://wiki.openstack.org/wiki/Release_Cycle#Planning_.28Design.2C_Discuss_and_Target.29 Planning (Design, Discuss and Target)]
 
** [https://wiki.openstack.org/wiki/Release_Cycle#Planning_.28Design.2C_Discuss_and_Target.29 Planning (Design, Discuss and Target)]
Line 97: Line 90:
 
** Exercise: lunch menu online meeting
 
** Exercise: lunch menu online meeting
  
<br />
 
  
=== Workflow of an OpenStack contribution and tools (3h including 2h exercises) === <!--T:18-->
+
=== Workflow of an OpenStack contribution and tools (3h including 2h exercises) ===  
  
<!--T:19-->
 
 
* [http://devstack.org/ devstack] ( [http://dachary.org/loic/openstack-training/devstack.odp slides.odp] [http://dachary.org/loic/openstack-training/devstack.pdf slides.pdf] )
 
* [http://devstack.org/ devstack] ( [http://dachary.org/loic/openstack-training/devstack.odp slides.odp] [http://dachary.org/loic/openstack-training/devstack.pdf slides.pdf] )
 
** Ubuntu or Fedora
 
** Ubuntu or Fedora
Line 143: Line 134:
 
** Exercise: add an error and match it to the jenkins message
 
** Exercise: add an error and match it to the jenkins message
  
== Second day == <!--T:20-->
+
== Second day ==  
  
=== The Contribution Process (3 hours) === <!--T:21-->
+
=== The Contribution Process (3 hours) ===  
  
<!--T:22-->
 
 
  ( [http://dachary.org/loic/openstack-training/training-contribution-process.odp] [http://dachary.org/loic/openstack-training/training-contribution-process.pdf] )
 
  ( [http://dachary.org/loic/openstack-training/training-contribution-process.odp] [http://dachary.org/loic/openstack-training/training-contribution-process.pdf] )
 
* Take the pulse of the project.
 
* Take the pulse of the project.
Line 170: Line 160:
 
* Archive and collect.
 
* Archive and collect.
  
=== Agile for Contributors (15 min) === <!--T:23-->
+
=== Agile for Contributors (15 min) ===  
  
<!--T:24-->
 
 
  ( [http://dachary.org/loic/openstack-training/training-agile-for-contributors.odp] [http://dachary.org/loic/openstack-training/training-agile-for-contributors.pdf] )
 
  ( [http://dachary.org/loic/openstack-training/training-agile-for-contributors.odp] [http://dachary.org/loic/openstack-training/training-agile-for-contributors.pdf] )
 
* Apply agile
 
* Apply agile
Line 179: Line 168:
 
* Sprint review presentation to Upstream
 
* Sprint review presentation to Upstream
  
=== Contribution Simulation (1 hour) === <!--T:25-->
+
=== Contribution Simulation (1 hour) ===  
  
 
The students make a virtual contribution simulation using Lego bricks as props, with the goal of expanding a Lego town, built by upstream. They are divided into teams; the teacher is by turns the product owner in the company and the upstream.
 
The students make a virtual contribution simulation using Lego bricks as props, with the goal of expanding a Lego town, built by upstream. They are divided into teams; the teacher is by turns the product owner in the company and the upstream.
  
=== Contribution Planning (2 hours) === <!--T:26-->
+
=== Contribution Planning (2 hours) ===  
  
 
  ( [http://dachary.org/loic/openstack-training/training-student-project-sample.odp] [http://dachary.org/loic/openstack-training/training-student-project-sample.pdf] )
 
  ( [http://dachary.org/loic/openstack-training/training-student-project-sample.odp] [http://dachary.org/loic/openstack-training/training-student-project-sample.pdf] )
  
<!--T:27-->
+
 
 
* The students use template slides to prepare a 5-minute presentation of their planned contribution.
 
* The students use template slides to prepare a 5-minute presentation of their planned contribution.
 
* A sample presentation is given by the teacher, as an example.
 
* A sample presentation is given by the teacher, as an example.

Revision as of 15:54, 22 October 2014


Introduction

With over 2000 developers from 80 different companies worldwide, OpenStack is one of the largest collaborative software-development projects. Because of its size, it is characterized by a huge diversity in social norms and technical conventions. These can significantly slow down the speed at which newcomers are successful at integrating their own roadmap into that of the OpenStack project.

We've designed a training program to help professional developers negotiate this hurdle. It shows them how to ensure their bug fix or feature is accepted in the OpenStack project in a minimum amount of time. The educational program requires students to work on real-life bug fixes or new features during two days of real-life classes and online mentoring, until the work is accepted by OpenStack. The live two-day class teaches them to navigate the intricacies of the project's technical tools and social interactions. In a followup session, the students benefit from individual online sessions to help them resolve any remaining problems they might have.

Objectives

  • Faster integration of the companies product roadmap into the OpenStack release cycle
  • Successfully contribute one real world patch to an OpenStack component
  • Master the technical tools
  • Understand the OpenStack contribution workflow and social norms

Target Audience

  • Developers
  • System administrators

Prerequisites

  • Being able to read and write English at a technical level.
  • If contributing code, being technically proficient enough to carry out simple bug fixes in the project.
  • If contributing documentation, being able to produce documents in the project's chosen infrastructure.
  • Having at least 8 hours a week to dedicate to the project, be it through programming or through interacting with the community.

Duration

  • Face-to-face section: 2 days
  • Online section: 10 one-hour individual mentoring sessions over a period of 4 to 10 weeks

Infrastructure

ready to use devstack VM for participants with network connectivity but troubles with their laptop

Course Outline

First day

Introduction

  • A week before Day 1: choice of a contribution, via email, with each participant
  • Day 1: How OpenStack is made
  • Day 1: Learn and practice git, gerrit, IRC
  • Day 2: The theory of contribution
  • Day 2: Lego contribution simulation
  • Day 2: Individual presentation of the contribution plan
  • Day 2: Online mentoring

How OpenStack is made (3h including 1h30 exercises)


Workflow of an OpenStack contribution and tools (3h including 2h exercises)

Second day

The Contribution Process (3 hours)

( [1] [2] )
  • Take the pulse of the project.
  • Figure out who's behind it.
  • Determine the project's social groups.
  • Assess your approach.
  • Engage immediately.
  • Play with your network.
  • Perform the smaller tasks.
  • Choose a question.
  • Familiarize yourself with the code of conduct.
  • Understand the conventions.
  • Explain what you do.
  • Prepare the backport.
  • Learn what's local and what's upstream.
  • Learn what distinguishes good work flow from bad work flow.
  • Quantify the delta.
  • Speed up the acceptance.
  • Determine the time frame.
  • Maximize karma.
  • Work in parallel.
  • Archive and collect.

Agile for Contributors (15 min)

( [3] [4] )
  • Apply agile
  • Who is the customer?
  • Company & Upstream product owner
  • Sprint review presentation to Upstream

Contribution Simulation (1 hour)

The students make a virtual contribution simulation using Lego bricks as props, with the goal of expanding a Lego town, built by upstream. They are divided into teams; the teacher is by turns the product owner in the company and the upstream.

Contribution Planning (2 hours)

( [5] [6] )


  • The students use template slides to prepare a 5-minute presentation of their planned contribution.
  • A sample presentation is given by the teacher, as an example.
  • Each student group prepares a presentation describing:
    • the contribution they plan to work on during the online sessions,
    • how they will engage with the Upstream,
    • how it contributes to the company's agenda
    • and whom they will be working with.
  • Each student group presents its slides to the class