Four tips for building better apps for government

No readers like this yet.
Fixing your community one click at a time

Opensource.com

Government CIOs have ample resources to do a great job for their communities and citizens. They have smart, well-intentioned people working for them and more low-hanging fruit than most private-sector CIOs dream of.

The biggest problem is not budgetary, legal, or policy constraints, although those sure don’t help much—it's about process. It’s a matter of doing things right from day one. It's a matter of doing less, not more. Government CIOs should be thinking smaller, not bigger; setting their sights lower, not higher; and strategizing away from organization-wide change in favor of quick, tangible wins that we can all share.

4 tips for building new systems and shipping quality code in no time:

  • Lean. If there’s a less heavyweight solution, and you’re not using it, you’ve over-engineered things. Look to existing tools (think open source), services (think APIs), and practices (think shared standards). Simpler applications are easier to scale, easier to maintain, and have fewer components that can break. Prefer JSON to XML, REST to SOAP, and static to dynamic. Fear complexity.
  • Iterative. If you are not embarrassed by the first version of your product, you’ve launched too late. It doesn’t need to be perfect or complete. Publicly ship 0.1, not 1.0. Start small and ramp up to where you want things to be. Watch how customers receive things and adapt accordingly. Be transparent, manage expectations. Let your vision evolve.
  • Decentralized. Avoid single points of failure, both in systems and in people. Foster communities. Push decisions to the edge. Put your faith in the crowd. Don’t bake in locks. Avoid blockers. Automate wherever possible. Eliminate all humans.
  • OpenBarriers to the free-flow of information just add friction and more often than not, you just end up shooting yourself in the foot. Make open the default. Open standards, open formats, open systems. Expose process. Prefer social and cultural norms to technical constraints. Don’t lock it down unless you absolutely have to. Trust people.

And that’s about it. You’ll instantly be on the path to building apps like the cool kids in the private sector. Lean, iterative, decentralized, open. Hey, the technology’s the easy part. It’s the culture you have to worry about.

Tags
User profile image.
Named one of the top 25 most influential people in government and technology and described by the US Chief Technology Officer as one of “the baddest of the badass innovators,” and by the White House Director of Digital Strategy as “lightning in a bottle,” Ben Balter is a Government Evangelist at GitHub — the world’s largest software development network — where he leads the efforts to encourage

1 Comment

Eliminate all Humans, trust People.
Nah... That was a joke... Don't trust people.

IMHO, decentralizing is NOT such a good idea, for you WILL hit serious security holes due to uncontrolled addition of "features". Although controlling the commit tree by yourself may become rapidly out-of-hand, you definitely need a small group of people controlling that some fancy-looking options are not just going to kill the reputation of your project: if your CMS allows anyone to take the control of the server on which it's hosted, it won't last too long before it's replaced by something not as "agile" as your software.
Trusting the crowd? Well... You really want to check what they write.

Trust no-one.
The truth is out there.
No, I don't want to believe.

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.