Date: Wed, 19 Feb 2003 09:00:16 -0800 From: Terry Lambert <tlambert2@mindspring.com> To: Paul Robinson <paul@iconoplex.co.uk> Cc: chat@freebsd.org Subject: Re: Open source (was RE: Hi!Dear FreeBSD!) Message-ID: <3E53B820.BC50E3AA@mindspring.com> References: <IPEDKJGCDFHOPEFKLIDHGEJGCCAA.paul@iconoplex.co.uk>
next in thread | previous in thread | raw e-mail | index | archive | help
Paul Robinson wrote: > OK, I've moved this over to -chat where it belongs more than -hackers, > trimmed the CCs, and turned this into a bit of a rant. For those just tuning > in, Terry thought it would be a good idea to write a full-on GIS map > rendering system so you could find your local user groups in a cool way. This grossly misrepresents my position. My position is that there is no software to provide this service, and that people who want this service should write such software, if they truly want the service. The problem with demands for a particular service while ignoring the existance of enabling infrastructure should be obvious. Maybe I should have said "Send Patches", like everyone else does... > That's besides the point. Apologies for length of mail, but be thankful this > is now only 35% of the size it was going to be before I trimmed it - I had a > fun lunchtime! :-) 8-). > Terry Lambert wrote: > > > Sure, if you'll let me point out again that the original poster > > wanted the maps to be clickable. 8-) 8-). > > GIS != Imagemaps. :-) Little imagemaps have to come from somewhere. The active regions, when clicked, also have to be converted on the basis of known map coordinates relative to the image, which is in turn, relative to the image type. Imagemaps don't really cut it, I think. > > FWIW: the important gateing factors on any Open Source project are: > > > > 1) Motivation (a problem to solve, that people can agree on) > > You don't get paid for OSS work, so you'll work on what you feel like, and > only when you feel like it. This is completely reasonable. At the moment I'm > working with somebody on a proposal for taking over the competition at > the5k.org and the one thing we're trying to avoid is filling it with > bureaucracy simply because to do so would bring it to a grinding halt. We > deal with that rubbish all day long - we don't need to do it all night long > too. :-) The idea that motivation boils down to "what I feel like doing today" is an oversimplification. Anyone who has seriously followed the travails of the FreeBSD project, or any of dozens of other successful projects, must be aware of this: there is a cost to cooperation, and it must be paid by the participants, in order to obtain the payment they are seeking. Whether this is ego gratification, or some other form of payment, the transaction involved is always one of simple economics. One commonly (and cynically) cited payment is "ego gratification". While there are some people in the FreeBSD project motivated by performing almost purely mechanical modifications of large numbers of files, in order to get their login name on the most recent CVS stamp and in the $Id$ tag of source files, this is not, I think, the primary motivation for most of the project participants. This really has nothing to do with bureaucracy, or the lack thereof: process is necessary in terms of establishing feedback systems for any project or business, but process is not the product (with rare exceptions, such as Microsoft, USL, or IBM). The goal is a system of self-regulating, homeostatic systems, which can maintain an equilibrium point for an extended perio of time, and which then self-correct from preterbations, back to that, or another stable point. You would be hard-put to simply design a new set of systems, and simply "throw the switch", and have the new organization spring, full grown, from Zeus's head, and be successful (you can do this with "for-pay" organizations, but not with volunteer projects, unless you control a sufficient number of the participants; every merger-and-acquisition does this, usually to an extreme degree). If you are truly going to attempt this, with the blessing of the present project participants, then you must be prepared to identify all the equalibria points between the current state and your target state, if you aren't going to lose people over the discontinuities. In a "for pay" organization, you have money as a motivator; that is, you have voluntary participation, with economic exchange for such participation. The amount you can change your organization out from under the participants is *much* higher in a "for pay" organization, since you have an established means to make up margin, and you have a very large margin to begin with. Participation in a pure voluntary project has economic payment, too, but the margin is much, much smaller, and it is self selected by each participant. While you can group almost all participants into rough categories, which permits you to adjust rewards on the basis of each participants wants, you do not have the leeway for change that you have with a "for pay" organization. > > 2) Working code (something that comes close to solving the > > problem, or from which people can see a solution) > > This is critical, and is the reason why we're now seeing more "mainstream" > applications like OpenOffice appear on open operating systems. If you don't > have a decent framework that is easy to work with, it's perceived to be too > risky to try and build something on top that is relatively complicated. > Also, companies are starting to realise that giving away code is not the end > of the world. OpenOffice is a different phenomenon entirely. It is a copy of a commercial product, with very little in terms of innovation. For example, after the use of controlling access to support, training, and documentation as a means of copy protection in the late 1980's and throughout the 1990's, to pick up my prior example, it would be incredibly foolish to embed these requirements in future work. What kind of idiot would create a word processor that required documentation, without some overriding business/systems need for a need for someone to provide it? What is so incredibly hard about merely the *idea* of word processing, such that this should be necessary? One answer is that software vendors have marched up market, following the pattern recognized by Clayton M. Christensen on "The Innovators Dilemma". In other words, they are able to successfully defend their existing market by way of increased complexity, and the inability of Open Source equivalents to manage complexity. We see this in the use of "embrace and extend" tactics, and in the pushing of increasingly (and technically unjustifiably) complex standards through the public standards processes. > > 3) Community (communications and peers to provide a context in > > which the work can take place) > > Or in the case of some mailing lists around here, people scream at each > other... That is a matter of control of the feedback systems. There are a number of ways that this can be managed so as to damp out disruptive influences which do not lead to information exchange and/or other means of progress. Control of SPAM and trolls has and will continue to stay ahead of the value curve for any forum supporting a successful project. This is definitional. > > A lot of people have #1, so they declare a Source Forge project, try > > to cookie-cutter #3 (impossible to do), and leverage having #1 and #3 > > into someone creating #2 (also impossible to do). > > Indeed. Sourceforge is littered with the debris-like manifestations of good > intentions. Source Forge is, to my mind, a failure, which has arisen from a fundamental understanding of mutual altruism networks. One could make the same case for GPL, which attempts to build enforced altruism networks. Much of this misperception comes from sources such as "The Cathedral and the Bazaar", which have a fundamentally incorrect model. > > As a matter of fact, I claim that, given any #2, I can *find* #1, > > and *create* #3. > > What you're saying is that projects are easy to bootstrap if there is > already a decent chunk of code in existence. In other words, it's easy. This > does not take into account the fact that at some point, somebody, somewhere, > has to have the vision to come up with something genuinely new, recognise > it's difficult, and go ahead with it's implementation anyway. No, actually, you have to have working code. If "a decent chunk of code", Mozilla would not have screwed itself so thoroughly, and the Net/2 release would have been sufficient for BSD-based Open Source projects to have popped up everywhere. Yet Mozilla *did* screw itself, and BSD-based Open Source projects all waited for the trigger of 386BSD and the working code it provided. The problem is the nature of the people involved in volunteer projects. Outside an academic, or sometimes corporate, research setting, where a small team is paid to look into something useful or innovative, there is little or no motivation to to attempt the difficult. Instead, your pool of volunteers is made up of people who like to tinker, and are not satisfied with the way things are, but those people generally have no great leadership skills or vision of a future that they are then prepared to work hard at making real. You don't really get a lot of innovation in Open Source projects, once they hit a certain level of organization; instead, you get an initial impetus, and then a lot of drift, with occasional infusions of brilliant work by lone innovators or small teams (usually academic) who care strongly enough about their ideas to fight and win against incredible opposition by inertia. > Some examples: > > - A decent Visio-like program for X. The current bunch that try to emulate > it don't cut the mustard > - Something like Macromedia Stuido MX - Quanta just doesn't get there at > all. > - Here's a radical idea: a compiler that is command-line compatible with gcc > but is available under a BSD license. Then, all the GNU stuff to be > re-implemented under a BSD license. OK, this is a politcal point, but there > is value there. > > These things will get done one day, when somebody is either paid to do it, > or has the guts, conviction, time and motivation to do them. Not really. They won't get done, or they will get done to spite someone making a statement like this one. The first two won't get done because Open Source is inherently incapable of prodcutization. The people you see involved in Open Source are programmers, who are frustrated with their lack of control. It's either control of the design, control of the features of software already in hand, or control of what they perceive as quality. In each case, these are things which they are denied by their employers in their "day jobs", because, being engineers, they do not have a shared sense of esthetics with the people who employ them. Even so, having an offended sense of esthetics does not imbue one with "good taste". It doesn't take more than a mediocre engineer to be offended at having to perform a "quick and dirty hack" to get a product out the door, with a management promise of "we will revisit the problem and correct the implementation later". And a mediocre engineer will not create a brilliant design, they will only create a mediocre design. The third thing may or may not get done. As you rightly point out, it's a political issue, and politics is a stronger motivation than ego: with ego, all tha's necessary is that you win; with politics, it is also necessary that someone else lose. You invest doubly in politics. But in general, issues like this are not relevent to the enlightened individual, if they are recognizable as tactical, and not strategic. Do I personally care whether FreeBSD use GCC? No; it's a tactical technology: it has no strategic value. For that same reason, I did not try to argue Andrew Tridgell out of putting the code I browbeat him into releasing under a BSD license: today, SAMBA is under the GPL, and is unlikely to ever spawn a BSD licensed equivalent for a myriad of good reasons, all having to do with being able to motivate the people donating their sweat equity to the project. The point is, you come closest to motivating project like this with political rhetoric, yet almost all motivation will fall far short of incenting a project. It is not enough to declare a project. You must lead. And the way you must lead is through already working code, because few of the people you attract will be more than information age tinkers. > > That sounds like most modern commercial software, to me, since it's > > got legacy design factors from the 1980's/1990's causing it to need > > documentation, support, and training materials as part of the (no > > longer relevent) copy protection systems that grew up around the > > software developement process. > > And of course, FreeBSD has no legacy factors in at all! :-) That might be > unfair, as pretty much everything that is important has either undergone an > evaluation and change, is going through it now, or is penned in for it soon. > The real problem with projects as complicated as say FreeBSD or Mozilla is > that there are occasions when too many cooks turn up. Complicated things are > those things most cooks don't understand, simple things they do, therefore > we get "bikeshed syndrome". How many analogies can I mix up? :-) Too many? 8-). The real issue with management of complexity by groups of tinkers is that it's not going to happen in such a way as to make things work, except by accident. For FreeBSD, Julian Elischer has been one of the primary forces that has, historically, pushed technology into the project. My SYSINIT() code, Netgraph, the existance of SCSI drivers, and now KSE, as well as dozens of other major and minor technological advancements, owe their existance in FreeBSD to Julian Elischer. But Julian is an exception, and it has cost him a lot of accumulated captial, in many ways, to push these innovations forward against strong opposition by the unenlightened tinkers, who see all such changes as non-reversible risks: a tinker operates by doing something small, which can then be undone, if it turns out to have been a bad idea. There are other people I could use as examples in this regard, but Julian is probably the best, and will, I think, be least offended by being held up to scrutiny. > > Seriously, it took a *lot* of skill to come up with the first Word > > Processor that needed documentation for people to be able to use it > > ("PC Write"). The author, Bob Wallace, said at one convention where he > > spoke, "Software...", gestured expressively above and to the sides of > > his head, "...is all up here. I sell manuals.". > > Yeah, I can see that. Makes sense in the context of a 1980's software > market. It's not the case any more though. Last night I read a book by an > ex-Microsoft employee named Andrew Barr entitled "Proudly Serving my > Corporate Masters". It's a bit tongue in cheek, but he does raise a good > point: Microsoft has this paradigm engineered into its genes, and so does any company that writes software to the Microsoft genome, and any company that copies Microsoft or one of those companies, either to cross a platform chasm, or to try to be "first to be second" in the market dominated by one of these players. In a lot of ways, Jeff Raskin is right, and still no one is listening. In two of your examples of products that you think should/will be written, you yourself fell into this trap of cloning from bad gene stock. > MS is split into three groups who are responsible for developing and > delivering products, whether that be Windows, Office, MS "Bob", whatever. > These are Program Managers who write specs and listen to users, Developers > who take the specs and write the actual code, and Testers who take the > Developers code and break it as much as possible to make sure the code is > stable. This is the myth of "Code Complete": by breaking this down this way, you build a process that is capable of having a crank turned, and when it is turned, out the other end of the machine comes something that is identical in philosophy to the things which are already out there, and selling well, and therefore you think your thing will sell well, too. At a former employer, there was an engineer who believed in this philosophy so completely, they wanted everyone to accept Steve McConnell as their personal saviour. An excellent engineer, but they could not understand my reluctance to join their religion, because they saw everything in terms of process: for them, the process *was* the product, and any business was just a side effect. It was very much like being back at USL. > Barr's point was that in the early days, Microsoft was developer-orientated. > Developers got to choose what products they would develop and how they would > be developed. The products produced were great for a certain class of > individuals who could think the same way those developers did. The result > was MS-DOS. Barr thinks this era came to an end when MS Windows 3.0 was > released. From that point on, the PMs took control and user interests > dictated the direction of the company. User feedback became king. As a > result, we got Win95 (yuk!), then WinNT (better), then WinXP (getting > there), and the track will continue - they are realising now what Apple did > in the early 1980's. He predicts this era will come to an end soon though, > and it will be the testers that become dominant within the cycle. They will > be determining when a product is ready to be released, not the PMs. It would be interesting to see this, but I doubt he's right. The Windows developement paradigm is 1980's-loaded to ensure that there is an investment in end-user training, such that there will be a cost associated with moving to another platform. Microsoft gets you coming and going: there is a cost in training for Microsoft products, and there is a cost in retraining for the new platform, because the new platform has emulated the Microsoft barrier model. I'd like to hope that this is accidental, but in my heart, I believe it's because it's ingrained into software design philosophy, all the way to the first year in colledge, or even high school courses. One piece of evidence for this is all the people who've never seriously studied CS, some of whom have never attended any college at all, who all believe that they are God's gift to software engineering. You see this sort of person posting place like "Slashdot" and other developer forums, where you get a semi-illiterate rant, full of pool spelling and shortened versions of English words. The worst part of it is that they believe that they are communicating their point effectively and persuasively because all their IRC buddies are posting followups with the same poor grammar and spelling. I expect that these, and other obstacles, mean that the testing departments will never have final signing authority on product releases, and that if they did, the products that ended up being created through that process, would meet neither user expectations, nor corporate sales goals. One question that you should ask yourself on this is "Why do people buy new versions of Microsoft products when they already own the old versions of these products?" The followup question to that is "Why, if product developement is changed to a fully user and quality-centric model, would people continue to buy new versions of these products?". If you can't answer the followup question, the you've just validated a business reason for not changing the model. > With Open Source, we've seen a similar cycle. In the early days, dev effort > went into the kernel, drivers for equipment that developers had lying > around, programming tools, mail clients that worked great for people like us > (mutt! yes, I love mutt! My Mum wouldn't have a clue though), and so forth. > Then, people started wanting to get their parents, their bosses, the sales > guy downstairs, the guy at the grocers, everybody, to start using the > software. But these people don't care about how cool the virtual memory > subsystem is. They don't care about KSE. They care about being able to send > e-mails easily, surfing the web and sending a letter to Auntie Doris. We're > now on that bell curve. This isn't really true. People will be able to sell Late Adopters, given this model, and given a huge investment in training and support (the Open Source alternative to employing gifted people with English degrees to write documentation). The current investment a new user makes in learning the Microsoft usage paradigm is $2,500 per seat. That's the barrier to entry for Open Source, unless it copies all of everything exactly. Selling the Early Adopters might also be possible; you sell the early adopters on *precisely* things like "how cool" and "KSE". To do this, you have to compete with industry buzzwords, like ".Net", "Palladium", and so on: the things which might mean a change in the way things are done, entirely. But these groups together comprise a tiny portion of the total bell curve, and you aren't reaching the mainstream. You can't. The value proposition for the mainstream is whether or not they can hire a temp for a week in accounting, and that person will be able to use the tools in place, without needing training. > The problem is (and yes, it is a severe problem), the developers will always > be in charge and dictate the direction and therefore the usefullness of any > system. Take for example the recent debate as to whether core should be > reformed, over on -chat. Without wanting to go over that again, the > developers insisted they were completely in charge and nobody had a right to > say anything about anything unless they were submitting diffs. THAT is the > reason why ultimately Open Source will fail: it's not in any developer's > interest to listen to the requirements of those individuals who do not have > the time, expertise or motivation to implement something themselves without > the developer receiving some other gain (such as money). This is reasonable, > but unless another way of working can be found, users will start walking > away. This brings me back to my earlier discussion of margin. There is only so much distance you can move from an equalibrium point on your way to the next one, before you hit inelasticity in the economics. Good luck on "the5k.org". I think you will need it. But change is possible, if you chart a true course. Originally, there was just "the core team"; it self-assembled out of the people doing the "386BSD 0.5 Interim Release", based on the people to whom I handed off responsibility for unofficial patchkit (Jordan, Nate, Rod, et. al.). Then it was self-perpetuated, by internal nomination and torch-passing. Then it went to pure internal election. Now it is election by the larger community of committers. This was a (more or less) natural progression, and it took time to overcome the economic elasticity. Even so, certain people whose threshold was exceeded for "too long" have fallen by the wayside as a result of these transitions of power. But it hasn't been the bloodbath it would have been, had the switch been attempted over night. > There is all the cultural stuff as well, but that's more orientated to the > Gen-X idealism of how licensing should work. In the end, that'll fall on > it's face too, but that's for another day. This mail is long enough already. > :-) Culture actually has very little to do with it; selection of participation based on license is one thing that needs a relatively high degree of familiarity with the issues to make a decision on. Most people end up conforming their views to the community, rather than selecting a community on that basis, in my experience. 8-). > Anyway, now I've put this over onto -chat, I'm sure this will evolve into a > nightmarish thread that will continue ad infinitum. You can only hope... ;^). -- Terry To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-chat" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3E53B820.BC50E3AA>