A few weeks ago the newly minted Chicago Software Craftsmanship (ChiSC) group had its first official meeting at the 8th Light offices in downtown Chicago. This meeting represented the culmination of a successful planning session a month or so earlier where some goals were formed and ideas were shared amongst a group of Chicago developers.
In addition to giving a general overview of the activities, I thought I'd organize my report of the first meeting under headings of what I saw as some emergent themes.
Not surprisingly, code was a central theme in the meeting. We started off watching a code kata by 8th Light's Paul Pagel, who presented his coin changer kata. The ability to watch the process of writing code as opposed to merely analyzing the result is a valuable exercise, and Paul's addition of music added a nice ambiance to the proceedings.
Code was also an important part of Corey Haines' presentation, but interestingly we were asked to play the part of the interpreter rather than writing code ourselves, an interesting thought experiment and inversion of roles. More on this later.
Dave Hoover gave a modified version of a talk he's been giving on apprenticeship, shaping it for the specific audience that evening. Dave was able to bring a different perspective and angle to the evening by bringing up issues of ethics, values, and the ways in which our own actions impact our ability to do our best work.
Another theme of Dave Hoover's talk was of course apprenticeship itself. For me, the practice of apprenticeship amongst software developers is part of an ongoing questioning and reshaping of pedagogy in our field. Interestingly, Dave framed the discussion in terms of facilitating learning rather than thinking of it from the perspective of teaching. While I see this issue as endemic to education more broadly, you have to start with where you can have an impact and it's great to see people acting on their beliefs that we can do better in the way we educate practitioners of software development. Spreading the word about these practices will hopefully encourage others to follow suit.
One of the goals set in the initial planning meeting for the ChiSC group was to provide some different types of discussions and presentations that you wouldn't already get at other language or technology specific meetups that already exist around the city. Talks like this epitomize the kinds of discussions that need to happen if we're serious about advancing our profession and craft, and I hope the ChiSC group can continue to foster values related discussions in the future.
I wasn't sure exactly how to title this section but this is the closest I can come to focusing the spirit of Corey Haines' talk and exercise that he led the group through. It's a dimension of craftsmanship that I think is central to understanding what sets the craftsman mentality apart.
Corey began his portion of the evening by giving a history lesson on Charles Hamblin, the inventor of the stack. Apart from the biographical information, my takeaway from Corey's historical angle was that ideas and structures like the stack that we take for granted were once created out of necessity from specific circumstances. Additionally, I personally find it valuable to know the history of any field that I'm interested or involved in.
Finally, Corey led the group in an exercise of acting as the interpreter for the Piet language, a language where the code is actually images that are interpreted. We broke out into groups and worked with each other to understand the parsing rules and then attempted to step through the "Hello world" program written in Piet. Not only was it fun and interesting, but it also helped foster community through getting people to interact directly with each other.
Overall it was a great first meeting and I'm excited to see how the above themes either continue or change in the meetings to come.