User Groups often meet and just talk, rarely have I seen user groups “do stuff”.
The Rise of a User Group
Fortunately, our local user group, Tulsa Web Devs, has been doing community projects, hackathons, and general hack days to make cool stuff. A lot of what we have done is civic app type things, which has already had an impact on Tulsa. Over the last 2 years it has generated buzz about open data and open source. The groups work has been a contributing factor to our city working to adopt an official open source and open data policy, where before it was mostly frowned upon or just ignored.
We have seen a lot of forward momentum, but in our efforts we have stuff strewn all over place. A lot of it has been minimum viable products, and experiments. As such we just throw it where we can and say “Look”.
A Tale of Hosting
When you have anywhere from 6 to 15 high octane developers who believe code wins arguments they produce a lot of good stuff. Well that is what has happened, and none of us put a ton of thought into hosting. We just threw our sites up wherever was most convenient. Anywhere from our own personal servers, our groups virtual server, or various PaaS. At this point we have stuff hosted in roughly 6 different places.
The Realms of Hosting
To get a better idea of our fragmentation of hosting lets look at the projects our group has, and where they are located.
|Tulsa OpenTripPlanner||Summary||http://tripplanner.tulsawebdevs.org/||Person 1 – VPS 1|
|Oklahoma Boundary Service||Summary||http://oklahomadata.org/boundary/||Group VPS|
|Tulsa Roadway Information Feeds||Summary||http://trif.tulsawebdevs.org/||Person 2 – VPS 1|
|Oklahoma Wildfires||http://oklahomadata.org/oklahomafire/||Group VPS|
|OttoZen||Summary||http://ottozen.com/||Person 2’s Heroku|
|WhereYourMouth.is||http://whereyourmouth.is/||Person 1’s Heroku – Static Files on Group VPS|
|Node IRC Turntable Bot||Person 3’s node.jit.su|
|Agenda Plublisher||Person 4’s node.jit.su|
There are a couple of more projects, but I couldn’t get the details on them.
There Be Dragons Here
All of our ‘stuff’ is open source, yay (TulsaWebDevs Github). However, the Dragon in the woods is if you want to contribute you have to figure out who is in charge of project x, and where it is hosted. The coordination at times to get simple things done is often daunting, especially if someone is out of town on vacation for a while.
Which brings us to the biggest hit of all, and something we almost experienced, what if someone is hosting something on their server, and the person gets mad and leaves? They have control of the data, the server, and sometimes the domain. They are in control of the groups project. They have the option to ignore requests for us to get it back. Today, if someone left a few of our projects would be set back, if not gone.
How to Slay the Beast?
If you look at the above chart you will see some major problems with our hosting solutions. We have been fortunate to have a lot of talented people spend a lot of time doing some really cool stuff. However, we have a huge problem when it comes to hosting alone. I don’t want to get too much into code maintenance because we tend to try new things on all our projects as well, so some of it isn’t the best quality, and is its own problem.
My proposed solution is to move everything which is fairly basic to a TulsaWebDevs centric heroku. If it is complex, like our boundary stuff, host it all on our Group VPS. We need to look at each project, and figure out what we can refactor, or pull out into its own project to simplify our hosting requirements on a per-project basis. Also spend a hackday doing this plus code reviews and code refactoring to make sure we have quality code as well.
But How Did We Get Here?
The simple answer is
We Did Stuff.
I think this is what makes our group amazing is the amount amount of stuff that we do, this is just our projects. We love to help teach other people, and do cool fun things that help our community and/or fellow developers. We are winning as a group because we have been so active, but because we have been so active, and awesome, we have obtained enough size we now have a beast to slay.
In conclusion we have a good problem, and it can and needs to be solved.