Open source is a restaurant where everyone is a chef

Open source is a restaurant where everyone is a chef

Summary: If someone has an interest in programming for open source, Terry said, they don't start with beta testing, reporting bugs, flagging usability problems, doing all the pre-programming things that lead to a disciplined approach later on.


Michael Terry, a usability professor at the University of Waterloo in Canada, recently offered some quickly-misunderstood criticisms of the open source process to his fellow computing professionals.

(What's the logo of a cooking show doing here? I will explain.)

Terry's most cogent criticism was that students try to go right into writing code, and don't do the scut work that leads people gradually into the profession.

When my wife took her first programming job, almost 30 years ago, she didn't start right-off on programming. Her bosses had her learn the basics first. She read code, she tracked bugs, and she did design documents long before she wrote anything useful.

If someone has an interest in programming for open source, Terry said, they try to get right into it. They don't start with beta testing, reporting bugs, flagging usability problems,  doing all the pre-programming things that lead to a disciplined approach later on. Stuff that's boring but useful and educational.

Reading Mike Guzdial's recollections of Terry's talk, I began thinking of how people used to start out in restaurants. They washed dishes, they took out garbage, they peeled vegetables, they observed the pros at work before getting any opportunity.

Today they all go to culinary school and assume they should start on the line. They all think they can be on Iron Chef before they have the discipline needed to make a souffle. And as Iron Chef Hiroyuki Sakai once memorably demonstrated at the Culinary Institute of America, they can't peel an apple.

As with programming, cooking includes a lot of skills and attitudes that come long before service. Cooking is mostly cleaning and preparation. You maximize profit by breaking down food from its basic components, and then finding ways to use it all.

You can't blame America's undisciplined young cooks on open source, but it can amount to the same thing. There is a lot of scut work in creating a good program. There is a lot of process. Organization is required.

Just as a good chef must have their mise en place, a good programmer needs to learn quality assurance and the construction of design documents. It's not just about coding. A lot of people are impatient.

But is that the fault of open source, or a more general criticism of the culture?

Topics: Software Development, Open Source

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.


Log in or register to join the discussion
  • "Too many cooks..." (NT)

    John Zern
  • I agree John

    As the old saying good too many cooks in the kitchen. Or to many chiefs and not enough indians. Either way the point is the same everyone wants to cook and no one wants to do the tech documentation which is a usually how programmers are anyway also not everyone is a good/great at cooking so you have a quality issue. I am a FOSS user. I run ubuntu on my daughters netbook and my own. So i am not saying FOSS is bad i am saying that there needs to be better management. If you have good writer then write the help files/documentation for a FOSS application instead of coding it. Human natural is everyone wants to be in control and personally this is why i think FOSS is not as successful as it could be.
    • I agree. It's the trend with today's workforce

      everyone wants the "glory" side of the job, the one that puts you out in front, the "lead singer" as it were.
      John Zern
      • It has always been the desire of everyone to be on

        the glory side of the job, and there is nothing wrong with that. It's called
        ambition and produces greatness.

        The difference today is the successful indoctrination of entitlement so
        that many people think they DESERVE to be on the glory side simply via
        the fact that they are breathing.
      • RE: Open source is a restaurant where everyone is a chef

        You maximize profit by breaking down food from its basic components, and then finding ways to use it all.<a href=""><font color="LightGrey"> k</font></a>
  • Becoming an open source committer REQUIRES scut work

    Most major open source projects are managed as a meritocracy where it takes a lot of "scut work" like testing, submitting bug fixes, and community participation before being voted in as a committer.
    • You are right, Ken

      A lot of open source projects are run that way, and that's part of the FUD being deployed here.

      But many projects are hurting for help, and many open source programmers think they can leap into writing code rather than paying their dues.

      If you noticed I'm in favor of paying dues, in the kitchen as well as in the coding room. I'm a home cook, which is where I learned about cleaning and mise en place.

      Take care of your mise applies as much to programming as to cooking. My dear wife, who is an excellent programmer, taught me that well.
  • Before you can give orders

    you must learn to take orders.

    Before you become respected -- you must show some respect.

    If you would take, you must first give, this is the beginning of intelligence.
    ~ Lao Tzu

    The only way to have a friend is to be one.
    ~ Ralph Waldo Emerson
  • The problem solves itself when money is involved

    No one will do the boring stuff unless they are paid. No one
    will pay someone to do the boring stuff unless there's money
    to be made at it.

    Since OSS does not generate revenue, neither of the above
    happen. Which is why OSS is almost universally "me too"
    software stuck at version 0.8 and coded with "scratch an
    itch" mentality.
  • It's not a trend in today's workforce, it a FOSS problem

    Any other field of learning you have to pay you're dues. When I was doing my trade studies in Electronics, I started off washing overalls! but then I progressed to cleaning chassis, and doing basic repair work, and ofcourse allways the "tool bag carrier" for the experienced guy.

    When I learned programming, I started by learning Assembly code, and learnt it mainly by hand decompiling HEX listing into Assem Mnenomics, later progressing to writing code, but by that time, I had leant how to do math and count in binary, HEX, (decimal ofcourse) you would be surprised how quickly you figure out what the code is doing from a HEX listing after you've done some manual decompiling, you recognise specific instruction, and you actually see what is happend at the lowest register levels.

    But its a FOSS issue, if you're a plumber, brick layer, builder, electrician, technician or whatever you start at the bottom, and you work you're way up by learning off those more experienced than you, those people who have allready made the mistakes you are about to make, and can guide you and teach you.

    There is also an issue, that FOSS is an Amateur persuit, not a professional one, there is no real quality assurance system, nor can there really ever be an effective QA system. It's hard enough to get TQM established in a formal company, where you pay the staff to do what you say, to get a dispersed group of unpaid programmers to be able to work under the disipline of a QA system would be simply impossible. (truly trying to heard cats).

    In electronics (especially military, and commercial systems), if you cannot operate the equipment you are unable to fix and test it.
    therefore you need to be both an experienced operator, as well as a skilled and qualified technician/engineer. If someone drops a radar system in front of you and says "it does not work" (as the fault description this is better than most,,, usually it just says "US", for unserviceable.)

    But if you have a complex radar system and you are not fully able to operate it and all it's functions, there is no way you can fix it, it's as simple as that.

    where does a FOSS programmer learn the engineering disipline required to write accurate formal design and requirements documentation, what project management skills along with you're programming technical skills can you bring to the table.

    What experience do you have actually using the applications (in commercial environments) that you intend to work on.

    There issues are very important, and it's why FOSS is often critisied for looking like software writting by 'programmers' for programmers. I would go even further and say FOSS is largly written by Amateurs for themselves. The people who work on OO.Org or GIMP for example im sure have not spent alot of time with word processors or office application or commercial photo editing suites.

    Unless you can meet the professional standards that industry demands, (industry does not compromise for 'morals'). FOSS will remain with it's perception it has now, of being an Amateur or hobby persuit. Sure you can make money from hobbies, it's done all the time, but at some stage you have to progress from the Amateur ranks to the professional ranks, and that would require changes that FOSS would find impossible to achieve. (ie TQM procedues, engineering standards, and EXPERIENCED users contributing to functionality, to meet users needs and not developers needs.

    The fact is there are far more users of FOSS than there are developers, so the focus should be on Users not developers.

    It's also showing that FOSS programmers like to work on the sexy aspects of projects, but as has been shown here, the real hard work, requirements documentation, design docs, QA procedures, Testing, fault finding, bug fixingl, and Especially APPLICATION DESIGN is badly lacking in FOSS.

    Sure if you application does not require User interaction (like a web server) you can get away with it. But when you want to appeal to more people, and actual USERS, you need a change in mindset, that will not occur with FOSS.

    That is all without the argument, that commercial programmers are paid for what they create and sell, so there is great incentive to give the customer what they want, FOSS does not follow that most common of models, (providing goods for exchange of money) so it fails to gain financial incentive to create popular and USER friendly applications.

    It also seems that most foss developers are so infatuated with Microsoft, that they spend all their time and energy re-inventing existing products, distro's and fighting the "good" fight. (the old good against evil" that we are SO very tired of).
  • Dana, it's about time ...

    ... you get a clue about F/OSS, this year. At least install it so you can compare your rhetoric with some practicality.

    PS: Go take a look at how the kernel is developed. Now do you think they will take your submission? You still run XP, right?

  • Nature of the Beast

    FOSS is generally developed by someone(s) needing
    something that is otherwise unavailable, as they want
    it. It is generously provided to others as-is as it
    may provide a solution for someone else, for free.

    Corporate developers and development teams have large
    sums of capital to pay countless in-house coders,
    testers, QA, lots of upper and middle management and
    other 'necessary?' resource components. So, according
    to others, they can thus deliver a product for sale at
    a profitable return on their investment capital, that
    is superior and is exactly what every customer wants?
    Uh, really?

    Granted, some FOSS has a ways to go but much has truly
    arrived. The real world shows that many, many closed
    source apps are completely missing the mark, or any
    mark for that matter. So, what's up with that?
  • Actually, it's slightly worse that that...

    Imagine a restaurant where the food is free, but chefs make random dishes - in any style that strikes their fancy - often just completing one part of the dish and then leaving the garnish and side dishes off...

    The customers then come in and look around, looking hopefully for something kind of like what they want - and then take the dish back into the kitchen to add more stuff to it in the hope of getting it right.

    Often, by the time this is done, the meal is difficult to swallow and tastes very strange - it's thrown out and remade by the customer from scratch.

    Or, they'll pay the chefs to fix the meal and make it right - if they can get the chef to pay attention long enough to actually do what they ask. Often you ask for a side of fries and for some reason the dish comes back with cotton candy as a side.

    And of course, then the bill for the 'free' food comes to the table and it's ten times what they would have paid if they just went to the McDonalds up the street.
    • You had me until McDonald's

      There is a difference between a community-driven project and a corporation basing its business model on open source support, as I learned in my Drupal install some years ago.

      Unfortunately Aquia wasn't around then.
  • broad sweeping statements ..

    While many people may start there own smaller although maybe over ambitious projects, my observation has been that most people actually start with bug reporting and reading the code. Most maintainers for projects I am closer to (although I am not a developer per-se).. do not provide anything but read only CVS/SVN access until the developer has proven themselves by writing patches that conform to the projects style and have proven to be effective...

    To make broad statements like this without citing examples and referencing how the various Open Source communities work (each project is effectively a community in itself)... is simply poor journalism..

    I'm presently reading "Hell's Angels" by Hunter S. Thompson and I can see some stark parallels in the reporting of Open Source - FUD... No, I don't think that Open Source developers are chain grease covered outlaws - but these statements paint the picture of open source developers being cowboys..

    Sure there are many hacked together projects but the really serious ones generally have strict ways of working and some of the distros (such as Gentoo) require developers to have a long history of proving themselves before they are accepted as part of the core development teams and given responsibility for part of the OS.
  • Restaurant at the end of the Universe.

    I would equate the scism between FOSS and proprietary software, and applications to the car enthusist group.

    They take existing cars, and they will make modifications to it, they may drop in a Turbo charger, different carb, headers, molly pistons, and so on.

    They will go to car group meetings and tell the others what they have done, and what effects the modifications have achieved.

    Sometimes the modifications work, and you get extra performance, or sometimes they dont go so well, and you blow you're diff, or throw a rod.

    You're happy to spend a great deal of time tinkering with the car, and turning the engine, trying different things and seeing how it goes.

    You're just as happy with you're head under the hood, as you are on the road.

    Most people, just go out and buy a stock standard car, one that everyone else uses, keeps it exactly stock and has no interest in working on it, or even changing the oil. If something goes wrong with it, they will call a service person to fix it.

    But that does not mean the person who uses a stock standard car is a bad driver, they may be able to drive better than many of the car enthusists.

    They may even be expert drivers, or racing car drivers, and still have little interest in pulling out a shifter and ripping the head off.

    There is nothing wrong with having an interest just operating you're car, and getting practical use out of it.

    there is also nothing wrong with being an enthusist and spending you're time tinkering.

    But, tinkering, is not driving, it's not getting the job done that the device was intended to perform.
    It's the product on the efforts, that is of practical use. If that product is an improvement in an area that you find necessary.

    ie. the average stock standard car driver, probably does not need a twin-turbo, small block 357, with nitros injection. That needs to be striped down and rebuilt every 6 months.
  • RE: Open source is a restaurant where everyone is a chef

    Great!!! thanks for sharing this information to us!
    <a href="">sesli sohbet</a> <a href="">sesli chat</a>