How to turn 40 lines of hacky Ruby in to a badass open source project
You don't always have to have a plan for your projects. You can just hack away, and revisit things whenever you like. If you get a group of friends together, the project just might grow legs of its own...
In the first session, we really didn't know what we were doing. We knew we wanted to program together, and we know we could do it online. We had a vague idea of something to build - a tool to manage our mob rotation as we worked - but no solid idea of where to begin.
At the end of that session, we had produced the 40 lines of code in our first commit, refactored and added unit tests. It doesn't look like much, and it's not. The code doesn't matter very much - it's an artifact of a shared programming experience.
We enjoyed that shared programming experience... and continued to meet to explore the idea together. Over time, it's grown in to the delightful little project you see today - more mature documentation, tests, involvement from outside the original coding teams, and team members managing issues and pull requests.
We never set specific goals for things to work on. Each team member had their own ideas for what to do, and we played games to help make sure everyone had a chance to contribute. I'll share more info on those games in later posts.
- Whoever shows up are the right people
- Whenever it happens is the right time
- Wherever it takes place is the right place
- Whatever happens is the right thing to happen
We learned a lot in each of the mob programming sessions. We interpreted programming commands from our team members, and gave our team members programming commands to interpret.
Sometimes we got stuck... usually we moved along at a slow, but steady pace.
If you want to create something cool, you don't have to wait for anyone to give you the go-ahead. You don't even have to try to create something cool. You'll probably do better if you just try to create something that you think is cool, or interesting, however small it is. Then build on it. Play with it a bit more the next day, or a week later, or even a year later.
Not every project you create is destined for huge success... but you don't need that from every project. If you learn a bit, it's worth it. Keep having fun, keep learning, keep doing cool stuff and telling people about it, and you'll develop a huge catalog of work. Some of it will seem like a big deal, and some of it will seem like small potatoes, but it all makes up the stepping stones leading to the very next thing you do...