The notion of a “tutorial” at OSCON (or any O’Reilly conference) always seems like a good idea, but far too often these tutorials crater spectacularly. For the money people are paying, the class experience ought to unfold like polished ballet, and yet it regularly manifests as a stumbling experience of library issues, network problems, general confusion, and mounting frustration.
Every participant brings a laptop. With any luck people have pre-installed some number of dependencies. Regularly instructors have not finalized their tutorial code until the eleventh hour. They might gloss over “boring” details such as how account management and configurations differ from distro to distro. The session I’m attending at the present, Test Driven Database Development, has burned half of its allotted time and yet has accomplished little more than getting the first test case to run for most of the students.
I should not need to have anything on my laptop apart from an SSH client. The conference should host a local VMWare cluster in which each student has a private VM cloned from a VM that a class’s instructor has tested to death. Or maybe I should be able to download a VM from a local file server and fire it up on my laptop (or at least have this as an option).
Given how things often go, you might end up believing that the conference organizers and/or tutorial presenters haven’t ever managed a real software application or done anything resembling system administration. Package versions matter. Configuration quirks matter. Unambiguous instructions matter. Telling people to download a bunch of packages (often with loose guidance on which version to use), having them run them on a variety of OSes, and expecting anything other than general mayhem for a classroom full of people is unreasonably optimistic.
Simple things will trip you up. My Postgres instance blew up because of a disagreement between it and the OS about reasonable shared memory buffer sizes after a config file was overwritten while installing a required package. Pulling down the instructor’s code with a “git clone” took forever because the instructor had a large file in his repository and the conference’s wireless network is underprovisioned. My version of pgTAP installed its functions in a schema subtly different than what the instructor’s code expected.
I’m perfectly capable of working through such system administrivia, but in a class environment, competing for the instructor’s time with dozens of other students, and working with a poor network connection, the three hours of class time just goes up in smoke with far too little value captured.
O’Reilly should know better by now.