
Ask HN: How do technical non-developers help with open source projects? - thomk
I used to code for a living but decided that I enjoy being a technical writer and PM much, much more.<p>Things I enjoy:<p><pre><code>  * Writing detailed functional specifications.
  * Creating wireframes &amp; mockups.
  * Creating flowcharts, BPMN docs &amp; graphs to explain a project.
  * Planning Poker, Creating sprints.
  * Discussing technical issues with developers.
  * Simplifying technical issues for customers.
  * Learning about new technologies.
  * Explaining new technology to customers.
</code></pre>
My question is; Is there a need for someone like me in any open source projects and if so, how do I contribute?
======
jdietrich
With your skillset, you could be doing invaluable work by writing
documentation.

The world is full of good Free software that is essentially orphaned, because
the documentation is practically useless. Many moribund projects could be
revitalised with little more than a concise description of what the software
does, why you might choose it over the alternatives, and how to get started.

Other projects suffer from dreadfully myopic documentation, with a wiki full
of detailed descriptions of weird minutiae, but little that would be of use to
newcomers. Few developers can write well, and even fewer have the insight to
view their project from an outsider's perspective.

~~~
hkmurakami
I have a similar skillset to OP, and I was brought on board to write/improve
the documentation for [http://www.fluentd.org/](http://www.fluentd.org/)

I'm now unable to devote nearly as much time to the project as before, so
there's definitely a need in the project right now. The tool is used by AWS,
Google Cloud Platform, LINE, Nintendo and others, so it's something that would
have wide reach right away.

~~~
nashashmi
What is the pay range for someone who does "non-technical" work like writing
technical documentations?

~~~
hkmurakami
Not sure, but I have heard that the tech writers at Red Hat are compensated
very handsomely.

It all depends on how much the org values the docs.

------
kmfrk
Accessibility, accessibility, accessibility.

Are there

\- Link skips

\- Dyslexia-friendly typography (no justification, no hyphens, preferably
fonts with distinct glyphs)

\- A colour scheme useable and legible to the huge population of colour-blind
people

\- Screenreader-friendly HTML

\- Closed caption for video - or just transcripts

A lot of fancy-pants projects are absolutely amateurish when it comes to this,
and it only really gets their attention, when their JavaScript-only project is
penalized by Google's search ranking.

~~~
lugg
As someone with (mild) dyslexia I didn't even realise there were people out
there making friendly typography so I had a look around, e.g. dyslexie font
[1] is a pretty cool read.

[1] [http://www.dezeen.com/2014/11/09/christian-boer-dyslexie-
typ...](http://www.dezeen.com/2014/11/09/christian-boer-dyslexie-typeface-
dyslexia-easier-reading-istanbul-design-biennial-2014/)

~~~
kmfrk
Yeah, I employ a "Dyslexia" button on my text-heavy blogs that replaces the
typeface with OpenDyslexic. Definitely check it out if you don't know about
it.

------
_zekiel
I work at DuckDuckGo. Our most popular open source project is DuckDuckHack:
[http://duckduckhack.com/](http://duckduckhack.com/) Developers leverage code,
APIs, wikis, etc. to answer searches (across a broad range of topics) in few
or zero clicks. What we call, "Instant Answers."

The nature of the project only works well with the involvement of non-
developers in that the best Instant Answers are made by subject-matter experts
across a variety of fields. Suggesting ideas, finding great sources, and the
overall experience of the IA are all better if coming from someone who really
wants to improve searches for that topic.
[https://duck.co/help/community/contributing](https://duck.co/help/community/contributing)

Let me know if you're interested in getting involved--any time :)

~~~
kzisme
Are you only looking for non-dev contributors or anything at all? I'm looking
for projects to start working on in the OS community currently!

~~~
_zekiel
Both! We're really in need of some additional folks with commit bits, if
you're interested in getting involved on the technical side. This page will
help you find the best place to start but please let me know if I can help:
[http://duckduckhack.com/](http://duckduckhack.com/)

~~~
kzisme
Awesome! I'll take a look later tonight. If I have questions how can I get a
hold of you? IRC?

------
hamiltont
Something I haven't seen mentioned yet: For a developer to become involved
with a new project requires some substantial cognitive overhead to learn what
files matter, the terminology and basic flow of data through the codebase,
etc. There may be interest in having someone with your skillset create
"Introduction to Hacking Foo" presentations. For example, if someone offered
to tell me the main components of how django works in an easily accessible
style with plenty of helpful visual accompaniments, I'd be thrilled. While I
can figure those things out, that figuring takes time/reading/effort and
anything that could potentially reduce that effort is just great IMO

If your content is good enough and you're passionate about such an idea, I
could see a series of these introduction videos/slides/blog posts being a
really popular series

------
orware
Hi there! I know the Joomla project could definitely use some help like
that...if you're interested I would send this same message you've written here
to the CMS Google Group: [https://groups.google.com/forum/#!forum/joomla-dev-
cms](https://groups.google.com/forum/#!forum/joomla-dev-cms)

Development is entirely community driven (which is both a pro and a con) but
at the same time it would be nice to have a strong PM hand helping to guide
things again (we had a great person from the Netherlands during some of the
early years of the project, Wilco Jansen, but since he bowed out of the role
several years back I feel we've been missing that direction he was able to
provide).

I would definitely look forward to having you contribute to Joomla if it seems
like something you would find interesting!

------
barakm
Very much so! I'd love some help writing/documenting/explaining to people a
lot of the work I've done behind Cayley
([http://github.com/google/cayley](http://github.com/google/cayley)). I can
explain it very well one-on-one or to a developer but my
writing/explaining/diagramming gets a little esoteric for the people at large.
Even planning/prioritizing some things would be useful.

So if graph databases strike you as cool new technologies and you'd like to
learn more, check it out and feel free to drop me a line personally at barak
(at) cayley.io

------
nowarninglabel
Absolutely! I like Drupal's approach:
[https://www.drupal.org/contribute/documentation](https://www.drupal.org/contribute/documentation)

I feel like OpenBazaar is doing a good job of engaging people like yourself to
help out:
[https://github.com/OpenBazaar/OpenBazaar/wiki](https://github.com/OpenBazaar/OpenBazaar/wiki)

Good documentation/specs are essential to speeding up development of a product
and something I believe the community is learning to prioritize appropriately.

------
maxdemarzi
Most open source project lack documentation, and those that have documentation
need more examples, proof of concepts, use cases, etc. It helps if the open
source project has a non-technical way to show it off. Take a look at
[http://gist.neo4j.org/](http://gist.neo4j.org/) for example.

------
sisivee
Charles here, Community Manager at Sourcegraph
([https://sourcegraph.com/](https://sourcegraph.com/)). I'm not a developer.

Working with a developer community as a non-dev has taught me a lot. Earlier
this year we started an open-source hacker meetup to give authors the chance
to come talk about their projects at our office in SF.

To build this program, I help identify authors of open-source projects and
invite them to speak at our meetups. While I don't code, I look for the most
passionate contributors and try to give them a place to share what it's like
maintaining, marketing, and building large projects. These talks are recorded
and posted to YouTube where other programmers can hear lessons and challenges
from their experience. Example here:
[https://youtu.be/ScUIlbHnxGI](https://youtu.be/ScUIlbHnxGI)

In essence, open-source projects suffer from a lack of awareness and rely on
manual exposure. If you can help open-source projects market themselves, find
new contributors, and simplify their message, like nowarninglabel talked about
with OpenBazzar, then they have a better chance of being picked up by the
community.

------
morgo
I'm a non developer working on the MySQL team.

One of the ways that I try to help is by collecting feedback from our
community of users and passing it back to the developers.

Some examples:

[http://www.tocker.ca/2015/01/05/what-defaults-would-you-
like...](http://www.tocker.ca/2015/01/05/what-defaults-would-you-like-to-see-
changed-in-mysql-5-7.html)

[http://www.tocker.ca/2015/02/24/proposal-to-change-
additiona...](http://www.tocker.ca/2015/02/24/proposal-to-change-additional-
defaults-in-mysql-5-7-february-edition.html)

------
radmuzom
Have a look at the About[1] page of Michael Kerrisk.

His work on the man-pages project eventually led him to write a very highly
rated book "The Linux Programming Interface".

[http://man7.org/mtk/index.html](http://man7.org/mtk/index.html)

------
DerekH
This blog post by Steve Klabnik would be a great start. He talks specifically
about managing the issues section of an open source project (Rails).

[http://words.steveklabnik.com/how-to-be-an-open-source-
garde...](http://words.steveklabnik.com/how-to-be-an-open-source-gardener)

------
awwstn
It's not exactly the same as open source, but the Assembly
([http://assembly.com](http://assembly.com)) community is a great way to get
involved in building products. The community builds businesses together, and
everyone shares ownership based on what they've contributed. (also, it's all
open sourced under AGPL).

You can jump in on products doing all sorts of things from mockups, to docs,
to technical writing, etc. And you can always start your own product too. :)

Here's an example of a product that needs help with mockups of a technical
process:
[https://assembly.com/runbook/bounties/281](https://assembly.com/runbook/bounties/281)

[disclosure: I work at Assembly -- happy to answer any questions:
austin@assembly.com]

~~~
ics
[https://assembly.com/secret-society/assets](https://assembly.com/secret-
society/assets) bears a... striking resemblance... to a certain enterprise
linux company's existing logo. Do you have any sort of review process in place
for this sort of thing (esp. considering these projects are intended to make
money)?

~~~
awwstn
Wow - I totally didn't notice that.

If we receive a formal complaint about something the community is doing, we'll
usually jump in and try to address it – and in a case like this I'll reach out
to that team and let them know nicely that they should be creating their own
brand identity.

Thank you for pointing this out.

------
sytse
We would love that kind of help at GitLab. Creating mockups for the
functionality that we're accepting merge/pull requests for is very welcome.
For a list see
[http://feedback.gitlab.com/forums/176466-general/status/7964...](http://feedback.gitlab.com/forums/176466-general/status/796455)

------
SwellJoe
Yes! Most Open Source projects were started by coders. Many coders (certainly
not all, but many) are either bad at, or bored by, the stuff you've mentioned.

Documentation is often the Achilles heel of Open Source software, so having
that ability (specifically "explaining new technology to customers" and
"simplifying technical issues for customers") is incredibly valuable.

UI is also often weak and bolted on over time, to a degree almost never seen
in well-funded proprietary software. So having wireframe/mockup sessions with
OSS projects to sort out their UI weaknesses and maybe consolidate UI elements
and make it more coherent to non-technical users would be of immeasurable
value.

I say all of these things with the experience provided by the Open Source
projects I work on (Webmin/Virtualmin/Cloudmin/Usermin), which have about a
million users...but, our UI kinda stinks in a lot of ways especially because
it has accreted rather than been designed, our documentation always trails the
project (less so for Virtualmin and Cloudmin since we have some money for
these projects as they are also commercial, but still a problem), and we never
have nearly enough hands to help resolve those problems.

While there are Open Source projects that are insular and closed off (and many
that don't want to be might look like they are, just due to not having anyone
welcoming and marshaling volunteers, but they probably still want help), most
will welcome your input as long as it is well-meaning and exhibits some desire
to learn and teach. If you spend a week with almost any Open Source project
and don't see areas that need some attention in the areas you've mentioned,
I'd be surprised. And, spending a week (or so) with a project is probably the
minimum you need to get an idea about the culture and to know where your input
would be welcomed.

In short: Do it. There is need for anyone willing to help on most big and
small Open Source projects. You'll learn a lot, get a great addition to your
resume, and you'll probably make some new weird friends. Most OSS projects
won't beg for help, even if they need it desperately...but, it doesn't mean
they won't be happy to see you. They're making Open Source software because
they want people to use it (usually), so, when you use it and especially when
you help make it better, you're doing them a favor, and most will take it that
way, even if you aren't super productive at the start.

------
sailfast
The biggest contribution that I can think of is spending quality time
distilling the true value of a project into succinct, easy to understand,
practical language and then (as a technical former-coder) building clear
startup / path to use instructions.

Failing that - stand up the code base and help with the README?

I'd also second the gardening / community management effort. It's very
important but I wouldn't get too general - keep up your technical / code chops
so you can still truly distill things across all the audiences you need.

------
FooBarWidget
As others have said, your skillset is very valuable for all sorts of things.
For example as a community manager, or as a documentation writer.

I would love to get your help with writing documentation for the Phusion
Passenger application server. We're currently overhauling our documentation
([https://github.com/phusion/passenger_library](https://github.com/phusion/passenger_library)).
But as a developer who has been working on this project for years, I feel that
it's getting increasingly hard for me to understand how my users think. I've
become "too good" if you can call it that, so sometimes I struggle to
understand what problems users would have, or what they wouldn't understand.
Your skillset would help a lot here!

Please contact me at hongli@phusion.nl if you're interested.

------
viklas
As a new-comer to open source projects recently, I found it was hard to get a
handle on the 'roles' in a project. I was used to working on corporate, in-
house technology projects where there are plenty of non-technical activities
to perform (PM, Business Analyst, End-User testing/training, Governance, etc)
- but it isn't obvious how those apply to most open-source projects, or even
if they are required at all.

I found this link pretty useful to breakdown the activities and roles:
[http://oss-watch.ac.uk/resources/rolesinopensource](http://oss-
watch.ac.uk/resources/rolesinopensource)

Like everyone else will say...first involvement is a bit nerve-wracking (How
will people respond? Can I make a decent contribution? Will I look like a
total noob?), but you'll only feel that way once.

------
lgierth
Hyperboria / Project Meshnet are definitely in need of technical writing :)

We've been building a routing protocol (cjdns) and accompanying software for
desktops, servers, phones, and home routers.

> Cjdns implements an encrypted IPv6 network using public-key cryptography for
> address allocation and a distributed hash table for routing. This provides
> near-zero-configuration networking, and prevents many of the security and
> scalability issues that plague existing networks.

I'm larsg in #cjdns on EFnet IRC in case you wanna hear more.

------
babarock
There's a lot you can do.

* Writing (doc, blog posts, ...)

* Evangelization (answer questions on IRC/Mailing-lists, help your entourage to start using it, go on live conferences, give talks, ...)

* Testing. Test everything in each new release and give the authors a good bug report when needed. Test the tool on multiple OSs, using multiple versions of a lib, test the different drivers, different dbs, etc. Test the installation procedure and the user features.

* Triaging issues in a bug tracker. What's really a bug, what isn't? What's a major blocker for users? What's a luxury nice-to-have feature? What's too old and not relevant anymore?

You can start doing all this, without actually needing any permission or
access to anything. I'd suggest you just let the active members of the
community know you exist (they usually hang out on an IRC chan or something
like that). That's not even required, if you're shy don't say anything and
start working.

As you get more and more active, you're going to be naturally contacted by
someone active in the project and from here, you'll usually be given more
"official" responsibilities.

------
ioquake3
I run a project called ioquake3 that has been out for almost a decade and we
are in desperate needs of more technical folks to help spec out and plan
development for the most boring parts of the framework we need to remain
relevant in 2015.

Finding the boring things that other people don't do is exactly the most
valuable thing you can do for any open-source project.

------
mikekchar
As the maintainer of a very small project (probably only 1000 users at its
peak), a non-technical person would have been able to help me a lot. Because
it was a one-person only affair, I had only so much time. I probably spent
half of it writing and updating documentation, and building and testing
installs. I ended up having very little time to code and since there were
features that I absolutely needed for _me_ , I often just jammed them in as
best I could. Just having time to concentrate only on code would have helped
me a lot. Also, it might sound strange, but if you want a project to gain
traction outside of your little world you need marketing. I would have loved
to have someone who could write a blog post or two explaining why the project
was different than all of the other similar ones around. Doubling or trebling
the user base may have attracted another programmer to help with the technical
side. The website I built essentially contained only the documentation and
while I feel happy with the quality of that documentation, it absolutely
lacked anything that would attract new users. Building a screencast showing
the killer features would also have been incredibly useful. It was all on my
TODO list, but I just lacked time to do it because I barely had time to code
the features I wanted.

As you mention, user interface spikes would have been fantastic and saved me
huge amounts of time in experimentation.

The thing on your list which I personally would not have found useful Planning
Poker. I actually _did_ make sprints and wrote stories and even tracked my
velocity. But in the end, you wind up doing demand-based work. Like I said, I
wrote the system for _me_ and there were just things I needed done. Those
things took top priority no matter what. And with a lack of time, I very
rarely got off that list. Even in a large project, I don't think you are going
to get much different: coders are in it for scratching their own itch. They
will self-prioritise their work and there won't be too much difficulty
coordinating it.

------
sokoloff
For many projects, the single biggest hurdle to success/adoption is good,
understandable documentation. Many (perhaps most) open source projects have
technical capabilities far in excess of their usable docs.

("Read the whole wiki and then the whole discussion forum to understand" is a
huge hurdle for new users.)

~~~
wlesieutre
> ("Read the whole wiki and then the whole discussion forum to understand" is
> a huge hurdle for new users.)

Look, all you had to do was search for the forums for the the feature that you
don't know the name of because it's not properly documented! I don't see the
problem here.

Seriously though, documentation is a big deal. Both the "getting started"
intro stuff, and the gritty details of more advanced features.

------
Bahamut
We have someone non-technical helping us in the [https://github.com/angular-
ui/bootstrap/](https://github.com/angular-ui/bootstrap/) \- he helps us triage
issues, putting labels and helping get the reporter of issues to be more clear
about the information or helping issuers of pull requests get tests in the
pull request before it gets reviewed, which helps us developers of the project
save time when reviewing the issues or pull requests.

Sprint planning isn't as critical in open source - it is more important to get
things done right than to confine progress to sprints. Open source is hard,
and core developers of projects can use all of the help they can get.

------
mathattack
IMHO the most important non-technical thing for Open Source is evangelism.
Talking them up on wikis, encouraging your employer to use them, helping
answer questions on open forums... Relative to commercial projects, technical
resources aren't the limiting factor.

------
thinkbohemian
If you want to get into:

    
    
      * Discussing technical issues with developers.
      * Learning about new technologies.
    

Check out [http://www.codetriage.com](http://www.codetriage.com). It will also
help give you the tools you'll need to:

    
    
      * Explain new technology to customers.
      * Simplify technical issues for customers.
    
    

Pick a few open source tools that your company uses like
[http://www.codetriage.com/rails/rails](http://www.codetriage.com/rails/rails)
and start reading issues. Eventually you'll learn enough to start helping out.

------
skotzko
I'm a contributor on the Akka.NET project
([http://getakka.net](http://getakka.net)) and one of the things we made that
has really helped people understand the framework was a Bootcamp
([https://github.com/petabridge/akka-
bootcamp](https://github.com/petabridge/akka-bootcamp)).

Sure, there is a lot of code in the Bootcamp, but most of it is clearly
explaining concepts and helping developers understand what is really going on,
with no jargon.

Anything you can do like that is a MASSIVE help to an OSS project.

------
fit2rule
Organize the artwork... There is something that always gets in the way of game
development in the open source world, and its the artwork assets. Someone just
needs to be on top of this component -- coordinating the art from artists
contributions, putting it into the project in a way that makes sense, dealing
with the requests from developers to format the art a certain way, etc.

Open Source games usually don't hit the sweet spot until someone does this -
alas its not always the sexiest part of the project although, it does become
the sexiest part of the project pretty fast, eventually.

------
anupshinde
Yes. These are very important skills you have to make any open source project
successful. I know a few developers (including me) who do not love to write
functional specs or sometimes even updating a read me, but its necessary.

When I am designing a solution and processes, I need the freedom to do so.
When it comes to writing code and tests, updating docs, etc - I absolutely
want to be "managed" because self-induced-management is more effort. Even a
person who just tracks the process and reminds us "you are not doing this
right" is very useful from my perspective.

------
ThomPete
[http://www.weekendhacker.net](http://www.weekendhacker.net) 8000 developers
and designers helping each other out on projects. It's free and very OS
friendly.

------
SEJeff
Docs, testing, but triaging, community wrangling (IRC), web presence
maintenance, etc.

There are many ways that open source projects can benefit the help of a non
developer. In fact, it is often what projects need the most!

------
crcastle
I'm also a technical product manager and have struggled with this question
too.

I have also wondered the same thing in the startup context: is there a good
role for me in a <10 person startup, <5 person startup?

~~~
jlees
It depends how far you want to take the definition of what you do away from
'traditional' PM. At a ~10 person company chances are there are a lot of
things that need doing around interfacing with users/customers, identifying
beta testers, following up, triaging product feedback, writing great docs and
content, writing sample code and SDKs, etc. Sometimes one of the founders does
it, but as the company grows, that kind of day-to-day is hard for a founder to
stay on top of if they have other areas of focus too.

It depends a lot on the kind of project the company is building, of course. A
developer platform vs a consumer app will have a vastly different need for
such things. I work at a 10 person developer-focused startup and as an ex-PM
with engineering chops, I jump between building the product itself, working on
developer-facing stuff, and randomly helping out. I definitely wouldn't call
myself a product manager at the moment, though -- if you really want that as
your job title then you probably need a slightly larger company where you can
take the reins on product from the CEO, while the CEO switches to focusing on
developing the company itself.

------
heymishy
What your describing is essentially a business analyst, albeit a technically
minded in whilst not being a developer. I consider myself of the same ilk and
I think the best thing you can contribute is input and UX/UI design, sanity
checking of ideas, feedback from users etc.

The facilitation role between users and developers is so much more than
'documentation' which alot of the comments in this thread seem to suggest.

I suggest contacting a few of the projects listed here, or any you find on
GitHub you'd like to contribute to and just offer to help.

------
rushabh
You need to find open source projects that suit your interest and you have a
genuine passion in seeing them succeed. Look beyond the highly successful
ones, and look for projects that have a reasonable community + momentum but
are not very famous. There is a lot to be done for such projects

Try [https://github.com/explore](https://github.com/explore)

Plug: Checkout our project
[https://github.com/frappe/erpnext](https://github.com/frappe/erpnext)

------
mrfusion
It's not directly answering your situation but I really hope that one day the
open source movement will move beyond software and for that we need non-
technical people from almost every profession.

I hope the leading product in almost every market category is open source and
developed at least partially by volunteers.

Open source beer, where small brewers collaberate with breweries all updating
the recipe in github?

Open source mac and cheese showing up on your grocer's shelf?

Open source farm equipment?

------
kiyoto
An open source maintainer here
([https://www.fluentd.org](https://www.fluentd.org)) We can always use your
help for our docs -> [https://docs.fluentd.org](https://docs.fluentd.org) and
[https://github.com/fluent/fluentd-docs](https://github.com/fluent/fluentd-
docs)

------
drincruz
There is definitely a need with documentation and even style guides and such.
I've seen a bunch of pull requests that are merely just edits to grammar and
such.

There are also projects like 500lines
([https://github.com/aosabook/500lines](https://github.com/aosabook/500lines))
where it's a book and you can help out with all types of editorial-type tasks.

------
egonschiele
One of my projects is pretty technical. It takes a while for people to
understand why it is useful. If it's something that interests you, I'd love
some help!

The project:
[https://github.com/egonSchiele/contracts.ruby](https://github.com/egonSchiele/contracts.ruby)

------
kzisme
I'm currently a software dev student looking to get involved in the OS
community, but I'm having trouble getting into a community (or getting the
hang of contributing).

I'm willing to do technical stuff or non technical stuff, so does anyone have
advice on finding an organization or project to look into?

------
Jodie_C
As a non-coder, I run some software fuzzing and report the findings to the
owners.

With my gear I couldn't spend more than an hour a day setting up tests, but
processing the results can take up more time. I've found over 100 bugs in 6
months and it has been fun so far.

------
ryanSrich
If you're into healthcare compliance you can certainly checkout our docs repos
(simply filter by docs)
[http://catalyzeio.github.io/](http://catalyzeio.github.io/)

We're always looking for edits/feedback!

~~~
alexwlchan
Stack of pull requests coming your way :-)

(I was having some bad dreams, and apparently proofreading healthcare
documents was what I needed to shake it. Thanks!)

------
Warewolf-ESB
To start with, you could write useful and helpful Readme front pages for a lot
of the projects on GitHub :) Sounds like you could even write reviews on your
own blog/guest blog sites for various OS technologies and projects out there.

------
adjohn
I think there are a ton of projects out there in need of such help. MidoNet[1]
is definitely one of them, DM me if you want to talk about some areas where we
need help.

[1] - [http://midonet.org](http://midonet.org)

------
dafnap
It sounds like you can be an amazing developer evangelist.A lot of technical
startups (like mine :) ) are looking for someone with your skill set - writing
technical blogs, demos, speaking at conferences, meeting with customers, etc.

------
jacquesm
Don't underestimate the value of great testers and reports of reproducible
bugs.

------
amirmc
> _" Is there a need for someone like me in any open source projects and if
> so, how do I contribute?"_

This is an excellent question. I doubt that _anyone_ is going to turn you away
but there are some things you should probably consider. I'm drawing this from
my experience with MirageOS [1] and OCaml-related projects I've been involved
with.

1\. Why are you doing this?

After you've figured out what you care about you should still ask yourself
why. Is it CV points? New experiences? Specific project goal? To stretch
yourself? Accolades?

If you can be upfront with _yourself_ about what you're hoping to get from
contributing then it makes it a little easier to frame what it is that you can
offer. As I said above, no-one's going to deny a new contributor but having a
flaky contributor is also frustrating. Most projects won't have any kind of
'onboarding' process so knowing why you want to do this at all will help you
create your own.

In my case, I can see how a new method of building software (with unikernels)
could be transformational. I also want to know that I'm helping to promote the
creation of better software for distributed systems. There's a specific use-
case I want to be able to highlight too (see point 2).

2\. What do you _actually_ care about?

This matters more than you might think. If you're only peripherally interested
in a project it'll be difficult to remain motivated, especially if you already
have a full-time job. This is more than buying into a project's wider goals
(assuming it even _has_ any stated goals) but more about what would actually
drive you to continue contributing. It's somewhat related to the above point
but a little more specific.

Do you like writing docs? How about blog posts or giving talks? Or doing
tests? Triaging bugs? Helping users with issues? Organising stuff
(community/devs)? Small project or a large one? Move fast or be considered?

Can you match any of these up with gaps you see in the project?

From my point of view, I want to work towards distributed systems that empower
users [2] and I can see how parts of the project can get me there [3]. I
wanted to write more (personally), I care about good organisational
practices/structures/communication and onboarding new people. Those are the
things I tend to think about and it's led to me coordinating fortnightly
calls, curating a set of Pioneer Projects and writing a lot more.

3\. How will you build credibility?

Since you're not contributing code, it's almost inevitable that you'll end up
in bike-shed territory (though even code has plenty of bike-shedding).
Everyone has an opinion so why would anyone listen to yours?

I think this is why 'documentation' (inc tutorials) gets touted as the first,
semi-technical way to get involved with a project. It's rarely threatening to
the existing team and provides immediate value. Many of the other things you
mention in your list provide long-term value but they need to welcomed. Again,
no-one will state that they _don 't_ need these things but that doesn't mean
that any offering will be accepted. If you're willing to believe that
customers can't always articulate what they really want, then the same applies
to any open-source project :)

I don't have a pithy answer for this. I think it just takes consistent
behaviour over time. Be reasonable and try and back up any claims but don't be
afraid to stand firm.

4\. Just start!

All of the above points may seem cautionary but it's best to just get
involved. Open source projects can be pretty awesome and there's nowhere else
where I've been able to be as transparent about what I'm working on. There's
probably a useful blog post in this comment so I may write my thoughts up
properly some day (as opposed to this brain dump).

[1] [http://openmirage.org](http://openmirage.org)

[2] [http://nymote.org/blog/2013/introducing-
nymote/](http://nymote.org/blog/2013/introducing-nymote/)

[3] [http://amirchaudhry.com/brewing-miso-to-serve-
nymote/](http://amirchaudhry.com/brewing-miso-to-serve-nymote/)

------
engrade
Your skill set sounds very relevant to the work we do. We are not open source,
but do operate a free educational tool for teachers. Please email
api[a]engrade.com as we would love to discuss.

------
katuchka
This is just an awesome page! Thanks everyone for sharing! I was thinking
about doing non dev open source and was really doubting that that exists. I
search exactly what is described :)

------
aquarin
If you know some natural language other then English, you can help in
internationalization of OS projects. Translation of documentation, error
messages, interface etc.

------
pnathan
Um. YES, YES, YES, YES.

I have a list of small to microscopic projects that need this kind of thing. I
am totally a Linux nerd, that's not great for lots of end users.

------
japhyr
What kinds of projects are you most interested in contributing to? What kinds
of real world problems are you hoping to help solve?

------
britta
Pretty much all projects can benefit from these kinds of skills. I'm a
community manager and technical writer, and I make non-code contributions to
open source projects. My process is something like this:

1) Find an open source thing that I use or think is interesting. This has
included OpenStreetMap, LocalWiki, MediaWiki, an interactive map project at my
former university, a tool my hacker/makerspace has built for itself, an
educational website about open source, a tool made by the local Code for
America brigade, etc. The important part is just that I like the thing.

2) Get in contact with the people - join the mailing list, IRC channel, forum,
meetups, or whatever they use to communicate; look at the bug tracker and
blog. Start learning about how the people work and what they're working on,
and start asking and answering small questions, pretty much making friends
with them in a low-key way. At this point you can probably tell whether
they're reasonable people to talk to - if they're unfriendly or non-
responsive, abandon ship.

3) Ask for suggestions for what to work on, and find tasks for yourself based
on your expertise. Things will come up as needing improvement, and you can
propose solutions to the group and start getting them done. For me, this can
involve recognizing and filing bugs about user experience issues, improving
website copy, writing marketing materials like social media posts and blog
posts, organizing documentation, identifying holes in documentation that
people have overlooked, and so on. This kind of non-technical work usually
requires getting some amount of buy-in and trust from project collaborators,
which is why step 2 is important.

4) Yay, you are now contributing useful things to a cool project.

I've written a little more about this as part of one of the projects I
volunteer with, OpenHatch ([https://openhatch.org/](https://openhatch.org/)),
an organization that helps people get involved with open source:
[http://blog.openhatch.org/2013/how-i-found-an-open-source-
pr...](http://blog.openhatch.org/2013/how-i-found-an-open-source-project-for-
me/) \+ [http://mergestories.com/s/improving-a-project-
homepage/](http://mergestories.com/s/improving-a-project-homepage/). The
second post is from Merge Stories, our collection of posts where people
explain how they made an open source contribution, to help give newcomers a
realistic picture of what contributing looks like:
[http://mergestories.com/](http://mergestories.com/)

This is also a helpful article:
[http://blog.smartbear.com/programming/14-ways-to-
contribute-...](http://blog.smartbear.com/programming/14-ways-to-contribute-
to-open-source-without-being-a-programming-genius-or-a-rock-star/) \- a list
of ways to contribute to open source that aren't just writing a pile of code.

------
xmjee
Did you over time develop yourself from being in a technical/developing
position into a technical/management position?

~~~
thomk
Thanks for the question.

Actually what I did was quit my job at Ford as a developer to do freelance
work. I realized that when I was speaking to my own clients I really enjoyed
talking about their projects and documenting what was said in a meeting.

Often I would turn-around full functional specifications the same day as the
meeting.

I was programming off of those specs and quickly realized that all of the "fun
stuff" was already figured out and I was just typing in code, so I started
hiring out the programming work.

Developers have often told me that my functional specs are some of the most
organized and clear they have ever worked from and it keeps the back and forth
communication to an absolute minimum.

This is the waterfall model of software development
([http://en.wikipedia.org/wiki/Waterfall_model](http://en.wikipedia.org/wiki/Waterfall_model))
and it has helped me earn a living for years. I have built a business around
it and don't even have a website for myself.

So yes over time I transitioned myself from being a developer to whatever I am
now, but I really, really enjoy it.

I always tell customers "Software is difficult to change, word documents are
easy (and cheaper) to change".

~~~
xmjee
> I was programming off of those specs and quickly realized that all of the
> "fun stuff" was already figured out and I was just typing in code, so I
> started hiring out the programming work.

Yeah, that's pretty much what I figured.

As far as your status goes, in my book you can't easily transfer that to
opensource projects: You do need to go through a bit of the programming work
yourself, again, to see how things work in order to get to that same position
you fill with respect to business prospects.

At this point I'd say: team up with a few opensource-interested developers and
form your own project, from scratch.

------
rjurney
If you're technical enough... unit tests.

------
thebiglebrewski
Have you tried a product like Assembly?

------
rogeryu
This describes so much what I do and like. Your list is really useful for me.
Many thanks!

------
3pt14159
Proof read our website: emberui.com and submit patches in the documentation
repo :)

------
butwhy
Put a screenshot of key functionality in the README. I love repos that have
this.

------
gcb0
first rule of open source: if you use it, you talk about it.

~~~
kdawn
Consider me new to your philosophy. What other key rules should be considered
known to the community?

------
shicky
thanks for asking this question, enjoying reading through the responses and
may even get in touch with you OP as you sound similar to me.

~~~
thomk
Please do.

------
joncp
testing! Most open source projects really fall apart when you push them to the
edge cases.

------
phodo
Yes! Especially if you know the folks and with respect to helping with
documentation and onboarding. I'm technical, but my role in a fairly large,
well known open source project was strictly non-technical. Best summed up as:
"other". What was interesting is that my role wasn't only product-y in nature
(product is my professional calling card). It also included project
management, sales (I explain what sales means in the context of open source
below), and bd. Ironically, contrary to my advice to you about documentation,
I did not focus much of my energies there as an individual contributor, that
was already being done already and we worked with customers to improve that.
However, onboarding new users is a big challenge for many projects, and I do
think the need is there.

Some background: At the time, the project was created and maintained by a very
smart technical maestro / team which included a small core team of 1-2
developers. There is/was a large 3rd party ecosystem with shims and plugins
into every known framework/language.

This open source framework that I speak of has achieved product / market fit
in my view. But like many activities, it was clear that while that value was
being created (problem / solution fit, product / market fit), it was hard to
make the leap to capturing this value (sustainable business model so it
doesn't need to rely on external funding).

My contribution can best be summarized as product management, with heavy
emphasis on customer development, standard product management (but less
emphasis on product roadmap work, since the technical creator did most of
this), lean canvas/ business model work, business plan, working with lawyers,
sales and bd work. I relied heavily on my own product / pricing experience and
Steve Blank's / Lean Startup approach to figure out some key questions for
customer development "get out of the building" type work: e.g. to make this
project sustainable on its own accord, is there revenue we can get in the form
of support? Because the project has growing traction across the world, I was
able to speak with several potential customers who were using the project
heavily in their engineering organizations, and learn about their additional
problems they have.This then informed the paid "support" solution we proposed.
In many cases, customers were satisfied with the free open source version, and
we gave them support as well.

One of the most satisfying things was working with early prospects on defining
what it meant to "sell an open source product"... the "capture value" part I
spoke of above. This had unique challenges because we wanted all deliverables
to customers to go back to open source, which we achieved successfully.

Apologies for the long post. tl;dr: yes you can help, especially if you know
the folks. I think you're on the right track. If you'd like to learn more
details and if I can help you think through any parallels or questions to your
own work, feel free to ping me. I'd be happy to help. Email contact is in my
profile.

------
thescorer
Planning Poker?

------
abbyduf
Vicky is going away to college in Springtown, but will live in an off-campus
apartment in Livingston. The two locations are 2 inches apart on a map of the
area; the actual distance is 34 miles. What scale does the map use?

