Sunday, April 8, 2007

The Casino Or The Beauraucracy

One very unusual thing about my career is that I didn't start out to be a programmer, but a graphic designer. There are tons of people who take this route into coding HTML, that's a very common thing, but not nearly as many who go on to build enterprise apps and learn Smalltalk.

So this kind of gives me an unusual perspective - especially when it comes to marketing. The culture of programming often contains a great deal of contempt for marketing, but the culture of graphic design has more respect for it. Consequently, one very unusual thing about my own reading is that I seem to read many more books on marketing than the average programmer.

Sometimes I'm embarassed to admit it. There are a lot of programmers who scorn the whole idea of marketing. But there are other programmers who don't, and it seems to work for them.

One thing I'm sure of, geeks need marketing. Especially in a world where everybody swears blind that a great programmer's work is 10 to 1000 times better than an average programmer's, and some people even have the research to back it up - but the only way for a great programmer to make 10 to 1000 times more money than an average programmer is for that great programmer to start their own company and become a great businessperson as well (or instead).

Any other field, the idea is 10 to 1000 times better work should mean 10 to 1000 times more money. Picture what the world would be like if extras made as much as movie stars. There are plenty of programmers out there, in larger, more beauraucratic organizations, whose main contribution is essentially to walk on stage and stand in the background for a while. There are also dedicated, passionate programmers who carry the weight of entire companies. Sometimes the star gets paid more than the extra. Sometimes not. But never by an appropriate multiplying factor.

It's a serious flaw in the culture of technology. It's probably also the main reason venture capitalists are still around. Last year's SXSW podcasts had a definite theme: with free open source software and cheap commodity hardware, venture capitalists are no longer either necessary or useful, and in some cases they're actively destructive. But the VC world did not disappear overnight; in fact, nine out of ten Rails jobs seem to be startup jobs. There's a certain degree of irony there.

The connection is that people think the only way for a programmer to make a lot of money is to join a startup and get lucky. Alternatively, you can conform to a corporate mold, and be stuck with a predictable series of pay scales. You get this insane 1950s theory that two programmers with X years of Y, where both X and Y are equal, are therefore equal cogs for any given machine. This is of course stupid, so many smart programmers opt instead for the VC system. But the VC system was developed from the 1950s to the 1980s to support the massive infrastructure and complexity required to start technology companies in those eras, and that just isn't even relevant in 2007. That world is gone forever.

What many programmers have to face down is this very toxic false dichotomy: either VCs, or a corporate job - which is to say, either the casino or the beauraucracy. People who say you should skip the casino and the beauraucracy, and opt instead for good, solid, sustainable businesses, have remained a vocal minority.

The future possibility, however, is that VCs are becoming dinosaurs, and small teams building great software on the side is the real shape of the future. 37 Signals, Facebook, and Digg - initially built by an Elance PHP developer for $11 an hour - all provide pretty strong examples of what that future is starting to look like. Likewise, the extraordinary power and flexibility of open source technologies makes the conservatism and inflexibility of large beauraucratic systems more of a weakness than ever before.

This doesn't mean that either the casino or the beauraucracy will be destroyed. It means a third alternative has already emerged. This third alternative is already attracting geeks with above-average marketing savvy. It's already creating its own Internet celebrities.

1 comment:

  1. The reason geeks don't understand marketing is they (I should speak for myself) don't understand business. Consumers are interested in what a technology can do for them, a better mousetrap that they know or feel they need. They're not interested in the fact that you solved a puzzle, or geeked out on a project that was like nirvana for you (not speaking of you personally, Giles).

    I think us geeks relate more strongly to project objectives than business objectives. I've dealt with business managers that really have two things on their minds: Can we sell it at a competitive price, and can we make money with it. The technology is "just a box". They don't understand it, and it's only important to them if they feel they can make a profit with it. I'm all for profits, but I've been in the situation before where I've wished that they would understand my end of things more.

    Geeks tend to not think about this stuff at all. They're thinking about what's the best/most efficient algorithm. What's the best architecture. Can I get this to work. They're somewhat responsive to schedules, though they take the attitude that "it's finished when it's finished", which is just being realistic; and they're less responsive to budgets. I know, because I used to chaff anytime the subject of the project's budget came up for discussion. I really didn't want to have to think about it. I've since adjusted, but the business side of things still makes me uncomfortable sometimes.

    I think that's one reason I'm always looking for efficient technologies for accomplishing something. I hate being asked for an estimate for how long a project will take, and then being surprised with how long it actually takes, and going over schedule and over budget. I feel like if I have the more efficient technology to work with, I can spend more time on developing the idea than on getting the computer to execute it. That's where I want to be. This is a gross exaggeration, but it's like I want to be able to take the customer's idea and then say to the computer, "Make it so", and it's done. Of course if it were that easy then the customer could just do it without me as the middleman.

    As for me, I wouldn't mind the predictable paycheck. What I love is the creativity of software development. What I don't like about the "bureaucracies" is they typically choose inefficient but standard technologies, and they don't get the disconnect of why it costs so much to produce a product, why they constantly overshoot their estimates, and why some/most of their projects fail. They have a tendency to lack an inspired, creative atmosphere as well. They are bureaucracies, after all.

    I wouldn't say I shun marketing, but I'm wary of it. I have the geekish tendency to want to be precise, accurate, truthful, and complete. Most people just want me to get to the point and not talk their ear off.

    I've seen the effects of marketers who practically run a business. It's horrific because they have no concept of how much work is involved to get something done. They'll promise customers the moon and blame the developers for not delivering it. I think that's where the disconnect comes in for geeks: marketing feels dishonest, unrealistic. It feels like it has no real relationship to what they do, and in a way this is true. Customers don't understand the technology the way we do. I heard this from a coworker years ago that summed it up nicely: "What we do is indistinguishable from magic for most people." This is a difficult concept for most geeks to fully grasp, including myself. The people who use your software can have a very different understanding of what it's useful for than you do. They may even think it's totally useless, even though it does something that would normally be complicated without it.

    I personally am trying to get to a point where I can relate as much as I can to what users/customers want out of technology. I love it when something I've written is useful and appreciated by those who use it. The sweet spot for me would be to use technology that's effective enough and efficient enough to produce what the customer wants in a timely and cost-effective manner, and pleases the "programmer side of me" at the same time.

    I guess I should try viewing marketing from the standpoint of communicating an idea. It can be honest and truthful, just boiled down to something that "mere mortals" can understand and appreciate.


Note: Only a member of this blog may post a comment.