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...

The RubySteps mob_rotation tool began life as 40 lines of code. A few months later, it has 33 listed contributors, and 22 with credit on GitHub.

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.

Our main game, I stole from OpenSpace:

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...

Become a better Ruby developer with free RubySteps lessons