A couple days ago, I published my first open source project. It’s tiny and useful only for a small group of people, but I made it myself and am proud of it - and I’m certain it’s the first of many. Anyways, today I saw that someone forked it on GitHub. I cannot hope to describe how exciting that is, but I’ll try.
What kind of positive feedback do we usually get for our work? If (like me) your history is one of web development for corporations, praise comes in the form of kudos - usually from someone who hasn’t worked with you (department head) or doesn’t understand the work you do (manager or client)1.
The best moments during a project at work are usually those spent in close collaboration with another developer. You’ll bang your heads on the desk a few times, have an argument or six, and eventually figure out a solution. This is how programmers bond. And the high-five shared after such an experience is more uplifting than any amount of kudos from a director, manager, or client.
When I saw that my tiny sliver of the open source pie was forked, I felt like I’d just shared in one of those excellent post-discovery high-fives. But it was different in a couple ways.
For one things, I don’t know this person. It’s a great feeling to have a stranger walk by your cyber-cubicle, glance at your screen, and say, “Hey - that looks pretty cool!” It’s also different on a more fundamental level, since this isn’t code that someone told me to write. This is just a solution to some problem I had. It’s forking is an indication that at least one other person in the world appreciates the problem and is interested in the solution. It’s a validation of my effort that - however minute - my work may have an impact on the Web at large.
Are there parallels to this kind of experience in other industries? Is there another field where collaboration is so immediate, streamlined, or essential? As I struggle to answer these questions, my joy at having become a coder is reinvigorated. I cannot wait for my first pull request.
Clients and managers have the best of intentions, but I have never met or worked with one who can appreciate the elation which results from victory after a day of delicate and creative problem solving. They appreciate results, but good developers love the experience of building, improving, dissecting, and learning about their work. ↩