16 July 2013
Weeknotes are a day late this week – and for good reason.
I spent Week 39 working on Hello Lamp Post – Monday to Wednesday from the studio in Shoreditch, and then decamping to Watershed on Thursday until the beginning of this week to launch the project into the world.
Needless to say, a busy week: lots of features to be wrapped up, content to be refined, and plussing to be done. We hammered our way through the project until well into Saturday night, but come the launch event on Sunday, it was in good shape.
I will be entirely honest: I find launches hard, and do my absolute best to avoid “crunch”: it really doesn’t suit the way I work; long nights tend to introduce as many bugs as I fix. Thankfully, we had a relatively sane launch week (as these things go): lots of teamwork, some late nights working away, lots of eating well, and watching the sun go down from the Arnolfini fairly regularly.
There were, of course, hairy moments (most notably, a strange set of eigenbugs that were solved with the discovery that
twilio-rubyisn’t threadsafe). But it all came off in the end. And I’m especially pleased with how effective the final week was: there’s a great deal to be said for getting the team in a single location, with only one thing on our minds. In that final haul, we really moved the project on a lot, and could tell we had something on our hands when we sat playing with it on Saturday night, all chuckling at what was happening in our hands as if it was something alive, and not something we’d made.
I’d primarily been focusing on the technology of the project in that final week, but there’s so much more to it than just the code. There’s the content within the experience; all the marketing and advertising; the graphic branding that’s permeated Bristol; the PR efforts; the beautiful models we’re using as an installation to promote the project; all manner of little details, all of which have come together.
When you’re in the middle of it all, it’s hard to see the whole; I always find that especially hard. I went to the launch party still a bit nervous, waiting for the emails from Exceptional, the people darting up to me with bugs.
And none of that happened. What happened was: people had fun. They surprised us. They told the objects storied, they laughed at the jokes, they were surprised by what one another had said. We drank champagne on College Green, and all was right with the world. By 4pm, I was out of the project-mines, and back in the world, and I could see what we’d made. It was pretty good.
All of which is a long-winded but personal way of saying what launches feel like for me, especially launches of creative works. When you’re in the mine, it’s hard to have any perspective. It’s very satisfying to see the view I got on Sunday when I came out. Thanks to Ben, Gyorgyi, and Sam, the rest of the core Hello Lamp Post team; to Clare, Verity, and all at Watershed; to Justin, our helping hands throughout that final week; and to all the collaborators throughout the project. I’ll write more about it formally soon, but in the context of weeknotes, it’s still important to say these things.
Week 39, then: Hello Lamp Post finally released into the world, advertised to a city, and already surprising and delighting us. It’s a privilege to have the opportunity to make such work, and – as I often say – to make the world a little more weird.
28 May 2013
Much of this week was spent refactoring Muncaster – the Playable City codebase.
It’s the kind of code that gets fiddly to work with quickly. In making a conversational interface, you quickly move away from the kind of architecture that’s very simple to model in Object-Oriented languages and frameworks, and into something that’s much more about flow and state. As such, there’s lots of flow control and logic.
The catch here is that, in the Playable City design, there’s very little complexity to the “state” end of things, and very little happens on state-transition; instead, most of the weight of the work comes down to the flow control: what to say next, given what we know.
It’s been very easy to get into a “mazy of twisty passages, all alike”, especially as we try to adapt and modify the code based on playtests; there are so many dependencies that you end up walking through the control flow yourself as you code it a lot.
So my goal this week was to build something more final to build upon, tearing out things that didn’t work, and removing as many
ifstatements as possible.
By the end of the week, a large amount of conditional logic had been torn out, and replaced with many, many tiny POROs, all responsible for building up fragments of a conversation, and none of which know anything about state other than the conversation they’re given to work with as input. In some ways, it’s not much simpler, but it’s proving much easier to modify, tweak, and extend, and that feels like it’s been really worth it. Logic has been torn out of the ActiveRecord models, and also become far less dependent on the database, which feels like an architectural win – and should make delivering Week 33’s playtest easier.
On Tuesday, I took part in a collaborative experience design workshop, run by Experientia. I said “yes” to this in part to see what that process was like from the other side of the table, and watch another design firm at work. It was super-rewarding on that front, and gave me some useful thoughts about future practice; also, I got to make lots of drawings with felt pens, which possibly bemused the other participants, but was a great work-out for my design brain.
And, of course, the other big news of the week was that Caper launched Concert Club. This is Detling: the project I’ve been talking about for the past couple of months. I’m really glad to see it in the world, even for its limited prototype lifespan: there are some interesting lessons to learn from it, and it’s been a lovely build process. I wrote more about it in this longer post last week, and I’d encourage you to find our more if you haven’t already.
Week 32 was a lot of code, then, and the usual last-minute wranglings to get a project live, but lots of nice pay-offs. In Week 33, we’ll get to put that code to use.