Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming Businesses IT Technology

Open-Source Development 'Faster, Better, Cheaper' 150

David Hart writes "Faster, Better, Cheaper: Open-Source Practices May Help Improve Software Engineering -- Walt Scacchi of the University of California, Irvine, and his colleagues are conducting formal studies of the informal world of open-source software development, in which a distributed community of developers produces software source code that is freely available to share, study, modify and redistribute. They're finding that, in many ways, open-source development can be faster, better and cheaper than the 'textbook' software engineering often used in corporate settings."
This discussion has been archived. No new comments can be posted.

Open-Source Development 'Faster, Better, Cheaper'

Comments Filter:
  • Whoops! (Score:5, Funny)

    by Space cowboy ( 13680 ) on Saturday December 06, 2003 @09:21AM (#7647035) Journal
    I think a better strapline could have been thought of - this was the same as NASA's, yes ? At least sufficiently similar to attract attention, and then it all went pear-shaped...

    Consipiracy theorists will no doubt don tin hats and say it's all a front to associate Open Source with bad karma :-)

    Simon
    • Re:Whoops! (Score:3, Insightful)

      by t0ny ( 590331 )
      They're finding that, in many ways, open-source development can be faster, better and cheaper than the 'textbook' software engineering often used in corporate settings

      When big companies use Open Source, the pointy-haired boss is the real winnner.

    • Re:Whoops! (Score:3, Funny)

      by flewp ( 458359 )
      Hey! I'm not a conspiracy theorist, I just have the tinfoil on my head because I went as Jiffy Pop for Halloween and just haven't taken off my costume yet!

      Don't you dare associate me with those crazy conspiracy theorists!
    • Hey, will this net me a nice red line, or just a coupon-book for Pretzels?

      Fuck money, I don't rap for dead presidents. I'd rather see the president dead.
    • Yea, somewhere as he read that tagline Dan Goldin had an orgazm.
    • Yes, it was NASA's tagline as well, for a little while. They've since stopped such nonsense, as sending equipment into harsh environs with no redundancies is more costly than just being prepared.

      I wonder if the "Faster, Better, Cheaper" philosophy will work any better here.
  • surprising? (Score:5, Insightful)

    by tomstdenis ( 446163 ) <tomstdenis AT gmail DOT com> on Saturday December 06, 2003 @09:24AM (#7647040) Homepage
    Textbook soft.eng is about making money and how to prevent from being sued [e.g. you do what you agreed todo].

    While OSS development [well freelance stuff anyways] tends to be more about actually getting work out the door. Don't like this particular OSS, fix it or find other stuff. E.g. no pandoring to stupid demands of market droids.

    Tom
    • > no pandoring to stupid demands of market droids

      Actually, I've been noticing much more pandering in recent times. Not neccesarily to market droids, but much the same nonetheless.

      Many projects shift focus significantly because some random thing isn't popular with the end users. I don't think this is usually bad, but it has caused some occasional problems.
      • Re:surprising? (Score:1, Interesting)

        by tomstdenis ( 446163 )
        True. In the end most projects turn into what's good for the users. But that's just because they want to survive too.

        However, most OSS "decisions" are user based where as most CSS "decisions" are market based [and sometimes financially based, e.g. please an investor].

        Tom
        • Re:surprising? (Score:2, Interesting)

          by Anonymous Coward
          True. In the end most projects turn into what's good for the users. But that's just because they want to survive too.

          Yes and no. The way to get a big user base is to do things that users like. So if you want a big user base for your project then get pandering :)

          If you don't care about the number of users but want to make something a specific way because it suits your ideas or because you like the theory of it then you don't have to care too much what other users think.

          There are lots of open source proj
    • Re:surprising? (Score:4, Interesting)

      by Hairy1 ( 180056 ) on Saturday December 06, 2003 @02:42PM (#7648763) Homepage
      Textbook software engineering is about identifying what the client needs, and delivering it on time and on budget. What is sad is that we still fail in that objective a good portion of the time.

      Ironically I don't think that it is true at all that OSS development is faster or more efficient. Basically coding is coding, so I don't see anything explicit to OSS that will make us faster directly.

      On a large project however we might be more carefull with our coding, as many other developers will see the code. This may initially be actually slower. However, more care and less defects has a longer term benefit in not needing so much bug fixing. However, I don't see that benefit unless the project is at a size that other developers will see your code.

      It is certainly less efficient in terms of manpower, a business can at least concentrate their resources, have people work on a project full time. I can't imagine employing a copy of the OSS approach - ie distributing specifications around the world over the net, and paying people an hourly rate for any work.

      The thing is that in OSS you don't pay for time, so you don't have to worry about efficiency. To be clear - this is not a bad thing at all. If you look at many creatures in nature they do not nessasarily optimise efficiency. If what really matters is having excellent security and stability with few defects, then perhaps OSS shows the way.

      But OSS is not a rapid applications development approach - and nor does it try to be. Thats not to say that the principles of OSS cannot be applied to commercial development, systems like XP use pair programming for peer review. They also employ unit testing as a stand in for many eyes. In fact test harnesses are great on OSS projects as well.

      OSS development is a good idea not because of its efficiency and speed, but because of its quality and freedom.
    • Re:surprising? (Score:1, Interesting)

      by Anonymous Coward
      Not. The "text book" SE I have seen over the past 25 years, while well intentioned, just slows developers down.

      --BLee
  • Definitions! (Score:5, Insightful)

    by joel.neely ( 165789 ) on Saturday December 06, 2003 @09:28AM (#7647053)
    In the context of development, "faster" and "cheaper" are somewhat well-defined, but "better" is simply too fuzzy. There are many qualities which contribute to "better", and some of them are in conflict (e.g. "more profitable for the marketer" vs. "easier to get bugs fixed"), depending on the value system of the speaker.

    We need to be more precise in our terms when defending or advocating open source, else we'll appear as silly as the suits that think that programmers that expend more lines of code to produce a solution are thereby more productive (or geeks-who-should-know-better who think that execution wall clock time is the only measure of "efficiency").
    • Re:Definitions! (Score:1, Interesting)

      by Anonymous Coward
      Without being able to define "better" it's impossible to determine "faster" or "cheaper," since you may very well not be comparing similar end results. You need to be able to quantify the technical aspects and assure at least a 1:1 mapping of functionality before you can go around claiming "faster" or "cheaper." You might have just spend more in less time to produce something that doesn't do half as much. Woo!
    • Re:Definitions! (Score:3, Insightful)

      by Jerf ( 17166 )
      There are many qualities which contribute to "better", and some of them are in conflict (e.g. "more profitable for the marketer" vs. "easier to get bugs fixed"), depending on the value system of the speaker.

      Entirely true, but part of the problem is that it is not widely understood that "better" largely is definable, if you're talking about something other then the immediate short term. "Easier to bug fix" will directly translate to "more profitable" eventually. So will "better architecture".

      You only get
  • Motivation (Score:5, Insightful)

    by Detritus ( 11846 ) on Saturday December 06, 2003 @09:34AM (#7647063) Homepage
    Open source projects attract people who have an interest, and often a talent, for the project. The same can't be said for many corporate projects, where you may be shoveling shit, but you're being paid to shovel shit.
  • by jrm228 ( 677242 ) on Saturday December 06, 2003 @09:39AM (#7647075)
    My limited experience with open source is summed up with this article sentence:
    ~~~
    Not all open-source projects are alike, however. A small number of open-source projects have become well known, but the vast majority never get off the ground, according to Scacchi.
    ~~~
    Open source is obviously faster/better/cheaper when 1000's of people donate their time to a single project. The only open source project I've been involved in was a collaboration among several corporations, all of which wanted to leverage each other's resources, but none of which could really contribute their own.

    There's nothing like money to motivate people to work on a project for which people aren't willing to donate their time.

    Personally, I'm not convinced speed is related to developer quantity. There's too big a variation in productivity between experienced and amateur developers.

    I'm also not convinced open-source is right for all types of software. How many open-source developers you know that conduct large-scale usability tests? How many open-source developers go around interviewing end users? When the developer and product consumer is the same, open-source makes much more sense to me.

    • There's nothing like money to motivate people to work on a project for which people aren't willing to donate their time.

      The 'scratch an itch' [sourceforge.net] motivation of OSS can also motivate people, though not always to the levels that you'd expect. One project I am astounded has not gotten more help is vb2Py [sourceforge.net]. Vb2Py converts Visual Basic applications into Python programs, meaning you can move your VB and Access users over to any platform Python supports -- and change out the database back end in the process. The ma

    • by Anonymous Coward
      You are not arguing against open source being the end-all, you are simply stating that in some cases,
      you need a corporation to "conduct large scale usability tests" or "interviewing end users".

      Even so, that would also be wrong.
      "large scale usability tests".
      otherwise known as betas and pre-releases.
      "interviewing end users"
      a.k.a. irc, email. feedback.

      Open Source makes sense when the product is mature and the consumer wants something that will work,
      without any hidden crap in it.
    • > How many open-source developers you know that
      > conduct large-scale usability tests?

      Sun does for Gnome and Open Office.

      > How many open-source developers go around
      > interviewing end users?

      RMS does for Emacs. I know that because I tried to submit some code directed at novice users to Emacs. RMS actually asked some compute-ignorant people to try the code, and came with suggestions to changes based on their reactions.
  • Ironic (Score:5, Interesting)

    by Anonymous Coward on Saturday December 06, 2003 @09:44AM (#7647084)
    These guys are trying to formalise open source development practices and write a new textbook for corporate software engineering. Here's the catch, open source development models work because they are informal, because their is no pressure other than that of your respected peers.

    When they're done they may like to do a little research on 'irony'.
    • Re:Ironic (Score:3, Insightful)

      by Jameth ( 664111 )
      They'd get further researching a new community model, as Open Source is likely the only fully-functional meritocracy ever. In other fields, a meritocracy is virtually impossible, but software has no re-production cost.

      Learning how to make a meritocracy work can be extremely useful. All companies try to, at least a bit, by giving employees stock options so they benefit from doing well, trying to give promotions to those who are successful, trying lotsa crap ellipsis.

      However, that is very hard. If a company
      1. Here's the catch, open source development models work because they are informal, ...

      LOL! Most OSS projects I've seen are very formal and well organized when compared to closed corporate ones. [sourceforge.net] (Corporate meaning mostly built for internal use or for specific tasks, I take it?) This is not always the case since some closed ones are run with a high degree of riggor while some OSS is sloppy. Overall, I typically like the results -- including documentation -- that come out of OSS while I'm usually disapoin

  • by cREW oNE ( 445594 ) on Saturday December 06, 2003 @09:46AM (#7647090)
    This setting wouldn't work most of the time, IMHO.

    For open source to work there needs to be a certain public interest in the software, and there need to be developers in the group of interested people. Opening up software that nobody wants to look at or develop further is totally pointless.

    A lot of software out there (I dare to argue it's the majority of the software out there.) is simply too boring or to business-specific to benefit at all from open source.
    • I beg to differ. One of the advantages of open-source software is that anyone can make it. Although there is some stuff like that, in most fields there are many people who can program and have an interest in the software they use. Those projects will never get huge, but they don't need to be huge. Rather, they just need a strong core of developers who actually give a damn, which is the difference with open source software: the programmers give a damn.
      • Well, you said it!

        There are a lot of area's that need software that programmers just don't give a damn about.

        I'll just name one - EU (European Union Government) certiefied invoice management for national governments. Yes, invoices have to meet requirements before they are recognized by the EU, which in turn qualifies them for financial help by the EU.

        In general the whole business back-end that needs to deal with all sorts of boring laws and government guidelines is an area so boring and specific that no
        • Open Source doesn't mean no developer gets paid just that there work is open. As you said "literally dozens of companies" if those companies were to develop a libEUcertiefiedinvoicemanagement and all 12 companys paid to help get it maintained then the development cost for all 12 companys would drop by 1/12 of the cost for this part. Then each company would just have to get there frontend up today and working with the new library fuctions over time. This is also the open souce way as well.
    • Not necessarily. The fact that nobody would like to work on a store management program for free doesn't mean making it open source doesn't make sense. Somebody working for another company and being paid for it could use it.

      Here's the thing: As far as I can see, for most companies the development of this kind of software is an expense they'd love to get rid of, but which is necessary to manage their stuff.

      So, suppose a small company that needs its own program for whatever reason. They hire you to code it a
      • There are two catches in what you propose...

        The first one is that a lot of companies have very, very specific demands. I've worked for governments and large corporations (power and telecom companies) and their demands are so highly specific that no opensource package will even come close to what they demand. So your model might work in some areas, it still will not in others.

        The second one is in the adapting part. Apart from the greatest opensource projects, the state of the documentation is pathetic. It
        • Note that I didn't say anything about OSS being a magic recipe for success or anything like that. My point was that even if nobody would voluntarily work on some program, it doesn't mean that making it OSS will be useless. Not only volunteers work on OSS software.

          And of course there are many companies with very specific demands. Then, there are many that just need something more or less simple. Say if a company wants a program that does authentication with a smartcard, it's probably not going to be very di
      • The fact that nobody would like to work on a store management program for free doesn't mean making it open source doesn't make sense. Somebody working for another company and being paid for it could use it.

        Except, if I were a store, why would I pay an employee to build a system my competitors could freely use? Why wouldn't I have her code a proprietary system that gives us an advantage over them instead?

        I do all kinds of very specific tool development for private sector clients and this is how they thin
        • because over time you pay more and more to keep those up todate. If there was this open source retail outlet software out there and it was being worked on by say several vendor like IBM and XXX I don't known who maters. Most of the cost for setting up a system like that is hardware. So if IBM and 4 other companys in that space work to agree to work together and create and open system ontop of an open standard then cost to mantain the system would go down for all 4 Vendor that would be a compitive advanta
  • by 3seas ( 184403 ) on Saturday December 06, 2003 @09:48AM (#7647097) Homepage Journal
    Maybe a little old but hindsight is better sight.

    From my own Web page [threeseas.net]

    PROBLEMS IMPORTANT TO SOLVE

    Attention Getting Points

    ------ FROM ------
    COMDEX SPRING and WINDOWS WORLD 95
    Power Panel - "What's Wrong with Software Development"
    ** In The U.S. Only **

    $81 Billion = 31% of software development gets cancelled before complete

    $59 Billion = 53% of software development has cost over-runs of 189%

    16% success - project success and failure ratio

    61% customer requested features and functions make it in

    Maintenance and repair is where most of the U.S. dollars are going,
    instead of new, better, easier to use software.

    ---- Overall ----

    Problems - all-around lack of complete documentation and weak training, faulty user input and feed back - self contradictory user request, lack of project leadership between developers and users, management created problems and low quality control standards, feature creep and software size increase, advancing technology rate of change and lack of general standards, solutions around the corner but never arrive and our tools are better than theirs attitude, lack of a value chain structure for value added abilities, failure to produce a functional model before coding and constant remodeling, etc.

    Solution directions - code re-use, object oriented programming, component-based programming, distributed components, better tools, better programming methodologies, leaner software, a splitting of code writer types into two catagories - architects and assemblers, better effort to establish a working vocabulary between developers and users so users can in some way lead development, etc.

    ---- A Few Comments from Panel Members ----

    A culture needs to evolve that respect software engineers as crafts-people. Writing code is not just writing code but like the field of writing where you have technical, creative, documentary, etc., there are different types of code writing. (Authors' note: I agree with this but also realize end users are even more specialized in what they need and do. Respect for the end user needs and abilities is needed even more so. Without respect given to the end user, the software engineer will not be given respect in return.)

    A fundamental change in the programming environment needs to happen that allows the tools to work together more. (Authors' note: the panel member making this comment, did not specify what tools or who the tools would be used by. It was a very general comment pointing to a fundamental programming environment change. A lead in to the concept of componet programming. But, there was no recognition given to the concept of componet software or componet applications. At least not in the sense of being outside of "plugins". Read on!)

    Jokingly - one of the best ways to copy protect software is to put it in a dll, give it an obscure name and put it in the windows system directory. Because you'd never find it. (Authors' note: This does not make it any easier for the end user in keeping their system organized, clean and optimized. This attitude of constraints, though humorous, cost end users alot.)

    The meaning of "intellectual property" became questioned. Did it mean you take the best ideas or something owned? (Authors' note: it was the panel supporting "best ideas" but wouldn't the correct term for this use be "intellectual value" rather than "intellectual property"? What would happen, regarding this, in a court room? The audience member whom brought this up, was a bit angry about the distortion. Her question was: Is it the developers whom are creating the problems? And what are the developers going to do about it? The responce was "that's not the problem!")

    Users shouldn't develope software but know, better than the developers, what they want and need. (Authors' note: users don't have the time to write code, it's not their job or duties!!! I can cut the lawn, I know h

  • I really prefer to participate in a project which is open sourced rather than closed sourced.

    However, I'd like to know if you fellas know about other dev models that could be better in certain circumstances. Or is it just Open Source vs. Closed Source?
  • Comment removed (Score:4, Insightful)

    by account_deleted ( 4530225 ) on Saturday December 06, 2003 @10:09AM (#7647158)
    Comment removed based on user account deletion
    • i tend to disagree with you... motivation is rarely a problem for OSS... you tend to forget that most people who participate in OSS are hackers by nature... the thrill or getting things done, learning new things in the process etc is motivation enough... u sum it up yourself in para 3. hard work is what it takes to be part of *any* opensource proj. unrewarding is relative. it might be unrewarding as in "money in your pocket" but for some (most) hackers, the knowledge and experience gained in performing tha
    • Forgot one (Score:5, Insightful)

      by bluGill ( 862 ) on Saturday December 06, 2003 @11:19AM (#7647468)

      You forgot one reason to do open source.

      I'm a good programmer, I can write an OS, windowing system, Word Processer, etc all by my self. Well in theory, doing all that alone to even the quality of Windows 3.0 and WordPerfect for Windows (which sucked in those days) is close to byond the time I will live, and in the meantime I don't have programs to use.

      When I work in open source I can take advantage of other's work. So I write [part of] the VM for the kernel, while others write everything else to make the kernel work, more others right the libraries and utilties, and still others write my windowing system and word processer. Put it all togather and I have free programs to use, and the ability to change anything. So last year I re-wrote the VM that everyone is now using, this year I can direct my attention to nethack making it even better.

      In other words: don't overlook the value of working with others.

    • Re:Hmmm.. (Score:5, Insightful)

      by ducomputergeek ( 595742 ) on Saturday December 06, 2003 @11:47AM (#7647623)
      OSS is 1% gem, 99% crap. I mean honestly, how many hangman scripts does the world need?

      There is a mentality by some, not all, in the OSS world that anything closed source to hit their computers is bad. I was at a convention recently about 3D animation software. One of my big consulting clients is a medium sized arcitecture/graphics firm. They had just abandoned some very cool software designed to run on the DEC Alpha platform for Maya and they chose to run it on Linux. Why? They tested Maya on both Wintel, Linux on x86, and Macintosh. The designers seem to like it on Linux and it was stable. Plus Linux would run on their existing hardware without any problems.

      Anyway, at this convention, there was one Linux Zeloat there that couldn't "Believe you would tait the pureness of the OSS Linux with that commercial crap. Haven't you heard of Blender?" At first I thought he was joking.

      I had used blender for personal use since 1.8. Yes, Blender is a good program, but even for someone like me the learning curve is steep as hell. Plus you have to export to a 3rd party app for rendering with raytracing. Blender is comming along and has had some nice features added since reaching OSS land.

      However, 3 of their Graphic Artist had previous experience with Maya and could help the other two learn the program. The simple fact this company was going to ditch Windows for Linux should be a victory for the OS and OSS land. But the mentaily of "All OSS or non at all" held by some is a mistake.

      Look at GIMP. I know 2.0 is scheduled for release soon, but GIMP today compared to that of 1999...it hasn't changed much. Back when I was using Photoshop 4 & the early days of 5, I thought for sure that GIMP would leap frog them or at least improve to the point of being an equal. It almost appears that GIMP developement stood still while Photoshop 6 and then 7 was realeased with many great new features. Maybe 2.0 will see some improvements, but that is one example of where OSS hasn't surpassed its commerical counterparts.

      If Linux is going to thrive on the desktop, it will need supported non-OSS software from people like Adobe and Macromedia. I will pay for good software, and so will many others. Free is looked upon with a keen eye, Econ 101: THere is no free lunch.

      • Free is looked upon with a keen eye, Econ 101 Open source does not mean *free* besides, this post is not about platforms... it's about methodology... it's about how you structure your software dev engineering process... is it collaborative? are events/milestones scheduled? who is responsible/accountable for what? how are changes made/accepted/integrated into the existing codebase? how are decisions made; is it a round table? the gimp is just one of many initiatives out there. a lot of libraries and progr
      • "OSS is 1% gem, 99% crap. I mean honestly, how many hangman scripts does the world need?"

        Obviously, you've never taken an introductory programming class, or you would know that the answer to that question is, "About fifty more, due next Thursday. And would you twerps please stop using one letter variable names?"

        It's interesting that, in my opinion at least, the ratio you cite is about the ratio I've noticed in the closed-source community. I don't think that open/closed source has much to do with

    • You may be overlooking an important point: Not everyone has the same definition of "fun," or "rewarding." For example, I have trouble seeing compilers as a sexy field of study, but GCC still seems to get a lot of support.

      Originally, Open Source was being practiced primarily by the pure computer science folks, but the idea is slowly percolating down to the more mainstream developers. If it gains mindshare, it means more support for a lot of different interests, such as business management or--as y
  • Faster? (Score:3, Interesting)

    by jlnance ( 4756 ) on Saturday December 06, 2003 @10:23AM (#7647198)
    I can definitly believe better and cheaper. I see that all the time with the OSS software that I use (though not everyone might agree with my definition of better). I hear people talk about faster as well, but I just dont see any evidence of this.

    Linux, Wine, gcc, Mozilla. They all took, or are taking, a very long time to develop.
    • Re:Faster? (Score:5, Insightful)

      by Jameth ( 664111 ) on Saturday December 06, 2003 @10:44AM (#7647308)
      That's debateable. What you need to debate is what else is doing what they are doing.

      Mozilla: It's making a standards-compliant browser. It is clearly done faster, as it's the only one out there. Fairly self-evident.

      Wine: It's reimplementing an OS without access to the internals. What are you comparing that to for purposes of determining its speed? I personally think it is occuring extremely fast, all things considered.

      Linux: Seems to be developing fairly on-par with other kernels. Yes, it took a while to get to where it is now, and had some comparitive slumps, but where was everything else when Linux started? Unix was ahead. Windows was DOS, right? MacOS was an early classic one? I really don't know, but it seems fairly close.
      Consider this: It's ahead of Windows on most high-end stuff, now, and has been on-and-off for a while.
      MacOS had a speedy jump in progress with OS-10, but that was also open-source development (BSD base, partially open still) so that's just an agreeing argument.
      As for commercial Unixes, I haven't a clue, so I won't talk about them.

      gcc: I haven't a clue. I really don't. Just noting it because you did.

      For my own example, MPlayer: MPlayer started about the same time that media players got big on other systems. Without having any source information for codecs and so-such, it's stayed just as far along technically. Ever since it's been around, I've been able to watch things about equally well under any OS, except DVDs.

      The main area I see OSS lacking is in interfaces, which is why MPlayer is such a good example. Good God, is that a bad interface. Not the worst, no, but it tries. I'd say that is a part of the 'better' thing.

      OSS is good at doing most of stuff, just not at getting EVERYTHING together. For a lot of things they do the technical end while the interface lags, or they do the interface and it's got a buggy back-end, or they make something really good but it is so messy inside it needs a total re-write to add anything.

      I don't know how that compares with the problems of closed source, as I've never worked on it, but those are just the way I see the issues.
    • Linux, Wine, gcc, Mozilla. They all took, or are taking, a very long time to develop

      I suppose that is one of the catch-22's in the open source world: if you get developers to volunteer their time and work for free then you have to tolerate the long delays in project completion and updates. But, you get a better finished product -- assuming you have decent programmers working on it -- because the programmers are personally involved with it and have a personal stake in the finished product. OTOH, if you PAY

  • by Jameth ( 664111 ) on Saturday December 06, 2003 @10:47AM (#7647322)
    Faster and Cheaper go hand-in-hand, but are always the bane of that 'Better'.

    Oh well, two-out-of-three ain't so bad.

    So, anyone want fast, cheap sex?

    My number is, oh, hi honey...no I wasn't gonna...really......crap.
  • by Anonymous Coward on Saturday December 06, 2003 @11:07AM (#7647417)
    We're working on a complete re-do of an existing product. The first version was nothing more than a gui demo, but marketing said "can you make it do this", and "can you add that", and so on.

    The (mid-level) programmer involved just added feature after feature, worked many long nights and weekends and ended up with an unmaintainable nightmare of custom software for the major customer.

    I was asked to help with some new features, took one look, and said to myself "no way I'm working on this mess" and spent some time coming up with a more generalized architecture [1].

    This time around, the first thing we did was get marketing requirements. We turned this into a functional spec, sent it out to marketing and project management to be reviewed. After that they are going to sign their goddamn names on the goddamn front page of the functional spec, and we're going to build it. If they say "but we need x", we (the engineers) can say "should have thought of that earlier, we can try to get it into the next release in two months [2].

    I know it is kind of a CYA [3] approach, but a paper trail puts the pressure on marketing and product management to GET IT RIGHT.

    So, sure, the scratch-my-itch[4] kind of development comes up with some very good stuff, but the old-fashoned waterfall (requirements-> design-> implement) keeps people honest (or at least points out what parts of the company need to do a better job).

    One more (slightly unrelated) point. Get the GUI in front of marketing as quickly as you possibly can! Those guys can't think unless they have something to click.

    -- ac at home

    [1] I know it sounds vain. Actually, I'd worked on teams designing very similar systems twice before, so we'd thought out a lot of the details already, so it was easy to see the common vs app-specific parts.

    [2] I realize that if a big customer wants feature X by next tuesday we'll have to do it, but it ends up being a failure of marketing and product management, not engineering. We're the heroes, not the villians.

    Plus we've got a pretty good idea of how the customer is going to use the system (since we've got one version out there now), so the software will do a lot more than just what's in the functional spec.

    [3] Cover your ass.

    [4] In some part this project is one. After going through two design phases and having both projects cancelled, I really wanted to put the basic platform together and prove to myself it would work. (So far so good).

    • The problem with this approach is that nody has ever completed a project in which the user managed to exactly specify what they needed in a system before it was built. Also the designers of the systems have never been able to translate a requirements document into a specification that addresses all the requirements perfectly. Finally the coders are never able to code exactly to the specification. When will people get that this is a fairy tale.

      I don't subscribe to XP in everything it says, however a close r
    • After that they are going to sign their goddamn names on the goddamn front page of the functional spec, and we're going to build it.

      So what do you do when they don't sign it? They'll obviously know what you're trying to do and see the handcuffs coming. I've never gotten anyone with any kind of power to give it up that easily.

  • by eokyere ( 685783 ) on Saturday December 06, 2003 @11:22AM (#7647480)
    Eric Raymond breaks this topic down in "The Cathedral and the Bazaar" [firstmonday.dk], and excellent read. the opensource model is proven. the number of successful real-world projects built on the model have been belabored enough. it is the metrics you follow to adapt your particular project to it that matter, and those ,ultimately, lie with you.
  • Thank you... (Score:1, Interesting)

    by JamesP ( 688957 )
    I always thought of that... How can open source be more reliable without a project...

    I guess the secret is not overspecifying (as it often happens with UML for instance) and building individual, working bricks that can be reused...

    Besides, project and implementation often don't go together... I mean, how to deal with different interfaces in a UML description (in the sense of a multi-platform software: MFC, JavaWidgets, GTK) It doesn't work...

  • by Anonymous Coward on Saturday December 06, 2003 @11:38AM (#7647561)
    No offense to anyone but I would like to see this study done by people who actually 'do' rather than people who just study. There is a big difference in the understanding of large project development deployment by someone like IBM (who does open source) vs someone at some university somewhere who does not have the full grasp of real world project/product development under their belt.

    First of all, to be able to compare faster, better, and cheaper, you have to assign a value to the amount of engergy spent on a given project such that the resources expended (i.e. brainpower, electricity, etc) are equal on a per programmer basis. Then you have to create a project that requires multi-discipline engineering so that you are removing the quickie one/two man projects from the equation. Then you have to measure the output of the project on a non-commercial penetration, i.e. not how much revenue is generated but how many copies are in use and how is it beneficial. Additionally you should add the amount of energy from the project(s) that result in failures. Having multiple, parallel projects (commercial or otherwise) with similar goals and having one fail should result in that energy being added to the sum total of the type of engineering being performed, i.e. if three open source projects fail (or merge, or whatever) in order to create 1 that succeeds then the total energy expended has to be taken into consideration. For the closed source, closed project development team the amount of overhead involved has to be accounted for (including meetings, project managers, product managers, etc).

    To just use one aspect of project development as an example, like the testing regiment implemented in a strictly closed source, closed development, commercial venture against that of the open source, open project venture you might find that the resources spent on testing are much higher (or not) for the open source project. Having 1000s of free testers (in an OSS project) is all well and good but that does not guarantee accuracy, depth, and efficiency of testing.

    (anecdote ahead). I worked for a company that created java applets (put away your flame throwers and read) which manipulated large data sets and high resolution imagery in a browser environment. In order to test these applets we routinely ran them and the back end fullfillment servlets through 40-50 thousand test permutations every time we did a build, we did this with two people running more than 30 workstations. Where are you going to find the discipline to not only set up the tests but run them and generate all the proper reports in the open project community. We are talking about subtle cross browser, cross platform, cross version, even cross language bugs.

    Anyhow, its one thing to create an open source project which can be driven by one or two visionaries and requires the input of very few others and another thing altogether to create a large, not so fun project that relies on the input of a large group of disciplined people.

    The bottom line is that there is a lot of GRUNT, UGLY, W-O-R-K that has to be done in any large, multi-discipline project and I don't see a lot of that (yes there are a very few) in the OSS/OSP non-commercial community.
    • We are talking about subtle cross browser, cross platform, cross version, even cross language bugs.

      Actually, these sorts of things pop up really quickly with the open source approach since everyone and their brother has their browser set up with different plugins, etc. I just came accross some interesting bugs in the OS CMS I develope at work when trying to look up info in it from lynx when I installed bad video card drivers. We weren't designing it to work with text browsers, but it does now thanks to t
  • when you work on something of interest to you, and you put your name on it, it simply means more to you and therefore you will be more concerned. i don't care how much you get paid, are you going to put your full effort into someone else's project? i don't think so.
  • it only works well when you have a lot of people interested in actually doing work on the project. More often than not there are a small number of core programmers who may talk infrequently, have no real design or development plan, no timeframes for anything, little to no useful documentation, and are so swamped with support requests that either you learn to live with a defect or the development process slows while that small group of people work out the problem.

    Sure there are scenarios where open source i
  • You know a study is bogus when they announce their conclusions while it is still in progress. And if it's not legit, if it's not scientific, then what's the point of it? Answer: propaganda.

    Open source has some usefulness, but it doesn't need a bunch of twerps from a lame college to advocate for it, presumably while being paid by some corporation that can't outsource fast enough. The limited benefits of open source are evident enough.

  • Researchers at some major university have completed a 3-year study showing that water is wet!

  • Something that people never notice when talking about open source is that the average open source contributor is better than the average commercial developer (self-flattery?):
    1) you contribute only if you know you are good because if you are not your part will be thrown away with no benefit for you and for the community (self selection)
    2) in general open source contributors are more proactive than average developers and more open minded
    3) motivation, motivation, motivation: your pride is involved

    Also, more
  • I think this has already been studied-
    The ability of the OSS process to collect and harness the collective IQ of thousands of individuals across the Internet is simply amazing. More importantly, OSS evangelization scales with the size of the Internet much faster than our own evangelization efforts appear to scale. -Microsoft, Microsoft Halloween Doc 1 [opensource.org]
  • by fygment ( 444210 ) on Saturday December 06, 2003 @09:52PM (#7651210)
    Is it rocket science?

    Successful OSS projects have leaders with a vision and who enforce standards. (Torvalds/Linux kernel)

    Successful OSS projects are those which many people are interested in. (Linux kernel/Perl)

    Successful closed-source projects are those led by leaders with a vision and who enforce standards. (Windoze/Mathematica)

    Successful closed-source projects happen because they address a market need and so get funded. (Windoze/Matlab)

    In fact, any project succeeds when there's sufficient interest and good leadership.
  • This is my first /. post, so Mods be kind ;-) Software development in general (OSS/CSS) is this strange blend between an authoring craft and highly structured engineering practice. Throw into that the fact that its growing wildly everday, and it causes confusion about what the best practices. I think that corporate internal projects could be greatly improved by adding OSS inspired practices. However, I don't think institutionalizing OSS for the corporate/market driven world is the end all answer to fixi

Those who can, do; those who can't, write. Those who can't write work for the Bell Labs Record.

Working...