Guy Royse

Work. Life. Code. Game. Lather. Rinse. Repeat.

Coding in the Clink

One of the people I have the distinct pleasure of working with at Pillar is Dan Wiebe. He loves to code more than anyone I have ever met. He is smart, focused, and just ever so slightly crazy.

And every Tuesday evening Dan goes to prison.

No, he’s not on work release. He’s there to teach about a dozen inmates how to code. In all fairness, Dan isn’t actually teaching them to code, they are doing that themselves. However, he is there to provide direction, experience, and wisdom. He is there to provide the perspective of the outside as it relates to coding, to help give them a skill that they can use if and when they get out, and – I think – more then anything to provide them some hope.

Prisoners are people that much of the world wants to turn their back on. If people think of them at all they assume that they are all “bad people” and they deserve to be there. I can’t refute the argument that they deserve to be there as, in many cases, it is true. However, in my experience, there are no “bad people”. There are only bad choices. And when you start to interact with prisoners you quickly realize that the number of steps between you and them really isn’t that many. A bad choice or two and you could end up in the same place as them.

My father spent time in prison when I was a kid. He made plenty of bad choices and I know for a fact that he deserved the time he spent in prison but I would never say that he was a bad man. He wasn’t even my biological father, but he raised me as his own and cleaned up his life because of his love for me and my sister.

In most cases, prisoners will be released one day and they need to be able to function in society. They will need a job. They will need to be able to work with others. Technology may have passed them by while in prison and they will need time and assistance in adjusting.

My cousin spent ten years in prison. I remember when his sister and I first picked him up. We gave him a cell phone so he could talk to his mother. He kept moving the cell phone from his ear to his mouth and back again because he didn’t understand how the microphone could pick possibly up his voice without being in front of his mouth. He had never used a phone without a handset.

While in prison my father got sober and it helped to keep him that way. While in prison my cousin studied horticulture and was able to get a job within weeks of getting out. They were able to do this because people were willing to go inside and help them.

So, last month, I decided to help Dan and go to prison too.

Fortunately, Dan has a good forum for introducing people to working with prisoners. He calls it “Coding in the Clink”. In a sense it is like a Coderetreat in prison. Lots of people gather for the day to practice their skills. There is food provided. We test drive our code. We pair.

But the pairing is always aligned prisoner to visitor. The prisoners code with each other all the time, they need an outside perspective. A visitor could pair up with another visitor any time they wanted. There is no reason to come to prison to pair with someone you could meet with at Panera.

The format is also different. The coding is in Java for reasons Dan explains elsewhere. We normally pair on a machine for an iteration and the next pair on that machine picks up the code where it was left off instead of deleting and starting over. At the end of the day we come back to our original machine with our original pairing partner to see how the code we started changed over the course of the day.

Also, we do not code the Game of Life as the longer format requires a longer exercise. At the Coding in the Clink that I attended, I was quite please to be working on the Evercraft Kata that George Walters (who was also in attendance) and I put together a couple of years ago. That made this event a little extra-special.

But it wasn’t the only special thing. Uncle Bob was there as well as his son Micah. They paired with the prisoners and provided instructive feedback during the retrospectives. Muy cool!

I personally paired with five prisoners that day. Three stand out in my mind. One had been a programmer before he came to prison – he was sharp and we wrote much code. One had been programming for a week – we spent our session teaching him some basics. Another was studying electrical engineering at college when he came to prison 20 years ago – I worked with him last and we spent our session refactoring a mess we had inherited.

Lunch was pizza and pop, another way in which Coding in the Clink varies from a Coderetreat. But we socialized for a good bit and talked about what we were learning and teaching and doing. It felt like a Coderetreat as we were just geeks discussing what we enjoy.

Looking at all this from the point of view of the prisoners, this was a wonderful day. They got to meet and pair directly with Uncle Bob, they had a room full of visitors (some of them women – woohoo!), they got to work on an exercise with the folks who created it, and they got pizza and Mountain Dew for lunch.

From my point of view, the whole event wasn’t about my kata, or Uncle Bob being there, or hacking all day, or even pizza. Those things were cool and I enjoyed myself very much. But really, I wasn’t there for those reasons.

I was there because there are no bad people just bad choices. I was there because the people on the inside needed my help. I was there because they are people.

I’m going to continue going to prison with Dan. Others helped the people in my life when they were in prison. People that I don’t even know. People that wanted to be part of the solution. I want to be part of the solution too.

— February 13, 2014