Sketching with Code

Get Back To The Craft

In writing this I started thinking about how I moved from coder, to designer, to owner of an agency, and then quite suddenly back to coder again.

It was about getting back to the craft. Startups are more interesting than agencies. Starting Makeshift, we had a conversation quite early on.

“What will we do if this all goes to pot and we’re considering doing time-for-hire work?”

“We’ll shoot ourselves in the head”, replied Paul.

We laughed, but it was true. We agreed that Makeshift was about making startups, and that if the time came when we were considering doing time-for-hire work to keep it alive, we’d just shut the company and declare “experiment over”.

That’s quite a change from just a few years ago, where I was essentially a salesman - running a small agency, where all the craft was actually done by those around me, and my time was spent networking, drumming up business, pitching and trying to manage cashflow.

Back then it was just after the “dot com boom” and many web people were licking their wounds after some spectacular failures. But there was a resurgence. Companies were coming through, browsers were improving, people were using the web more and more, and it was clear that there were plenty of opportunities to do a web startup and to build a business that was much more that “time for hire”.

I became interested in what was possible with the new technologies that were being released, and less and less interested in building “websites” with “About Us” sections.

Rails was suddenly a big thing. A lot of small agencies had been using Basecamp as a new way of working with clients, as had we, and David Heinemeier Hansson had been doing some work on taking their tech and open sourcing it. Whereas I’d been primarily been working with PHP up until that point, DHH had designed the 37signals stack on Ruby, a language that I wasn’t familiar with and that at that point was relatively unknown in web developer circles.

That was about to change when they released “Ruby on Rails” - quite a big name for something that was essentially a way of doing web applications using Ruby. I often think it would have been more helpful to call it “Rails on Ruby”, but that doesn’t sound right.

Rails was a big thing for me, and it flipped me out of agency life and back into where I’d come from, software. It’s what I studied at university, but for those years of 3form I’d become a designer, a manager and a sales person. I threw myself into learning Rails, battling with entirely new ways of thinking about how web applications could be done, and I distinctly remember telling a climber friend about what I was doing, referring to it as a “vertical learning curve that could almost become an overhang”!

If you’re unfamiliar with Rails, it’s a “framework” for developing applications. It’s often referred to, much like its creator, as “opinionated”. It makes various best-practice decisions about how things should be done, and through making these behaviours and/or design practices much more easy than working in any other way, it pushes you, as the programmer or designer, down a path of using various patterns to achieve what you want to make.

Rails was a big hit. It changed the way that things were made on the web, and for a while it was the shiny new internet technology that everyone wanted to be using to build apps. Including me.

It promoted concepts such as DRY (Don’t Repeat Yourself), MVC (Model, View, Controller), REST, Helpers (for doing simple tasks repeatedly), some pretty wacky (and now outdated) ways of doing things with Javascript, but in the main it was all about one thing - “Optimise for developer productivity”.

There was a certain joy promised in working in Ruby. The code even looked pretty. The process was supposed to be about “achieving flow” as a programmer. There was a certain Zen aesthetic about the language that borrowed from the language’s Japanese routes. I found myself learning Ruby using the “Ruby Koans”.

So I taught myself a little, and when the time came to pitch an idea for a startup I was ready to build it in Rails. Or at least, I thought I was. I was “back in the craft”, and of course, that brings with it all sorts of problems and opportunities.

But I was much happier day-to-day, and it’s shown in the work. The hacking I’ve been doing over the last five years has only come about through that decisive moment to get back to craft, and away from ”I’m an internet entrepreneur”.