Friday, February 6, 1998 by Dave Winer.
We had another outage last night. Right at midnight, just as I was finishing. I stopped on my way out the door and sat down for a minute to watch the web server scroll. I find this meditative, even after all these years, it's calming to watch people and robots from all over the world crawling my site.
Very quietly, no loud bang, all the lights went out, except for the servers and routers, which are battery-powered. The monitors went out. It became quiet as fans powered down. I could hear the drops of rain on the roof. The power didn't flicker. There was no indecision. It's as if my electricity went off just as my personal electricity went off.
When I came back this morning, the lights were on. I rebooted my servers, checked my email, got some coffee, turned on the music and started working.
Of course yesterday's piece got quite a bit of mail. There were two popular themes. One was the gender issue, why pay any particular attention to this case just because the condemned person was a woman?
I dealt with that part of it in Male Anger, in early January. No, it's not cool that we offer protection to women, and vengeance to men. Nonetheless I wanted to write about this because it was getting a lot of attention in the US. It was a chance to talk, when people are more open, more likely to listen.
The second popular response was about "you can't reason with me". I stand by it. Reasoning gets me one percent to my answer. Listening to my heart gets me the other 99 percent. Some issues in life are so complex that reasoning doesn't work. The answer is still available, but it requires that I let my intellect take a back seat. Sometimes it can be hard to hear what a heart is saying. But strong emotional situations make it much easier. Something is revealed. You can't reason with my experience, neither can I.
It's like saying it's raining outside here. It is. You can't argue with it. You may be able to reason with it at some level (why is it raining? when will it stop?) but you can't change it. Emotions and intuition work the same way. My opinions, of course.
Last week it seemed everyone was reading the essay by Eric S. Raymond, The Cathedral and the Bazaar. It may be one of the first classic bits of literature to be web-only.
I wrote a brief off-the-top-of-the-head response to the piece and posted it on my site on Monday. I got enough email to learn some more.
First, Raymond is a great writer, and thinks clearly. His rules are worth studying by everyone who hopes to make software, either as an individual effort or as part of a commercial team.
He does his development for free, with other people who work for free. I agree with part of his argument, in my experience, great programmers are great whether or not they are paid for their work. Lots of programmers say they want to get rich, but the really good ones do it for the juice of creating something wonderful to play with and to express themselves.
I think programmers are truth seekers, scientists who know how to ask questions and solve problems. Money doesn't make them tick. But read on, money *is* part of the programming world.
I've lived in a world of public collaborative programming for eight years, not a lifetime, but enough time to have learned some about it. In many ways our world is quite similar to the one Raymond describes.
From my point of view, it's no panacea. People come and go, as Raymond explains in his piece. If they decide to pass off, then progress might continue, depending on the quality of the work, and the commitment of the new owner of the code.
But the pass-off point can be a difficult time. Big pieces of functionality freeze while you wait to find out if the author is coming back into the loop. Sometimes when you ask for custody, they yell at you! I often back off when that happens. Or if you ask people to stay out of your way, they don't. And sometimes they ask me to back off, and I forget. Collisions. Flames. Anger! Human nature...
Also being the leader of a development community can be a mixed experience. People tend to give you a lot of their angst. The failings of the team or community are sometimes passed up the hierarchy. It gets old quickly, especially when you've already learned the lessons from the last generation, and a new one wants to take you thru it all over again. Sometimes I wish the superstars would just stick around to coach the new superstars on how to deal with me. [Mason, are you listening? Meet Preston, Seth, Matt, Jim, Bijan, Phil, and...]
Eventually, we learned it's our responsibility to make sure we can move forward. If we want our software to be used, we have to invest in usability. Software design issues become more complex when user interfaces appear. Matters of taste matter less, and the judgement of a designer must take over. Community is a very weak environment for tweaking a user interface to make it more accessible to new users. The community is already up the learning curve. The things you give to new users often break the systems built by the established users.
But I'm not giving up on collaborative programming. No way! I feel in many ways we're just getting started.
I've learned that people I've been able to rely most on are the ones I pay salaries to. I don't think this should come as a surprise. The net is wonderful, but it didn't change the economy. People still have to eat, and programmers in Silicon Valley can eat well if they shop for jobs. In other words, programmers can do work they love *and* make good money. Why should they work for free?
Sometimes teamwork is required to make something happen. That means people have to accept the judgement of someone else. This works better when the person making the call is paying the person implementing the decision. It may work other ways, your mileage may vary, I know at times it can be incredibly difficult to get people on a payroll to move. Just ask anyone who managed at Apple. Read Jim Carlton's book. No matter what, teamwork is hard to attain in the software world of the late 1990s. It's just easier if people are being paid. Maybe not all people, maybe not at all times.
As far as I can tell, all the software that's been developed in the Linux world which Raymond describes, is pretty faceless stuff. My experience is that the expensive part of software development is the user interface. Editors, browsers, dialogs, even runtimes, in the commercial world are deeper, more useful, more tuned, than the ones gathered around Linux. Maybe I missed something? If so, please send me pointers to bazaar-model software with complex, highly effective user interfaces. I want to understand how this really works.
My first reaction to Cathedral and Bazaar was pretty negative. I left it on the web, as-is, so you can see how my point of view shifted over a few days.
The people from the bazaar community can sound threatening to the ears of a commercial developer like myself, who has invested a lot of time and money in developing a big piece of software. That's just feedback. Now that I've had a chance to reflect (the power outages helped!) I see things a bit differently.
I'd like to see if we can get our interests aligned, so that our power can connect to their power and vice versa. We share an interest in having a platform without a platform vendor. To the extent that they have set up a system that operates differently from Apple's, Microsoft's and Sun's (and Macromedia, Oracle and AOL too), I wish them more power.
On the other hand, if a requirement to being friends is that I adopt their philosophy in total, the answer is no. That was Java's message. I'd rather take my chances with Windows, where the market is proven and the platform vendor will talk and listen to me, without forcing me to change my model, and (important!) where my software already works.
Part of what we do belongs in the world that Raymond describes, and part of it belongs in the commercial world. Where are the lines? With Frontier it's pretty simple, I think. Everything that ships with Frontier is on our side of the line. Everything that's available thru other servers and mail lists follows the rules established by their authors. They can choose to use any model they like.
In other words, we make our product, and we do the best we can to say what that is. There are huge places where we don't develop, where we don't have the people or money to develop. Those places are relatively safe. Then there are areas where we focus, like content management systems, and anything that relates to those areas being worked on by salaried people who are responsible to a company's management for producing results.
Our community is an incubator for defining these lines. We're at another transition point, it's an interesting time. I'd like to extend an offer to people to work with us not only as a software company, but as a community of users, of peers. People making products.
Even if we don't port to Linux, we can still acknowledge Linux by building compatibility bridges to software that runs on Linux. For example, we could partner with people who are working on content systems on Linux to build ways to connect to our software running on Windows and Mac.
I believe websites are LANs, not operating systems. If you can use a database on Linux that connects to our database on Windows or Mac, that's almost as good as having our software on Linux. We're looking for projects we can collaborate on to build and document these kinds of compatibilities.
Further, I've heard about a compatibility layer in Linux called WINE that allows Windows apps to run on Linux. Can we connect our communities to find out where the problems are in running Frontier 5/Win on WINE? Once we know where the problems are, we can try to work around them. WINE will get better too, because Frontier is a good test case for Windows compatibility, and it will get better at this over time. It's still early in the process so the task is probably not huge right now. And the sooner we get started, the sooner we'll deliver results.
This is a perfect community-to-community project. UserLand would be happy to support it in any way we can.
I guess what I'm saying is that even though we're not in position to produce a version of our software for Linux right now, we can start creating a friendship, and learn how our stuff can play better with their stuff, and keep looking at new ways to empower each other.
How does this sound?
I think it makes sense for the Linux platform to host a mixture of different kinds of development efforts.
Certainly Apache has been a huge success as a free development project. But I believe to make it to the next level, there has to be some really friendly colorful software that works reliably and that's easy to install.
I believe for that to happen you need to attract people who don't work for free. And to get them to work on the platform will require investors.
IBM is still pushing OS/2.
Sun is still betting on Java OS.
I think even Microsoft, with its anti-trust troubles could support a competitive OS. I think their support of the Mac OS has a lot to do with that.
Linux seems to have what other OSes don't. A committment to an open playing field. No ownership of the OS. Is it worth it for the software industry to take a detour to make sure something solid happens here?
It's not for me to decide. Look to the backers of the Kleiner-Perkins Java Fund for a clue to who might be interested in funding commercial-level development of apps that run on Linux.
Finally, Netscape, apparently, is shopping for someone to buy them. Perhaps, instead of disappearing inside another big corporation, Netscape could leverage its reputation for leadership in open software by becoming the corporate caretaker of Linux?
Maybe they could do this with IBM, Sun and Microsoft's support?
It's just a wacky idea.