Back Inside for Code
A friend of mine named Jesse Cox was one of the outside developers on Coding in the Clink VI. I pestered him to blog about his experience. He was willing, but something went haywire with his WordPress account and he was unable to post his experience. So he sent it to me, and I’m publishing it here verbatim. —Dan Wiebe
Wow, what an adventure! One I will not readily forget . I just happen to get the last ticket and I am glad I did.
To start with I have to explain that I have a different perspective from the other developers that had come to this very special event. How so you might ask. Well it doesn’t seem that long ago that I was on the other side of the fence looking out. Yes, years back I was an inmate at that very same prison. While the other developers were wondering what it was going to be like working with inmates, I was stressing out what it was going to be like working with other developers. I would be working with names like “Dan Wiebe” and “DJ Daugherty”, both well-respected in their fields. Even though I was just meeting some names that I had not heard of before, I’m sure that they are well-practiced as developers. I am an amateur developer hobnobbing with ones who do it all day long. I had no clue how I would add up. On top of that, I’ve never been to a retreat before! Even though I gleamed that this was only sorta like a retreat. So now let’s start the adventure.
I met Dan Wiebe in the visiting room. He introduced me to DJ Daugherty. Nice guy (trying for brownie points). The first thing I noticed that they were flesh and bone like me. Go figure! So feeling a little more at ease, I got to meet the rest of the group and then we headed into the prison…our destination, Life Line. This is where the computers are kept for the prison population to learn specific programs (i.e. Microsoft Office, Photoshop). It is also where Dan instructs TTD using java with the inmates.
To start the day out, Dan had us all rate where we felt our ability was using java. Being well versed in C++ and only able in java, I rated myself around a 3.5 or 4. I figured it was better to rate under than over and end up with egg on my face. After hearing others also give themselves a lower rating, I felt pretty good. But as I was basking in the warm rays of this pseudo-knowledge, that I was as good as the others if not better, Dan totally burst my bubble by saying he didn’t know why some where lying about their rating. It was at that point I realized Dan was not the only one in the room that was quite adept at java. Damn!
The project was an African game called Mancala. We sat there and learned how it was played and what the rules were. Dan and an inmate even played one game and Dan won, but I just know he cheated somehow (I got my eyes on you Dan!). We agreed on 45 minutes for each iterate and 15 minutes retrospect afterwards.
In the first iterate, I was paired with Mark Roberts. I have known him since the nineties and have even program with him before (i.e. video game). So it was like old times sitting with him and working on the Mancala. To start with we created a “Side” class. Then we created a “Board” class that would create two instances of Side objects. We figured that anything that happened to one side would be identical to what would happen on the other. We would allow the Board object keep track of what side was up. This is about as far as we got before time ran out.
The second iterate I paired up with Louis Pierce, who I also knew from my past stay at hotel MCI. so now I’m pairing with someone new and sitting down at a different station where someone else started writing code. Here is where I screwed up. I was so stuck on my own vision as to how the problem should be addressed that I refused to submit to the code already written. As an example, in the first iteration we used hash maps to keep track of the pits (7 per side). The code I was looking at was using linked list…can you image that, what were they thinking! (yes I know linked list might have been a more eloquent way of handling it, but I was not going to succumb to someone Else’s evil code). So like a jerk I removed the linked list, and had to figure out a way to make the code pass the tests without them. So needless to say we didn’t progress the code before time ran out (if it was needless to say what did I say it anyhow? Huh).
During the retrospect, I guess I wasn’t the only one who tried to bend the code base they found to their own will. It didn’t make me feel any better, but misery likes company. Dan requested that we not do that and instead try to figure out the vision that the previously developer had and try to follow suit.
So now I paired up with Gene Lynn (I remembered him from another prison, where he was this math wizard. Every time someone would say “Go figure” He would). Taking the time out to study the code base and trying to follow suit did go better. We were actually able to progress the problem and reach some objectives. We even left the code testing green!
Lunch! It was cold cuts and some chips. They had coffee for us all day long, and lord knows I love my coffee!
The fourth iterate I was paired with was Darrin Pordash. He had only been at learning java for 8 months, but I think he did well. Again spent time to see the vision of the previously coders, and follow it. What I liked about Darrin was that he listened very intently when I would explain why I did what I did and how it worked.
I own someone an apology, because I don’t remember who I paired up with during the fifth iterate (but I’m sure he was great).
The sixth iterate we paired up with the person we originally paired with in the first iterate. We got to sit at the original station and see what our started code had turned out to be. Well it definitely altered our vision, but yet it still had some enduring qualities. What I had noticed though was that I had wrote a IfMoveIsACapture method, and someone commented it out. I don’t know why someone would do that!? It passed all tests and was marvelously done . Why, why why!? What kind of sick person would do that to me!? I’ve had a lot of sleepless nights because of it. Actually, after what I’ve done to some of the other developer’s code, I guess this was my comeuppance.
So now in summary, it was a great day. It felt good to spend a day in a world of developers, and yes I mean both inmates and outsiders. I remember when I was doing time it was next to impossible to find someone who even know what a IDE was yet alone be able to talk to someone about a coding problem. Mark Roberts had some kind of understanding, which is why we hit it off when I was inside. Now I see a group of guys that are learning java and a few that could give any outsiders a run for their money (Nice instructing Dan).
We went to Bob Evans afterwards, and I remember DJ saying “After awhile, I simply forgot I was in prison.” My remark, given my different perspective, was to this “I’m sure the guys inside forgot for a while that they were in prison also.”