Nate & Kristen’s Weblog

Professionalism vs. Amateurism

with 11 comments

Paul Graham is nuts. He is definitely one of my favorite writers. I would comment on his newest essay but I would just end up sounding like an idiot so I’ll just tease you with some excerpts. Make sure to read the full essay–“What Business Can Learn from Open Source.”

Business still reflects an older model, exemplified by the French word for working: travailler. It has an English cousin, travail, and what it means is torture.

This turns out not to be the last word on work, however. As societies get richer, they learn something about work that’s a lot like what they learn about diet. We know now that the healthiest diet is the one our peasant ancestors were forced to eat because they were poor. Like rich food, idleness only seems desirable when you don’t get enough of it. I think we were designed to work, just as we were designed to eat a certain amount of fiber, and we feel bad if we don’t.

There’s a name for people who work for the love of it: amateurs. The word now has such bad connotations that we forget its etymology, though it’s staring us in the face. “Amateur” was originally rather a complimentary word. But the thing to be in the twentieth century was professional, which amateurs, by definition, are not.

[...]

Actually, the fad is the word “blog,” at least the way the print media now use it. What they mean by “blogger” is not someone who publishes in a weblog format, but anyone who publishes online. That’s going to become a problem as the Web becomes the default medium for publication. So I’d like to suggest an alternative word for someone who publishes online. How about “writer?”

Those in the print media who dismiss the writing online because of its low average quality are missing an important point: no one reads the average blog. In the old world of channels, it meant something to talk about average quality, because that’s what you were getting whether you liked it or not. But now you can read any writer you want. So the average quality of writing online isn’t what the print media are competing against. They’re competing against the best writing online. And, like Microsoft, they’re losing.

[...]

The basic idea behind office hours is that if you can’t make people work, you can at least prevent them from having fun. If employees have to be in the building a certain number of hours a day, and are forbidden to do non-work things while there, then they must be working. In theory. In practice they spend a lot of their time in a no-man’s land, where they’re neither working nor having fun.

[...]

The problem with the facetime model is not just that it’s demoralizing, but that the people pretending to work interrupt the ones actually working. I’m convinced the facetime model is the main reason large organizations have so many meetings. Per capita, large organizations accomplish very little. And yet all those people have to be on site at least eight hours a day. When so much time goes in one end and so little achievement comes out the other, something has to give. And meetings are the main mechanism for taking up the slack.

For one year I worked at a regular nine to five job, and I remember well the strange, cozy feeling that comes over one during meetings. I was very aware, because of the novelty, that I was being paid for programming. It seemed just amazing, as if there was a machine on my desk that spat out a dollar bill every two minutes no matter what I did. Even while I was in the bathroom! But because the imaginary machine was always running, I felt I always ought to be working. And so meetings felt wonderfully relaxing. They counted as work, just like programming, but they were so much easier. All you had to do was sit and look attentive.

Meetings are like an opiate with a network effect. So is email, on a smaller scale. And in addition to the direct cost in time, there’s the cost in fragmentation– breaking people’s day up into bits too small to be useful.

[...]

And it’s true, the benefit that specific manager could derive from the forces I’ve described is near zero. When I say business can learn from open source, I don’t mean any specific business can. I mean business can learn about new conditions the same way a gene pool does. I’m not claiming companies can get smarter, just that dumb ones will die.

[...]

So what will business look like when it has assimilated the lessons of open source and blogging? I think the big obstacle preventing us from seeing the future of business is the assumption that people working for you have to be employees. But think about what’s going on underneath: the company has some money, and they pay it to the employee in the hope that he’ll make something worth more than they paid him. Well, there are other ways to arrange that relationship. Instead of paying the guy money as a salary, why not give it to him as investment? Then instead of coming to your office to work on your projects, he can work wherever he wants on projects of his own.

Written by Nate

August 23rd, 2005 at 10:41 pm

Posted in blogging

