Archive for Training

SDC 2011

A week ago I had the privilege of speaking at the 2011 Scandinavian Developer Conference. This was my second year at the show. The Friday before the conference, Matthew McCullough and I put on a one-day public Git training workshop in Gothenburg, which was very well received. It’s always fun sharing the stage with Matthew.

My wife also came along with me this time. Gothenburg isn’t known as a tourist town, but it’s still got a lot to offer a couple of Americans who tend to enjoy just about any European city. We enjoyed walking around town and getting outside town a little bit. She took a few hundred beautiful pictures as usual.

I gave three talks: NoSQL Smackdown, Database Refactoring with Liquibase, and HTML5: The JavaScript Parts. NoSQL Smackdown was standing room only, with probably 150 people in the room, which is always gratifying. It’s a hot topic, and the talk explains the landscape fairly well.

The bad part about attending conferences is that I can’t really attend them. There are paying work and writing projects that demand attention, so I can’t go to all the sessions I want. I did attend one, though, given by Anna Herting. Her talk, essentially an extended urge to remain calm about the awesomeness of Agile and focus instead on pragmatic ways to be successful, was excellent. She made two points about the perils of small teams that resonated with me in particular, mostly because I knew I’ve been guilty of both in the past.

First, Anna explained that a small team can freeload on the efficiencies of being small and get away with low-grade engineering practices while still delivering good results. For instance, the team might never refactor and never write tests, but they all know the code so well that they remain fairly happy and deliver value to customers anyway. This sounds a lot like Joel Spolsky’s Duct Tape Programming, which I was never convinced was a good idea. To be fair, meeting human needs (or “creating business value” as we often prefer to say) is the proximate goal of our vocation, and code craft is a close second, but this kind of entrenched sloppiness remains an accrued liability that will move disastrously from the balance sheet to the cash flow statement some sad day when the team grows or undergoes turnover. I’ve been there before, so Anna’s words stung a bit. In a good way.

Second, she talked about how a small team with lots of direct customer contact is in danger of becoming more aligned with the customer than the business. If customers constantly present critical issues directly to a small team of developers—with the customer-developer contact presented as high-touch service, or some such soothing excuse—then those developers may begin to make decisions that benefit the customer first and the business second. Again, this might not seem so bad, and to be fair, one might come to the conclusion that the customer’s benefit is always the business’s benefit. However, I’m pretty sure one would be wrong in that case.

There were great insights, and deserve to be spread wider. There was more to the talk than that, of course, but this is what hit me the most. I hope Anna keeps looking for opportunities to speak, even if she isn’t going to become an insane globe-trotting conference monger like Some People I Know.

In summary, the show was great, the food was great, the city was great, the people were great. It’s always a treat to catch up with old friends (although I definitely didn’t get to spend enough time with certain people) and make new ones. I certainly hope to be back in Gothenburg next year.

Leave a Comment

Complex Workshops in a Conference Setting

The typical conference session is a 50- or 60-minute lecture backed by slides. No Fluff Just Stuff, where I do most of my speaking, extends that to 90 minutes. Some creative speakers think of group activities to supplement the otherwise-non-stop bloviating, but those are generally limited to soft skills and process-oriented sessions. If you want to talk about code, getting people to get their hands on a keyboard at a conference is a tough problem. I’ve been wanting to solve it.

Two weeks ago in Raleigh, I retooled my open source business intelligence talks to include a hands-on workshop. The talks had been two 90-minute lecture sessions covering the basics of ETL, reporting, and analytics on a conceptual basis with a brief demo of relevant tooling, including some elaboration on using the Pentaho Analytics Platform. The retooled version is comprised of one part lecture covering the basic concepts, plus a 90-minute, hands-on training session building an ETL job in Talend Open Studio.

A working Talend installation has a few moving parts: a Java runtime, a database, sample application data, a sample data warehouse schema, and Talend itself. Asking 15 or 20 people to install all these things by themselves and get them talking is at least an hour of work by itself, and my goal is to provide a valuable workshop experience in 90 minutes. I tried the install-your-own approach at ÜberConf in June, and it wasn’t a terrible experience, but it was clear that it could be improved.

My new approach is to create a VM and distribute it to attendees before the session. So far this is working much, much better. There are some frustrations in the first few minutes of the session, but I’m able to get people’s hands on a tool that requires a fairly complex runtime environment. Here are some lessons I’ve learned and problems I’m still working on:

  • Try to keep the VM as small as possible. Right now I’ve got one that takes just over 8GB while running, but zips up to just under 2GB. This seems like an easily achievable minimum.
  • When creating the VM (using VMWare), be sure to check the box that splits the disk image files into 2GB chunks. Chunks greater than 2GB will not unzip on Windows machines, seemingly no matter what client you use. Windows users will not remember you in song (at least not the kind of songs you want).
  • Find some way to distribute the VM image ahead of time. Otherwise it will take several minutes to copy and unzip, burning up valuable workshop time. In my case, the workshop follows a 90-minute lecture session which is but required as a prerequisite, so I pass around thumb drives during that session. Attendees can copy the image and unzip it while they listen to the dulcet tones of my voice. It’s a win-win.
  • Note that your more enterprisey attendees may have laptops whose thumb drive capability has been crippled by their corporate masters. I have yet to devise a fallback plan for this. Perhaps I could burn a DVD with the requisite files on it; I will be thinking about this and other options. (I’ve chosen thumb drives to make it easy to update the image and other support files on a regular basis, as the talk evolves.)
  • Distribute a player with the VM image. No, seriously. Twice now I’ve asked attendees to download the VMware player at the start of the session, since I’m not formally allowed to distribute it myself. This is a big fail. I may switch to VirtualBox to get around this problem.
  • When distributing an operating system image with a database installed on it, be sure to document the usernames and passwords of all OS and database accounts. I’ve made the decision to use a single, simple password for all accounts, favoring user experience over security in this sandbox OS.
  • When providing instruction on a visual tool like Talend, distribute screenshots of each step of the procedure you want attendees to do. That way, if someone gets behind, he or she has a shot at getting caught up by following the slides.

So far I’m getting positive feedback on the session. People really enjoy getting their hands on a tool and are mostly ending up with the satisfied feeling of having learned and done something new. I’m still working out the kinks, but I think this is going to become a staple of my stable of talks. I’d love to hear your ideas on how to improve it.

Leave a Comment

Announcing a Partnership with ThirstyHead

I’m very pleased to announce my partnership with ThirstyHead.com. ThirstyHead is a training and consulting company that specializes in Groovy and Grails solutions. I’m still going to continue every bit of my work at the August Group as a writer, speaker, and software developer, but I’ll be joining forces with Scott and Andy for classroom training. ThirstyHead is a strong brand in the Groovy and Grails training space, and I couldn’t be more pleased to be a part of their team. Look for continued G2 Goodness from ThirstyHead, as well as new offerings in the near future. Stay tuned for more!

Leave a Comment