Mob Programming as an Open Door to Learning to Program

Published on Jan 15, 2015 by Nick Mader

One shared exercise


The Civic Tech Movement, and Learning to Program

The flourishing of the Civic Tech movement has brought techies and citizens together, using technology to make cities more transparent and better coordinated. The movement’s strength and joy is its diversity - Chicago’s Open Gov Hack Night attracts a wide range of talents and interests each week, from web designers to database managers, data scientists, designers, business intelligence professionals, journalists, government representatives, social science researchers, non-profits and community organizers.

Not everyone is - or needs to be - a programmer/data person, since Hack Night enables cross-pollination between the ideas and abilities of the full range of backgrounds within its community. However, some technical familiarity is relevant and useful in many fields and can help develop a common language across domains.

While there are numerous online resources for learning technical skills, it can still be intimidating to get started without some initial friendly, personal guidance - something the Open Gov Hack Night community has in abundance. So, at the end of last year, I piloted a new breakout group focused on mob programming to introduce programming and data analysis to beginners.

What is Mob Programming?

Mob Programming is, in a sense, exactly what it sounds like: a group of people, working together towards one goal. (A friendly, constructive mob in our case–no torches.)

The setup is:

  • A single screen, keyboard and mouse
  • A timer used to rotate control of the keyboard and mouse among participants
  • One shared exercise

The group starts the session by choosing the exercise they are interested in. At the hack night we usually crack open the City of Chicago Data Portal to download a data set that the group is interested in, and work towards answering questions with that data using the programming tool that we’re learning.

For example, how can we use a programming language to calculate and visualize how types of crimes vary across months of the year, or across community areas? Which businesses and zip codes have the most food inspections? How do the best (or worst) charter schools compare to the best (or worst) public schools?

Unlike other training sessions that you may have attended - where everyone is on their own computer despite being in the same room - the secret sauce here is having everyone’s attention, together. Instead of falling behind in a large group, beginners are able to ask questions of any of their neighbors or of the whole group. When they get to the keyboard to try their hand at coding, they have the guidance of the whole group for what to try. Working together, mobbing builds community, and over time everyone buoys up to each other’s level of knowledge and comfort.

At the end of each session, all of the materials–the programming code file and the data set–are saved and posted to this Google Drive location. That way you can always access and try the exercises from previous sessions, even if you weren’t able to make it in person.

In the grand scheme of learning to program, mob programming sessions aim to give beginners enough familiarity and confidence to begin learning on their own, and take advantage of all the resources out there - online courses, interactive tutorials, walkthroughs, and so on.

Next Steps for Mob Programming at Hack Night

The Open Gov Hack Night needs two things to build on the pilot of mob programming sessions that has been started:

First, we need volunteers to run more mob programming sessions to represent a wider range of tools. The pilot sessions have focused on learning R, but other highly popular tools such as Python and JavaScript–not to mention Excel, as an “unsexy” but an extremely important common denominator–would be of huge benefit to the community.

Second, we need more mobbing sessions to train on any given tool, so that we can keep “class sizes” down, and create separate tracks for both true beginners as well as those with some experience.

While mob programming isn’t a technology itself, the underlying methods and ideas are open source. Share it with others, contribute your ideas back us, take it to where you are, or come join us 6pm every Tuesday on the 8th floor of the Merchandise Mart in downtown Chicago.

We’ll set the timer for you.


About the author


Nick Mader is a senior researcher at Chapin Hall at the University of Chicago. His day job involves working to improve outcomes for at-risk youth through use of data, statistical methods, and close cooperation with public agencies and non-profits in Chicago. At night he does pretty much the same thing. Sometimes he changes in between.