11 Responses to 'Professionalism vs. Amateurism'

Subscribe to comments with RSS or TrackBack to 'Professionalism vs. Amateurism'.

  1. I may be the only one who reads this blog in its entirety, so I will comment. I love this writer! The stuff about office hours is so true! My old job at the medical office came to my mind during and after every point this guy had about work. Now I realize why I hated it there the most- it was like a little machine that I had to pretend to enjoy. One of the doctors and the office manager always ran around buddy buddy with each other, having stern faces, making sure we were slaving away at our desks, and I swear that they were planning on a way to torture us employees. When we did have office meetings, the main topic was “we’re family here at ** Medical Group”, but then we figured it was to raise morale so that we would still like them after they fired one of our “family” the following day.
    Such bull crap.

    Kristi

    24 Aug 05 at 7:37 am

  2. OOPS! That comment was from Kristi, not from Randy.

    Hey….someone’s been on my computer account…..
    :-)

    Kristi

    24 Aug 05 at 7:37 am

  3. I love Paul Graham’s essays too; the ideal working conditions he describes here summarizes a lot about why I like what I do, because for the most part this is exactly how I work.

    In reading his other essays, I do have some disagreements with some of his opinions (specifically about languages like Java, and, to some extent, meetings), but I suspect that’s because I don’t think he’s done a lot of large-scale enterprise level application development.

    But, like I said, I do agree with most of his theories and I always enjoy the way he presents them. If you like these, you may also like Joel on Software if you haven’t checked that out yet.

    JaredB

    24 Aug 05 at 8:32 am

  4. I suspect you disagree with him because you’ve never written production code in Lisp. :)

    Nate

    24 Aug 05 at 8:40 am

  5. hey! i read the whole article. i love it when people who say what everyone already knows, but don’t know how to put it into wonderful witty words.
    java, lisp, applications…. whatever.

    ma ma j

    24 Aug 05 at 9:35 am

  6. Yes, fortunately I’ve never had to do any LISP projects. It’s not that languages like that don’t have their place, but even if I did have to a project that requires that type of language I’d probably choose Python.

    I don’t know of many (what I was referring to as) “enterprise level” complex applications done in LISP, and reading his bio it doesn’t look like he’s worked on any (or just didn’t mention them). I’m not bagging on him or putting him down, just giving a context for his opinions on programming languages. For the types of systems it looks like he’s worked on, LISP may have been an acceptable choice.

    JaredB

    24 Aug 05 at 5:30 pm

  7. I was just trying to make a joke at the fact that you think he doesn’t agree with you because he lacks the type of experience you have. Also, I really don’t know what you mean by “enterprise level complex applications.” Those are just buzzwords to me. You don’t think Viaweb, or creating a new programming language isn’t complicated or doesn’t have strict requirements on correctness, reliability etc.

    The last thing I would want to do is start a programming language war here. They are less fruitful than arguing politics and darn near debating religion. For me picking a programming language is formality that must be done but should have little significance on any project.

    By the way, there is plenty of very complex, very robust, mission/life critical software written in Lisp.

    Nate

    24 Aug 05 at 6:19 pm

  8. I agree with you on the issue of programming language debates. I knew you were joking; I was kind of joking too when I was saying I wouldn’t want to do anything in LISP. I certainly wouldn’t want to engage in a programming language war - type conversation, and I wasn’t meaning to start one.

    To clarify the “enterprise level” comment - First, I certainly am not putting down Paul (as I said before) or anyone else, really. What I meant by “enterprise level” is large scale, distributed systems with huge object models designed to manage and automate a diverse variety of business processes in a scalable fashion; the kind of N-tier application architecture where N is more than 2 (client/server) and sometimes is greater than 10. I don’t know of any business doing this type of system that isn’t doing it using Java or .NET. That isn’t to say that it wouldn’t be possible in LISP, Perl, Python, or C++, just that it isn’t economically feasible because it would take so much longer.

    I don’t mean to put down any other type of applications, or even to imply that “enterprise” apps are somehow more “complicated”, or have “stricter requirements on correctness or reliability”, or are in any way “better” than other types of systems. I was just pointing out that most LISP projects (such as those listed in Paul’s bio, including Viaweb) are designed for a very specific and usually fairly narrow purpose, often self-contained and running on a single box. To be crystal clear, I’m not saying that these types of systems aren’t incredibly complex and admirable, etc.

    In my initial comment, I was just noticing that the types of applications he’s done are very much suited to a language like LISP, and a very flexible development methodology that doesn’t require a lot of meetings, etc. and that some of his theories often reflect that type of experience. Not that it’s inferior to mine in any way.

    I have no doubt that there is a great deal of critical, complex, robust, etc software written in LISP, and I didn’t ever mean to imply that there wasn’t, or that it was a “bad” language in any way, only that it isn’t the best choice for certain types of projects. Viaweb actually isn’t that complicated, but I have no doubt that other LISP apps certainly could be.

    JaredB

    24 Aug 05 at 7:53 pm

  9. Alright, sometimes people use “enterprise” as a term for quality as well.

    I would submit that Java or .NET are chosen for the type of enterprise applications you are describing not based on any characteristic of their respective languages but simply because of the commercial support and user base. So I guess I agree that they are used more often because they appear to be a more “economically feasible” solution. However, most modern programming languages–all that I am familiar with–are truing-complete and capable of the exact same computation.

    I guess the system that I work on could be considered a enterprise application and it is written in a hodgepodge of languages but predominately in C. It also has many people working on different portions and while meetings often take up all of some peoples time formally defining precise interfaces seems to go a long way eleviating the need for programmers to sit idly in a bunch of boring meetings. It’s not like I have that much experience though, I’m still a green horn as a professional.

    Nate

    24 Aug 05 at 8:28 pm

  10. Ya, I know what you mean with the “enterprise” label, I will have to chastize myself later for overuse of buzzwords in this post.

    As for Java-ish languages (.NET is pretty much just a Java knockoff IMHO), commercial support is part of it, but I think it’s mostly the extensively tested libraries, etc. that are built to enable that kind of thing with support for distributed component architectures (like CORBA and its descendants, etc.) and mature application frameworks (like struts, etc.). I know other languages have such libraries as well (though not as complete), and that you can do OO-style programming in LISP, but it’s not a fundamental part of the design like it is in Java/.NET. Not that OO design is necessarily a requirement on such projects either, but if you want them to be maintainable and easy to work with it kind of is.

    That’s the kind of economic feasibility I’m talking about - having developers be able to spend more time writing business logic and feature-type code rather than having to write the underlying layers like you would need to with languages that don’t provide them.

    As you mentioned, proper up-front design is required for a large scale application, which is one thing I think I disagree with Paul on, since he seems to favor a more “agile” approach. If you have a large enough team (that is capable of doing it) then you can have architects attend the meetings with the business people that are necessary to form a good design and have other customer interfacing people that continue to meet with them while the developers themselves can keep coding.

    I don’t know much about the system you’re developing, but it’s my impression that generally large scale applications that are written in C these days are usually only doing so because they are running on embedded systems (or other specialized hardware) that mandate it, or that there is a lot of legacy code that already exists in that language. Out of curiosity, I’d be interested to know if this is the case with what you’re doing (but don’t say anything that would get you in trouble). If it’s the latter (legacy code base) without the former (no special hardware reqs), I would guess that there are probably already some people pushing for using a more modern language (at least C++!) just for the sake of productivity.

    JaredB

    24 Aug 05 at 9:49 pm

  11. Jared, I am really tired and just can’t muster up enough energy to respond. We’ll have to continue this conversation in more convenient setting. Sorry mom, I know you were following the conversation real close.

    Nate

    25 Aug 05 at 8:13 pm

Leave a Reply