I just came back from the CfASummit, 2013 and thoroughly enjoyed it. I met a whole bunch of really dedicated, intelligent, and idealistic people who have been blessed with a position to change the world, the presentations made me laugh and cry (really). CfA represents many the changes I have been hoping for in the public sector since I entered it 5 years ago, and many I hadn’t thought about. And the Kool-Aid was amazing.
I have a few really good posts regarding these experiences in the queue that I haven’t finished yet, but just saw a post by Steve Citron-Pousty called “Hey Civic Hackers! How about leaving the ninja skills at home and building really useful applications?“. Steve had 4 core points:
- At the very least, the only programming languages you should use on the server are (in decreasing order of priority) PHP, Java, or Python.
- Next up, most civic hacks should use a popular framework.
- Document your project more than you think you need to document it.
- Finally, in truth, most civic hacks should really make a plugin for a platform like WordPress, Drupal, Django, or Magnolia.
The core idea being civic hackers should be providing tools that can be changed and adopted by the municipality. Responses on twitter have varied, with a nuanced response from @spara:
So, I want to be nuanced too. I have a lot of affection and respect for the CfA Fellows who serve our neighbors and partners in Summit County. They have built a simple and beautiful interface for finding trails in the park systema. I celebrate what they built, and have enjoyed watching this product develop.
But, one frustration I have had with the process was the balkanization that resulted from the project–here all partners (I am not employed by a partner, but I’m a trouble-maker with the Brigade) involved were hoping for some regional product from the work of the Fellows. There was already locally commissioned work complete built on (gasp) PHP/Codeignitor application with similar intents.
The Fellows application is compatible with the existing application in no single way– not employing a similar back end, not sharing any front end code, not even sharing API compatibilities.
So let’s return to Sophia’s comment on twitter above: “We are there to start process of changing everything rather than bolting on to entrenched process and infrastructure.” This, I am afraid, right or wrong, is the language of colonization.
So where does this leave us regionally? Now we have two related applications, which share no heritage, front end, back end code, nor API, and an expectation from local leadership to avoid the mistakes of the past of balkanization, those very same entrenched processes that CfA aims to undo.
So, when civic hackers enter a space and see change for the good happening, is it better to build that rails race car that Steve’s post points to, or should we be, in addition to changing the existing civic tech space also be celebrating and enhancing good things that are in progress?
From a practical standpoint, how do we put the pieces back together? I want to emphasize again, the great and meaningful work work the Fellows did. But they will leave us in a few weeks with a real challenge. Thoughts?
Code for each project can be found (naturally) on GitHub.