Pillar Technology » Agility in Medium Security – Pillar’s Code Retreat at the Marion Correctional Institution
Nine Pillar employees went to prison. Just for the weekend. To do some pair programming.
Dan Wiebe, a Pillar developer, has taught programming classes in prison for many years. His efforts have been focused on the Marion Correctional Institution (MCI) in
On Sunday June 27, Pillar employees from our Michigan and Ohio offices joined Dan for a special “Code Retreat” at MCI. Matt VanVleet offered his home for the out-of-towners to stay the night before, then the group got up on Sunday morning and started their day with the inmates.
Here are Dan’s comments from the events of the day.
For more photos, click here.
I got there a little early. The Ohio guys, chauffeured by Nilanjan, were right on time. The Michigan guys, coming north from Matt’s place, were about a quarter hour late.
I passed the time talking to a guy named Walter whose closely-held thick yellow manila envelope marked him as having been released that very morning. He was waiting for a ride to arrive from Cleveland, and was looking forward to finding work as a woodworker. I wish him the best, but I know that times are tough in Cleveland these days, and they’re tougher if you have a felony.
After all our preparation e-mail exchanges over the past week, everybody did everything almost completely right, except that I forgot to put Ronak’s name on the gate pass, and another of our number forgot the no-jeans rule. But I called the Deputy Warden at home on Saturday night and he added Ronak’s name for me, and the COs in the A building were in a good enough mood to be lenient about the jeans.
Once we got processed in and escorted back to the computer room by a very pleasant lady captain, the prisoners were almost excessively happy to see us. My boss, Jo Dee Davis, spent some time filling us in about the various programs involving computers that the prison sponsors, and the students had everything completely spotless, and had “MCI Code Retreat 2010″ wallpaper and screen savers installed everywhere, plus a projector constantly running a somewhat dizzying ray-traced 3D animation of the retreat logo on the wall.
We introduced ourselves and established procedures for the day. Each prisoner selected a station and sat down, and each outside volunteer selected a prisoner to pair with. I noticed that I was the only one without a pair partner; I figured I’d circulate around and make sure nobody was having any problems.
Then I thought, wait. These are Pillar guys. Who’s going to have problems?
So I noticed that one of my former students, Ezra, was in attendance: he had reluctantly left the class because he was to be transferred to a different prison. For some reason the transfer didn’t go through, but Ezra was still out of the class and back to the end of the waiting list. I’m not sure why he was able to attend the code retreat, but I asked if he was allowed to pair and was answered in the affirmative…so hey, we coded.
We decided to try an object-oriented solution to Conway’s Game of Life: with a Direction enum with values like TopLeft and Right, and a Cell object that knows whether it’s alive or dead and has an EnumMap containing all its neighbors, keyed by Direction.
By the time we had tests and code written for Cell.countLiveNeighbors (), morning count had cleared, so we trooped into the common room for a short retrospective before lunch.
The unfortunate part about the retrospective is that nobody could seem to think of anything to improve. So we were called to lunch, where we were placed in line ahead of all the other 2400 guys who were eating there. I suspect others will describe the experience, so I’ll skip over it.
After lunch, we had a mildly uncomfortable experience with the men’s room, which involves practically no privacy at all, but is still significantly better in that regard than the version the prisoners use. We talked about the prisoners who were doing the best in their pairings.
So when we got rolling again, I found myself with no pair choices other than Mark or Ezra: and the other Pillar guy looking for a pair was the guy who had paired with Mark the first time. I get to code with Mark all the time, and I was hoping to treat somebody else to the experience, because Mark is so good, but I wasn’t altruistic enough to insist, so we tried a more traditional non-OO version of Conway, with 2D boolean and int arrays. The interesting part was that instead of having the neighbor-counting algorithm constantly checking for board edges, Mark chose to waste a 1-cell border around the board and not bother checking for edges. We got almost all the way done before the bell rang again.
The third time I paired with Larry King. (Yup, I have a student named Larry King. He’s not nearly as obnoxious as the one on TV.) I was a little concerned about his progress, and I wanted to see how he did. He decided to go object-oriented again, and it turned out that my fears were completely unfounded. He needs to learn some
Eclipseshortcuts because he’s a slow typist, but he understands the fundamentals just fine.
After the third session, we really didn’t have time for anything but a generous retrospective, and that’s just what it turned out to be: generous. Again, the only element of it that could possibly be called negative was that we don’t already have another retreat planned. (It was there that I made my comment: “Mark’s a front-end guy, but Lee is more of a back-end guy.” In prison I said this. Whoops.)
During our retrospective, the warden stopped in (well, okay, left her church service and drove to work on a Sunday) and said some very nice things about us, and we asked her about perhaps setting up something like this in a prison in southeast Michigan. She was enthusiastic about the idea, and promised to use her influence to help us in whatever way she could.
After that we pretty much said our goodbyes and were escorted out. The possibility of eating together was raised, but it was pretty early for dinner and the Michigan guys wanted to hit the road, so we just drove away.
The last I saw of the Ohio contingent, Nilanjan had just mistakenly turned them north on US 23 and was driving them toward Michigan.