Every month we have people asking on IRC or the dev mailing list who are interested in working on OpenStack. Sometimes they’re given different answers from people, or worse, no answer at all.
Suggestion: Let’s pool our efforts together to create some common documentation so that all teams in OpenStack can benefit.
First, it’s important to note that we’re not just talking about code projects here. OpenStack contributions come in many forms such as running meet-ups, identifying use cases (Product Working Group), documentation, testing, etc. We want to make sure those potential contributors feel welcomed too!
What is common documentation? Things like setting up Git, the many accounts you need to setup to contribute (Gerrit, Launchpad, an OpenStack Foundation account). Not all teams will use some common documentation, but the point is one or more projects will use them. Having the common documentation worked on by various projects will better help prevent duplicated efforts, inconsistent documentation, and hopefully just more accurate information. A team might use special tools to do their work. These can also be integrated in this idea as well.
Once we have common documentation we can have something like:
1. Choose your own adventure: I want to contribute by code
2. What service type are you interested in? (Database, block storage, compute)
3. Here’s step-by-step common documentation to setting up Git, IRC, Mailing Lists, accounts, etc.
4. A service-type project might choose to also include additional documentation in that flow for special tools, etc.
Important things to note in this flow:
* How do you want to contribute?
* Here are **clear** names that identify the team. Not code names like Cloud Kitty, Cinder, etc.
* The documentation should really aim to not be daunting:
* Someone should be able to glance at it and feel like they can finish things in five minutes. Not be yet another tab left in their browser that they’ll eventually forget about.
* No wall of text!
* Use screen shots
* Avoid covering every issue you could hit along the way.
Examples of More Simple Documentation
I worked on some documentation for the Upstream University preparation that has received excellent feedback meet close to these suggestions: * IRC  * Git  * Account Setup 
500-foot birds-eye view
There will be a Contributor landing page on the openstack.org website. Existing contributors will find reference links to quickly jump to things. New contributors will find a banner at the top of the page to direct them to the choose your own adventure to contributing to OpenStack, with ordered documentation flow that reuses existing documentation when necessary. Picture also a progress bar somewhere to show how close you are to being ready to contribute to whatever team. Of course there are a lot of other fancy things we can come up with, but I think getting something up as an initial pass would be better than what we have today.
Here’s an example of what the sections/chapters could look like:
* Volumes (Cinder)
* Account Setup
* Generating Configs
* Compute (Nova)
* Account Setup
* Something about hypervisors (matrix?) –
* Products (Product Working Group)
* Use Case format
There are some rough mock up ideas . Probably Sphinx will be fine for this. Potentially we could use this content for conference lunch and learns, upstream university, and the on-boarding events at the Forum.
What do you all think?
To get involved, you can reach out to Perez on IRC or Twitter, where his handle is Thingee or over email: mikeATopenstack.org
 – http://docs.openstack.org/upstream-training/irc.html
 – http://docs.openstack.org/upstream-training/git.html
 – http://docs.openstack.org/upstream-training/accounts.html
 – https://www.dropbox.com/s/o46xh1cp0sv0045/OpenStack%20contributor%20portal.pdf?dl=0
Mike Perez is the cross-project developer coordinator at the OpenStack Foundation.