I have been watching an episode of American Chopper the other day. I must admit that I am a bit of a fan of this show – not necessarily because of its main plot premise of a clash of personality between the father and the soon (which is rather cheesy and quite clearly badly acted instead of real), but rather because I like watching “how stuff is built” - in this case, how you can build a gorgeously looking motorcycles from the rusty pieces of metal, using not much more than a set of rather primitive tools.
It was an episode where the guys at OCC bought themselves a super modern, computer-controlled metal-cutting machinery of some sort. At the same time, they had to resort to making order with some misbehaving part of the motorcycle being constructed by whacking it hard with a big hammer.
Watching this show got me thinking: this sort of work is very similar to what I am doing every day creating software. I always cringe when I read somebody likens software development to a factory line. Even if it is an “agile” factory line – like the Toyota Production System, which a lot of people in the agile community hold in such a reverence to that they almost pray to it daily. Because, you see, software development, in teams big or small , organizations huge or microscopic, is always a chopper shop rather than a factory.
The dynamics of what we do is that of a craftsman at OCC or some other chopper shop – we use our skills and creativity to create custom products – each of them is different that the other, no two are alike. We do not create everything from scratch – we do reuse standard components obviously, just like they use standard engines and standard tires. But we put them together so that they become something new and (hopefully) exciting every time.
Now, the factory line is doing something entirely different – its sole purpose is to produce repeatable products, as similar to each other as possible, as fast as possible and as cheaply as possible. A long time ago during my high school days, I had a summer practice in a TV set factory. I watched with admiration how the factory line worked, it was pretty amazing even some twenty five years ago – but I can see no relation in a factory line to what I am doing right now as a software developer.
Now, what are the practical consequences of realizing that your team is a chopper shop? It makes you realize what are the most important thing you should put emphasis on. It becomes obvious that the quality of people is essential for your success. Tools that we use are not all that sophisticated and pretty much every team can afford the best ones available. Same with processes. They have to be simple because they invariably break down when you over complicate them. Nothing to it really – you should not believe when somebody claims that the successful software organizations use some awesome tools and methods – no, they use standard, if not sub-standard ones. It is all in the people, their skills, their talent, their dedication. Often times people with clashing personalities, ego trips, personal problems. Not ideal, not saint, not necessarily disciplined. Still, they are the most important ingredient what makes or breaks the success of your projects.
Additionally, you start to see “waste” in a different light. It is not necessarily a bad idea to spend time and effort on some task, only to decide to throw it away later. In one of the episodes of the American Chopper, the crew decided that the fuel tank they have been working on, does not look “cool”. They “wasted” two days on it. But they decided to redesign it from the scratch anyway, even with a deadline approaching. There was no big fuss over it – it was just the way things are when you try to be creative: there is a danger that your brilliant ideas you may have may prove to not work in practice. But you have to try them anyway, because otherwise you have to resort to safe, but uninspired and uninteresting solutions that nobody cares about. OCC would not sell a single chopper if they all looked like Yamaha or Harley-Davidson ones. The whole point is to produce something that is unique.
| Attachment | Size |
|---|---|
| chopper.png | 67.6 KB |
Comments
Post new comment