13. First Sequence: Retrospective

Author:Peter Parente

The first incarnation of the Tools of the Trade (TotT) meet-up ran from January 10th, 2014 until April 11th, 2014. We met on eleven of the fourteen available Fridays. Most of our meetings ran for approximately two hours, from 3 PM until 5 PM. Participants were free to leave at any time. The majority stayed the duration.

Roughly fifty or so students attended the first session to learn more about the meet-up. About half as many returned the following week seeking to participate in earnest. Attendance leveled off at about ten to fifteen regulars each week for the rest of the semester with additional people joining based on interest and availability. The participants were mostly UNC-CS students but a handful came from other departments and nearby universities.

Some people came to TotT with friends to work collaboratively. Others attended alone. Most attempted the session exercises, with or without assistance. Some of these were willing to share what they learned with the entire group. One student even contributed and lead a session himself.

All said, I was pleased with the first offering of TotT. When polled, most students echoed my sentiment by expressing gratitude for our meetings and interest in future sessions. But while there were certainly aspects of TotT that worked well there were also those that could be improved. I wish to bring both the good and the bad to light here in order to make future TotT offerings better.

13.1. What worked well

The concept. Without a doubt, attendees were excited by the prospect of having time and support for practicing software development in a no-consequence environment. I heard repeatedly from students who believed TotT was their first real opportunity to learn about the variety of tools used in industry. While I don’t agree with their viewpoint, their enthusiasm remains as evidence of why I assembled this meet-up and why I hope it continues.

The pace and variety. I took a gamble in jumping between topics each week. On one hand, I wanted to give students a glimpse of the bevy of tools used in modern software development and start building their self-confidence in learning them with agility. On the other, I didn’t want the weekly switching of topics to cause chaos and confusion. I believe my bet paid off in the end: no one expressed displeasure in studying a new topic each week and only a few found issue with the particular topics we covered. One attendee suggested that maybe the sessions could all build upon one long-running software project. I agree that such a setup would be ideal, but struggle to identify a single, reasonably sized project that could logically encompass such a diverse set of tools.

Starting all-together. Until the fifth session or so, I would briefly introduce a topic, have the attendees start working on the exercises, and travel around the room assisting when asked. I could sense this was not working well: the room would typically go quiet at this point as students found themselves thrown off the deep-end, especially since most did not have time to review the prep materials and some preferred to work solo. I polled the students and found a handful of them asking that we work an exercise or two together at the outset of each session to get everyone rolling along together. We tried this at our next meet-up and it appeared to work very well. Thereafter, we would typically start working together as one big group, then split off into smaller groups, reconvene as one group again to share work, split again, and so on. Students who needed help caught up at the full-group checkpoints while those who wanted to race ahead did so unabated.

13.2. What didn’t work well

The introduction. As in all things, the TotT elevator pitch could be better. I fear some of the first-session attendees did not return, not because of a lack of interest, but because they thought TotT would be beyond their ability. Some students expressed this concern to me directly and I tried to allay their worries but failed to do so. Next time around, the introduction must explicitly state that anyone with an interest and basic understanding of programming can benefit from TotT. At the very least, simply sitting through sessions and entering the revealed exercise solutions would offer awareness of a tool and its application heretofore unknown to novice students.

The meeting space. We met in one of the UNC campus lecture halls with risers for students and a podium at the front. I think the room created an unintentional speaker-listener dynamic in our sessions whereas I wanted to promote small group collaborations among students. A room with a large round table or many individual tables might foster more student interaction in future renditions, and properly demote the leader’s role to that of advisor rather than lecturer.

Assuming attendees had time to prep. Most of my preparation for TotT went into the creation of the prep materials: the narrated slidecasts, the example code, the screencast videos, the links to additional information, etc. I knew that attendees would not have time to review everything before every session, but I assumed they would at least have ten or so minutes to skim the introduction to each topic. I was wrong. Most people came to the sessions without having read or watched anything in advance. Future offerings of TotT should plan for this outcome, perhaps by scheduling a from-scratch introduction in the first 15 to 30 minutes of each session for those that need it, followed by the typical group activity there after for those with a basic grasp of a subject. Alternatively, some incentive could be given to encourage students to review the prep material beforehand.

I do not feel the the time I spent creating the prep materials was wasted, however. Some students informed me that they used the TotT website, links, videos, and so on as a reference after our sessions. Since everything is available online, it’s potentially benefiting others too without my knowledge.

The VM setup and use. Getting a dozen or more disparate laptops to run even one piece of software consistently is difficult, let alone the large variety of tools we studied in TotT. The tottbox VM was my attempt at creating a consistent development environment meant to alleviate the inevitable discrepancies across student computers. It was imperfect, however, and still required OS and even machine specific tweaks. Some students found working with it difficult enough to try to install the tools on their host OS (and most of these met with less than desirable success).

I see no grand solution to this problem, and still believe a VM is still the best solution for the purposes of TotT, better than having students configure tens of tools on their host machines and better than forcing students to work with the tools on some VM in the cloud. More investment in making tottbox easier to setup, understand, and use is warranted.

13.3. What’s next?

Where TotT goes from here is an open question. I’d like to see three things happen and will try to assist in all of them:

  1. The creation of sessions on additional topics, by myself and others. I’ve identified some already and put placeholders on the TotT site for them.
  2. A repeat offering of the first sequence of topics in the UNC-CS department. It would be wonderful if this were a student-backed effort.
  3. The further dissemination of the TotT materials. I believe there is a lot educational value tucked away on the TotT website, particularly in the slidecasts. Surfacing this information so others can find it more easily is probably worth the effort.

If you or someone you know is interested in helping in any of these efforts, or others, please reach out.