Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming Books Media Book Reviews IT Technology

Managing Open Source Projects 94

Stephanie Black contributes this review of a book which might be nice to have around if someone suggests that Open Source is "not for business use." Managing Open Source Projects is one of a class of books that will probably expand hugely in the next few years.
Managing Open Source Projects
author Jan Sandred
pages 189
publisher John Wiley & Sons
rating 9
reviewer Stephanie Black
ISBN 0-471-40396-2
summary A HOWTO on putting the principles and advantages of Open Source programming to work.

First Impressions

There is a word for this book: SWEEEET!

It's short, too, but before you grumble about paying nearly 30 bucks for something that's less than 200 pages, you might want to look at the concept of quality. It's worth every blessed dime, plus taxes (if applicable).

Managing Open Source Projects opens with a history of the movement, thus providing background information and context to prospective or actual managers of Open Source projects. In this sense alone, Sandred has set himself apart from numerous other authors on the subject, providing an overview of a movement which has been over 30 years in the making, and whose restructuring of the "old-economy" is just beginning.

The development of the browser wars is dealt with in this history, a subject not everyone is familiar with. What it amounts to is a lesson in 'instant karma' that Netscape Inc. learned after doing a lot of damage to the Mosaic browser, ("mozilla" comes from "Mosaic killer"), and subsequently having the same done unto them by the Redmond Contingent(TM). Sandred sort of implies that this lesson had more than a cursory role in the 1998 opening of the Mozilla source code, which staggered the industry all round. Obviously, Netscape learned several somethings from the experience.

The author moves on to discuss the relevance of open source to business. (You knew *that* was coming, didn't you?). Sandred raises the common assumption of business known as Brooks' Law ('the performance of programming teams does not scale so as to increase the productivity of the team'), and then uses the history of Linux development to illustrate the inadequacy of this model in describing the open source development process. In sum, Sandred asserts that the differentiating factor is what he calls the "political attitude" of the open source model, which breeds a different leadership style. The "administrative overhead" required by each member of a development team may increase with each new developer, but without the geographic restrictions posed by a code farm, there is a wider base of "administrators" to choose from. (Now you know what to tell your boss.).

Chapters 8-10 cover a variety of tools useful (and commonly used) in building open source works, and methodologies used to set up the project (including the team). You've heard of Sourceforge, right? CVS? Or maybe "The Slashdot Effect"?

Highlights

There are some portions of Managing Open Source Projects that are guaranteed "feel good" items which remind any open source developer of why we do what we do.

In his discussion of open source philosophy, Sandred points out that the viability of the open source model is not restricted to software:

"With computers, perfect copies of a digital work can easily be made, modified, and distributed by others, with no loss to the original work. Individuals interact and share informa- tion,and then react and build upon it; this is not only natural, it is also the only way for individuals to succeed in a commu- nity. In essence, the idea of open source is basic to the natural propagation of digital information among humans in a society. This is why the traditional notion of copyright does not really make sense on the Internet." (p. 52)

He points out that the United Nations has adopted an open source approach to distributed assets, including (especially) information. The link between democracy and freedom of information is clear, and iterated not only by Sandred, but by UN Secretary-General Kofi Annan, and Dr. Gro Harlem Brundtland, Secretary-General of the World Health Organization.

It's not "just" a software development model anymore.

Imperfections

There are some small issues this writer has to take with Mr. Sandred's pronouncements, among them the following:

"All software cannot be developed open source. Open source software tends to concentrate on infrastructural design and back-end software. Open source benefits from incremental de- sign, which means back-end systems. End-user applications are hard to write. These applications deal with graphical user interfaces, which are very complex to write, almost always customized, and comprise other skills like graphical inter- face design." (p.160)
This writer would, upon reflection, argue with pretty much everything in this paragraph, save for the self-evident last statement. Both the GNOME and KDE projects are about providing desktop applications, and the managers to go with them. Most window managers provide applications to go with their "suites". There are productivity software suites in progress.

Ah, well, it's one bad moment of two in the entire book.

Mr. Sandred makes an unwitting gaffe in his discussion of "Five Open Source Commandments" in Chapter 12: the last of these reads 'Join a project rather than starting your own.' While joining another project is helpful, even useful, it does not replace the "developer's personal itch" that Sandred quotes from Eric Raymond's 19 lessons (Cathedral and the Bazaar, O'Reilly, 1999), in Chapter 2. Do both!

Conclusion

Don't just sit there -- go get the book, even if you're not currently involved in, or planning on, managing an open source project. The information is timely, the pace is lively, and Sandred has provided a wealth of insight into the open source movement's past, present and future. While some of his work has perceptual errors, these are few. The rest of it is pure gold.


You can purchase this book at Fatbrain.

This discussion has been archived. No new comments can be posted.

Managing Open Source Projects

Comments Filter:
  • Are a sure-fire sign that we've arrived chaps !
    Expecting "Marketing Open Source for Sales Dummies " anytime soon

    • by Anonymous Coward
      Expecting "Marketing Open Source for Sales Dummies " anytime soon

      Plan 1: Close the source of your product, otherwise people have to have free access to it.

      Plan 2: Come up with all sorts of whacky ideas on how to get people to pay for stuff you have to give away for free, and then go out of business.
  • $18.50 (Score:1, Interesting)

    by 3ryon ( 415000 )
    Check out Bookpool [bookpool.com] for 40% off cover price. They always have great prices. No, IANAS (I Am Not A Spokesperson).
  • by Anonymous Coward
    Not as long the cost-benefit balance is so incredibly bad compared to closed source commercial products, like for instance this analyis shows:

    Let's have a close look at the costs involved when running a Linux system.

    An important factor in Linux' cost is its maintenance. Linux requires a *lot* of maintenance, work doable only by the relatively few high-paid Linux administrators that put themselves - of course willingly - at a great place in the market. Linux seems to be needing maintenance continuously, to keep it from breaking down.

    Add to this the cost of loss of data. Linux' native file system, EXT2FS, is known to lose data like a firehose spouts water when the file system isn't unmounted properly. Other unix file systems are much more tolerant towards unexpected crashes. An example is the FreeBSD file system, which with soft updates enabled, performance-wise blows EXT2FS out of the water, and doesn't have the negative drawback of extreme data loss in case of a system breakdown.

    The upcoming 'solution' to this, EXT3FS, is nothing more than an ugly hack to put journaling into the file system. All the drawbacks of the ancient EXT2FS file system remain in EXT3FS, for the sake of 'forward- and backward compatibility'. This is interesting, considering that the DOS heritage in the Windows 9x/ME series was considered a very bad thing by the Linux community, even though it provided what could be called one of the best examples of compatibility, ever. When it's about Linux, compatibility constraints don't seem to be that much of a problem for Linux advocates.

    Back to Linux' cost. Factor in also the fact that crashes happen much more often on Linux than on other unices. On other unices, crashes usually are caused by external sources like power outages. Crashes in Linux are a regular thing, and nobody seems to know what causes them, internally. Linux advocates try to hide this fact by denying crashes ever happen. Instead, they have frequent "hardware problems".

    The steep learning curve compared to about any other operating system out there is a major factor in Linux' cost. The system is a mix of features from all kinds of unices, but not one of them is implemented right. A Linux user has to live with badly coded tools which have low performance, mangle data seemingly at random and are not in line with their specification. On top of that a lot of them spit out the most childish and unprofessional messages, indicating that they were created by 14-year olds with too much time, no talent and a bad attitude.

    I could go on and on and on, but the conclusion is clear. Linux is not an option for any one who seeks a professional OS with high performance, scalability, stability, adherence to standards, etc.
    • The only time Linux has ever crashed on me is when I'm accessing low-level parts of the hardware. I can run Linux for years as a server without problems. It makes an excellent server. Ten times better then win2k. More versatile. It is also cheaper and more compatible then other versions of Linux. The payoff is excellent.
    • Linux is a bad example. Just use openbsd. ZERO maintnence cost. what then mr bigshit?

    • To make such a sweeping statement such is just dumb. I suggest that your knowledge of the business world is limited.

      Business uses of Open Source include a wide range of embedded systems, web hosting and service companies, file, email and print servers, 3D graphic rendering in the movie industry, public kiosks, the list is huge and many significant... stuff it. I don't know why I'm wasting my time replying to this rubbish.
    • I think your missing the point of the book. This is not a propaganda piece intended to persuade corporate IT to use OSS. Rather, it is pointing out that the processes behind the development of open source software may be applied within traditionally closed source institutions.

      Case in point. I work for a software company as a consultant/field-engineer. Our product is very broad and offers an impressive API on which to build extensions. Many of our consultants have identified opportunities to build upon our software which don't necessarily fit within marketing's "product road-map", but address important customer needs/wants.

      Our solution has been to organize and implement an open source style development community within our organization. Consultants can suggest and develop utilities and extensions for our software which the core engineering team could not (or will not) tackle. The results thus far have been very positive, and we expect to release many advanced features to our customers, at low, or no cost.

      In addition, it gives our consultants an opportunity to grow their software development skills in ways that wouldn't otherwise be available to them. Most customers wouldn't attempt to develop the complex extensions that we are working on due to a lack of in-house skills and cost. As such, we do a lot of redundant work for our customers, which limits our growth as software engineers.

      In short, this book addresses exactly the type of problems we are facing right now, and I can't wait to give it a read.
      • This operational approach is technically sound, its the business side of using this approach that is challenging. The challenge in many large companies, and smaller companies too, is who owns what? There is a constant negotiation that goes on between the business and engineering organizations. Questions that need to be answered in this type of model is: who is funded for this work, who supports it, who approves it. When cost cutting needs to occur, who prioritizes? who decides? Who ulitmately is repsonsible for delivering what?

        This type of model would be interesting in an OEM relationship, where product branding is key to OEM marketing, but the challenges that will face the company is how do they go about providing a level playing field for their OEM customers, how does the company accomodate everybody. One of the key areas in a business relationship, is that when dates are agreed upon and not met, the OEM customers can loose a tremendous amount of revenue, resulting during the project lifecycle in business decisions be made? What's going to get cut, and what is the quality level?

        Regards
        Kramer
    • What nonsense you spout.

      I won't say I've never experienced a crash running Linux (in 5 years of using it) but I can certainly say that I have only once experienced a crash for which I could not discover the cause.

      2:09pm up 70 days, 18:55, 9 users, load average: 0.01, 0.01, 0.00

      Frequent crashes my arse.

    • Linux requires a *lot* of maintenance, work doable only by the relatively few high-paid Linux administrators that put themselves - of course willingly - at a great place in the market. Linux seems to be needing maintenance continuously, to keep it from breaking down.

      What system _doesn't_ require a lot of maintenance to set up _properly_ and keep running _properly_? As for competent Linux admins being expensive - again, what closed source systems have cheap competent admins? You don't always get what you pay for (there are a lot of fakers out there) but if you don't pay for it, you certainly won't get it, no matter what system you're running.

      As for loss of data - your tirade against OSS software seems to fall down when as a counterpoint to Ext2's bad performance under an unclean shutdown, you mention FreeBSD _another OS OS_, as a shining example of how to Do The Right Thing.

      Ext3FS - I'll take your word for it. But no-one ever said that _every_ piece of OSS was great. Some of it will stink. Same as closed source. There are normally good alternatives (XFS?)

      Crashes in Linux are a regular thing, and nobody seems to know what causes them, internally

      Care to provide some evidence of this. If we're allowing anecdotal evidence, I'm sure I've heard stories of Linux boxen getting uptimes of > 1 year, even when running some pretty flaky user-mode stuff.

      And I've heard a lot of crashes determined to be flaky hardware; as Linux tends to run on commodity PC bits and pieces, and a lot of people tend to go for 'as cheap as possible' there, I wouldn't be surprised if the MTBF for that stuff is a lot lower than the kind of hardware you pay tens of thousands of dollars for from Sun or HP.

      The steep learning curve compared to about any other operating system out there is a major factor in Linux' cost.

      Uh - how exactly is Linux so much harder to use / learn than almost any other individual *nix? Seems pretty similar to me moving over from HP(s)UX and Slowaris. No more differences between either of them and Linux than there are between those two.

      And badly coded tools? Please. The GNU tools are some of the best I've ever worked with on any system. No 'long lines silently truncated'. Vim's extensions to vi are fantastic. GNU make is so much more flexible and powerful than the standard 'make' on most platforms. Bash rules. gcc is a hell of a lot better than a number of proprietary compilers I've worked with. gdb kicks most other debuggers' asses right out of the building.

      Which particular low performing, data mangling, not-adhering-to-spec, standard-incompliant tools were you referring to again?
      K.
    • Microsoft employees posting on Slashdot? What is the world comming too?
    • I think that it is interesting that you use FreeBSD's stability and speed as an example of why open source is not for business use. The last time I checked, FreeBSD is open source.
    • You have been posting this assinine drivel repeatedly, probably in the hopes that it will be considered true. Those who need strong data transactional security, using ext2fs, should mount with the "sync" mount option, or use a UPS. You will then have a filesystem that is no faster than the BSD or NTFS filesystems.

      Softupdates solves a DIFFERENT problem than you describe (metadata coherency); The BSD filesystem is inherently more syncronous than ext2fs. The rest of your "opinions" are similarly misinformed.

      So, please shut up.
    • Oh if only you knew what you were talking about... I should know better than to respond to such an obvious piece of astroturf but here goes...

      ``Linux requires a *lot* of maintenance, work doable only by the relatively few high-paid Linux administrators that put themselves - of course willingly - at a great place in the market. Linux seems to be needing maintenance continuously, to keep it from breaking down.''

      First of all, I don't know what part of the country you in but I've never seen salaries for people doing pure Linux that I'd call ``high'', except, maybe, when compared to some entry level IT salaries but then I suppose I haven't been looking as hard as you. I know I'd never be able to support a family too well on what I've seen offered.

      Second, based on what do you make the claim that Linux requires lots of maintenance? I've seen Linux systems set up and not had any downtime required for maintenance. Of course, these were systems that weren't facing the Internet. If you have Linux systems in your organization that have to undergo all this maintenance you should be looking deeper. You might have an idiot for an administrator or it may be that someone's trying to run Linux on a system that should be in the dumpster. Faulty hardware would make any operating system look bad.

      ``Add to this the cost of loss of data. Linux' native file system, EXT2FS, is known to lose data like a firehose spouts water when the file system isn't unmounted properly.''

      I guess I;ve been leading a particularly charmed life. I've been running Linux for at least six years (at home, somewhat shorter at work) and have never (read: number_of_times = 0) lost any files due to an improperly unmounted ext2 filesystem. Having said that, however, I should point out that I am looking forward to ext3 since the elimination of having to run e2fsck following a power failure (need to get a UPS at home) will certainly be welcome.

      ``Back to Linux' cost. Factor in also the fact that crashes happen much more often on Linux than on other unices. On other unices, crashes usually are caused by external sources like power outages. Crashes in Linux are a regular thing, and nobody seems to know what causes them, internally. Linux advocates try to hide this fact by denying crashes ever happen. Instead, they have frequent "hardware problems".''

      Gee... It appears that you have a crappy Linux setup which crashes therefore all Linux system are prone to mysterious crashes. Go find out how surveys work before you try to extraplote from a single data point. Your experience is certainly not my experience. (Hint: Supply a URL showing the credible data to back up your assertion if you want anyone to take you seriously.) As for cost, how do you account for all those people who report uptimes of months and months on their Linux systems? We are currently experiencing an outage of some Windows-based services here at work that have all the people in our Northern Illinois offices dependent on Windows sitting around twiddling their thumbs. Talk about cost... (I'm composing this reply on a UNIX box, BTW.)

      ``The steep learning curve compared to about any other operating system out there is a major factor in Linux' cost. The system is a mix of features from all kinds of unices, but not one of them is implemented right. A Linux user has to live with badly coded tools which have low performance, mangle data seemingly at random and are not in line with their specification. On top of that a lot of them spit out the most childish and unprofessional messages, indicating that they were created by 14-year olds with too much time, no talent and a bad attitude.''

      Steep learning curve? Perhaps to some. Those who do not wish to learn will find a problem when encountering anything new. At least Linux's (and UNIX, in general) learning curve is worth the climb; something like Windows penalizes you for becoming proficient when it offers no way to perform simple tasks that don't require navigating a slew of menues. And, contrary to your assertion, learning Linux is not significantly different than learning other UNIX implementations. I found it quite easy to pick up AIX, HP/UX, and SVR4 after learning on Coherent and Linux was not any more difficult than any of these. There are slight differences but the same could have been said about HP/UX versus AIX versus BSD. You an old SunOS user still P.O.d about the SVR4 switch or something?

      I find the tools on Linux to be top-notch. They may not be as ``pretty'' as those you find on, say, Windows. However, they get the job done and have equal if not better performance than I've encountered on other systems. What you don't like the messages you get from the software? The totally useless messages I see issued from Windows systems take the cake. Personally, if I were you I'd move to an IBM mainframe. I'm sure you'll find ``IHC240'' a lot more satisfying. BTW, my current favorite error message is: ``WARNING: preposterous time in TOY clock -- CHECK AND RESET THE DATE!!'' (from Tru64 - hardly a rinky-dink operating system). If that's one of the more serious criticisms you have of Linux, well, get a life.

      As for random data munging that you've been encountering under Linux? You really should have someone look at your hardware. (Oh, there I go blaming the hardware again.) You are aware that just because a given hardware configuration works under a Windows desktop OS is no gaurantee that it'll necessarily run error-free under Linux? Or under a Windows server OS? (Yes, Redmond puts out a hardware compatibility list as well.)

      ``Linux is not an option for any one who seeks a professional OS with high performance, scalability, stability, adherence to standards, etc.''

      Hmm... I'll have to tell those paranoid Oracle DBAs at work that they should stop considering Linux right now!

      I've often used IETF documents (RFCs) to better understand Linux services. Odd that they appear to adhere to those standards quite nicely. This, of course, is different than the way a commercial software producer, say Microsoft, adheres to standards. They write the quirky software, sell a whole bunch of it, and proclaim it a standard. (Then patent something in their proprietary software and extort licensing fees from any vendor that has the gaul to attempt to interoperate with said software.)

      Your ``cost-benefit analysis'' was nothing more than a lot of pissing and moaning about things that I suspect were not your direct experiences. If you feel that Linux is not an option for you, then don't use it. I doubt that there's a gun to your head. The rest of us will just go on watching our uptime get higher, and higher, and higher...

  • While some of his work has perceptual errors, these are few. The rest of it is pure gold.

    Perceptual errors are in the eye of the beholder. My perception is that businesses will generally embrace open source software that meets their needs, but we'll be hard pressed to ever see widespread, corporate sponsored, open source development. Companies will use it when it's free, but development costs money, and they're not going to spend their money on something on of their competitors could pick up and use.

    Then again, this could be my perceptual error....
  • Mozilla ? (Score:3, Insightful)

    by tmark ( 230091 ) on Tuesday September 18, 2001 @11:18AM (#2314712)
    I find it amazing to think that a book about the supposed virtues of OSS - especially in a business setting - should bring up the browser war issue. As far as I'm concerned, the open-sourcing of Netscape and the Mozilla project points to nearly everything that can be wrong with an OSS approach - look how long it has taken to bring something to the desktop that is remotely useable, for instance. One might have expected that if OSS were all it is sometimes said to be we might have had useable product a year or more ago. Now, somehow I expect that this book touches little on Mozilla's considerable problems (while presumably talking up the failures of non-OSS Netscape), so I have to wonder how convincing an informed reader will find (at least this portion) of the book's argument ?


    Sure, there are OSS successes, but I can't believe the author makes a definitive argument for OSS in business as a core part of a company's business plan - there are just too few examples of real solid successes and fewer still of money-making, solvent OSS-based companies.

    • Often Mozilla is used as an example of a failed OSS project, but I don't think it is at all, both from a business and a pure 'Open Source' perspective.

      From a business perspective companies such as AOL are just beginning to exploit code generated by the Mozilla project. In Spain, AOL has just launched a product called 'AOL avant', a iMac-style box allowing web browsing and email for about $15 a month, all inclusive. They are aiming to get quarter of a million of these boxes into homes. The boxes run Linux, along with a browser that I assume is based on Mozilla. When people say that Linux isn't suitable for non-techies, then this is a great example, because AOL Avant has been designed to be used by your grandma. And quarter of a million users is a lot.

      It is true that the project is taking a long time, but then complex software development does take a long time. Microsoft knows this - they spend years and years refining sub-standard products until they are sweet - that's part of the reason they are in the position they are today - they don't give up. Nor should the OSS community give up on Mozilla. It is a strategicly extremely important project in the good fight against the beast from Redmond, and the team has done a great job so far.

      I use it every day and it is really stable now and packed with features. For instance, it can render XML directly from XSL style sheets, something that IE 6 cannot do (or at least I cannot get it to work). Keep up the good work Mozilla crew, your work is great and your project will turn into a great success story for the OSS community!

    • If you are eager to see a success happen; help out!

      The whole idea of OSS software, is that nothing will happen without people. More and more people are working on Mozilla now, but a year or so ago there was a lack of contributors (apart from Netscape).

      Just don't sit there whining - if you indeed want it to succeed - do something about it!

      A great place to start: is here [mozilla.org]

  • by MikeCamel ( 6264 ) on Tuesday September 18, 2001 @11:24AM (#2314778) Homepage
    I'll certainly be buying a copy, as this is a subject that I find very interesting. There are a whole bunch of people out there with skills in running projects - whether they are money-generating or not - who the community could be using better. That's not to blame the community - these people have to put themselves forward, and show how they can add value to a project. They also need to understand how the community, and the community's philosophy, works. I've been flamed before for suggesting that non-coders should be allowed to be involved in OSS projects, with the suggestion that if you're not good enough to code, you're not good enough to be involved. I don't think that this is right - and there are people out there (including me) who have coded, but realise that their skills lie elsewhere, and that the way they can best further the projects that they care about is to offer the skills that they do have. It's not as if we tell the documentation teams that they shouldn't be involved!

    So, how do we go about doing this? There are places where projects hang out - sourceforge, for instance - but I'm not sure that they are a good place to look for non-coders. I'd like to see projects who realise that they could use organisational help (wouldn't the code lead like to spend more time coding? Of course they would, in most cases!) looking for help - but I don't know where they should look. Functionality priorisation, tester recruitment, visibility improvement, strategic focus, project communications - all things that at least some projects could probably use.

    So - how do we move forward? Maybe people like me need to make it clear how our skills may be able to help important projects, and hope that the people running them can make use of us. Maybe we need our own forum (hmm - maybe not!). I'd love to hear other suggestions.
  • The one quibble the reviewer has with the book seems to me likely to be one of its strongest points. Open source has not delivered good end-user applications so far; its strength has been in developer-facing products such as the kernel and the Apache web server. Open source does not meet the challenges of end-user-facing software very well because it requires non-programmer skills like interaction design and graphic design, and does not appeal much to people with those skills. In addition, good user experience design depends on extensive user testing, which requires cash outlays. Open source may produce good software by and for programmers but it falters when it comes to delivering software suitable for the average user. This suggests a hybrid model in which commercial developers create proprietary applications on top of free back-end software.

    Tim
    • I don't disagree completely with this, but I think , rather, that the lack of mature GUI applications has been the they haven't been around as long as the back-end stuff. With some more time, they'll catch up.
      • I agree wholeheartedly!
        All these old schoolers preach about how OSS and Linux will never replace M$ on the desktop. You (melguin) are absolutely right on target. The only reason GUI apps (such as Evolution, KDE, Koffice, whathaveyou) are not as successful is because they haven't been around as long as the platforms/backends on which they run. For example, think of how far and fast KDE has travelled just this year! In less than a year's time, they have visually and functionally went from a win95 interface and then SURPASSED win2k in less than a year. Think of those 2 dates: 95 and 2000, that's a 5 yr difference. Open Source developers (I am not one of you yet); I salute you
    • Now, this is where we need more developers, testers and supporters for projects such as GNOME, KDE, Mozilla and AbiWord!
  • This is not a book I'd buy sight unseen. Just look at the table of contents and then consider the title. At 208 pages, chapters 6 & 7 better be most of the book.

    1 An Open Source Primer.
    2 Open Source in Business Terms.
    3 The Open Source Philosophy.
    4 Open Source and the Internet Economy.
    5 Network Organizations.
    6 Managing a Virtual Team.
    7 Managing Distributed Web Projects.
    8 Tools for Building Open Source Sites.
    9 Open Source Tool Tips.
    10 Setting Up an Open Source Project.
    11 Open Source Management Anecdotes.
    12 So, Are You Ready for Open Source?
    • From the looks of it, this book wasn't written for open-source gurus like the people who frequent /. It was written for managers, the pointy-haired types who sign our paychecks. Before a manager who's been working with Redmond products for years will consent to handling open-source projects, he'd darned well better know what open source is and isn't. From the chapter headings, most of the book is dedicated to explaining open source (an Open Source for Dummies, if you will), and noting the benefits and drawbacks, and how to work with both. Approached from this angle, that $30 is an investment in your future if you buy the book and hand it to the boss.
  • I think that you can scratch a personal itch by joining an existing project, quite often. Just because you didn't get to start it from scratch (ooo! pun intended!!) doesn't mean you have to ignore the fact that someone else might already be 60% of the way toward your perfect solution. Your itch might be "Wow, I wish project Z had feature Q."

    That is, of course, unless the itch you're trying to scratch is a need for credit, in which case freshmeat needs to create a new category called "Projects that are only being created so that person X can put his name on it and hope someone else develops it into something that he can take credit for".

  • Mosaic killer? (Score:2, Informative)

    by sclatter ( 65697 )
    Whoever thought Mozilla was short for "Mosaic killer" needs a history lesson.

    Before Netscape was Netscape it was called Mosaic Communications. The browser they made was still called Mosaic. People may remember back in the day, pre 1.0, the betas had this spiffy logo with tiles that revolved as a progress indicator.

    The browser was envisioned as the Killer Application for the Internet, much as the spreadsheet was the killer application for the PC. Somewhere in the back of my closet is a Mosaic Communications t-shirt with a big Godzilla look-alike on the back and the words "The Killer Application". That was the original notion of Mozilla. Mosaic was the killer app, we weren't trying to kill Mosaic.

    Then, of course, UIUC came out and slapped us around for using the Mosaic name so the company adopted the Netscape name instead. No more Mosaic, no more revolving tiles logo. This is why we all had to live through the "throbbing N" status indicator for 1.0. They just didn't have time to come up with anything different before the release.

    sclatter
  • Its often said that the best way to break into an open source project is to find an application you like, and add to it a feature that you would find useful.

    The problem I have found with this is that few projects have any online design documents, to help someone new to the project find their way around. This is also frequently true in the commercial/closed source world of development, but in that setting you can always wander over to the lead developer's pod and ask him for some clues. Now I know you can email the maintainer, but you don't always feel comfortable taking up their time when you know they are very busy and doing this on their own time.

    Why are design docs, in particular things like class diagrams, interaction diagrams, flow charts, whatever, so rarely available? Is it because the projects aren't created from design documents in the first place, or is it more a lack of a sensible way to share designs in a digital form? Are there any decent free software reverse engineering tools to create 'how it is' design documents from the sources?

    <flamesuit>Is it a consequence of the kind of people heading up the individual project? I am aware that some of the most successful open source projects are run by experienced software engineers (apache being a classic example). But many of the smaller projects are run by teenagers who have recently learned to program. Is it simply that much open source software is produced by people who are not yet aware of the benefits and methods of design documentation?</flamesuit>
    • I've never worked on an Open Source Project (sorry!).. All my work has been at variuos software houses. In any case, the lack of documentation seems to be endemic to programing. For some reason it's always the last thing on everyone's plate and the first thing to be ignored or skipped. Seriuos, forward thinking, well written documentation is the key to any good project. For maintanance, upgrades, even just shared development work.. documentation is essential. Then again, so is well documented code and code written in an easy to follow format.

      Honestly.. it's not the "teenagers" who forgets to document.. it's everybody,
      • Most software engineers would prefer to code rather than to document, even though documentation is equally necessary to the success and maintainability of a project. They document even less in open source, though, and the reason is that they're not managed as closely.

        In any job, management needs to "encourage" people to do the unpleasant tasks which left to themselves they would prefer to ignore. In the open source volunteer model, no one is cracking that whip, and so the equally necessary but not equally pleasant parts of the job often don't get done.

        (I mean, Python has been around for years, and parts of the manual still say "I don't feel like writing this yet -- maybe someday.")

        I wonder if the book has any insight on how to deal with the problem.

        Tim
    • I think it's great that you want to get involved in an open source project, but if you are having problems understanding a projects source code, perhaps you should look at joining a smaller or less complicated project. I really don't mean this as a flame, but I would recomend starting out by joining a small project and going from there. As you gain experience, the larger projects will begin to make sense. In my experience, PHP and web based programs are a good place to start.

      Good luck!


  • "All software cannot be developed open source."


    Call it a pet peeve of mine, but its rather important to be able to say what you mean. This statement is equivalent to "No software can be developed open source." I suspect the author (of the book, not the review) intended to convey "Some software can't be developed open source." We should really take a moment to be sure we're saying what we intend to say.
  • I'm the admin of a small open source project. What I'd like is a book that builds on the experience of others that could help me do it better. What I don't want is a history of the open source/freesoftware movement. The only reason why I'm doing is because I enjoy it, and my only goal is building a good piece of software. I don't want to change the world, and I would like to distance myself as far as possible from anyone's (IMO nutty) political movements.

    Can anyone recommend anything? The review suggests this book is not what I'm looking for.
  • I've had the opportuntity to work with companies that are either using open source software as a backbone for their services and for their products.

    An area that I've seen in which all have many challenges with, is not in the development of their respective products and services, but in managing the environments, tools and source code.

    This is not unique to open source, but this is an area where open source could really contribute. Fundamentally the tools used by the software industry to manage and publish software are 20-30 years old and have not undergone much in the way of evolution. The tools and practices used today to manage the development of software, in most cases gets in the way of productivity and quality, because they are not DESIGNED to solve todays problems, they are adapted to solve today SYMPTOMS.

    If we look at all of the mainstream change control systems, they Generally don't solve todays business needs, resulting in customizations by the development teams, that generally miss the mark. They may support some engineering team needs, or some developer needs... But ask most team leads, project managers, and engineering managers and they will tell you that this is an area that causes alot of pain.

    CVS based on top of RCS

    Teamware based on top of SCCS

    Perforce based on top RCS

    Continuus based on top of RCS

    ClearCase based on Apollo DSEE

    Bitkeeper based on SCCS

    SCCS was developed... what around 1975, RCS early 80's, ClearCase/DSEE mid 80's

    Fundamentally these products are not DESIGNED to support all the different variants and product lifecycles to repsond to todays business opportunties.

    Individuals and Companies have made great attempts at creating wrappers, customizations, books, and articles to attack the problems that the deisign and implementation of these solutions failed to deliver. But this is only addressing the symptoms of the design and implementation of these tools

    A new look at the problem is needed, if anyone expects to see any significant improvement in the ability to deliver the right solution in the right timeframe to the right customer.

    I'm not sure, based only on my exepriences up-to-this-date, that open source methodologies can make any SIGNIFICANT improvement over todays current business methodologies... I don't see any accountability in open source metholodgies. Not being able to see accountability in the methodologies, leads me to be concerned about how open source addresss businesses, support the consumers need to effectively resolve issues and concerns.

    Regards,
    Kramer
    • I'm not sure what your point is (sorry) but if you're at all interested in source control software, you might want to check out Subversion [tigris.org]. I don't think their scope is larger than what is said in their goal statement; "to build a version control system that is a compelling replacement for CVS", but perhaps this is of interest to you... Personally I find their reliance on Apache slightly odd, but I guess a web server is always fun to run anyway. I'm looking forward to the first alpha release which should come this fall.
      • The book contents are about tools and running a project which implies specific tools, methods, and practices

        Fundamentally the question I ask myself is, "Is this book for OSS fun or profit?"

        Based on my experiences, I don't see the value from a business perspective

        Thanks for the pointer on Subversion, I spent time just the other day, reading about it. I think that the team effort will result in an improvement over CVS, but I don't see it or any other solutions addressing the problems faced in todays business environment. For example, versioning for source code is different than version/revisions of documents, from a document control perspective, or versioning of a bugid, requirement id, etc... Fundamentally, change control is difficult when looked at from a customer perspective, and working back towards engineering and marketing.

        Regards Kramer
  • This review didn't tell me much more than the table of contents would have. It would be nice to know what tools the author describes, the kind of examples that are included, and a general sense of the technical level.

    I say this because I am in charge of a large project. I've never managed a project before. Most of my learning comes from trying new stuff out and learning from my success and failure. I don't have the luxury of a mentor, and I don't have the luxury of a technical bookstore (one of the perks of living in a very small town).

    Something other than "this book rocks, huh huh" would be nice.

    Anyone else have a more detailed description of this book?
    • You may have already considered the following, but in a nutshell the following keys are what I look for:

      Managing Change

      Repeatable Process

      I've found that the better these two keys items are executed against, the better the productivity, quality, and timeliness of the project will be.

      What I mean be managing change, is all elements of a project: requirements, schedules, dependencies, source code, test code, development environment, build environemnt, test environment, packaging/assembly environment, st aff resources, etc...

      What I mean be control mechanisms, is what practice and supporting procedures/tools are used to control change (i.e approve, non-approve, etc...)

      Keys steps to peform

      Defining the project lifecycle in terms of both content and quality along a timeline

      Defining control mechanisms for pre-integration, integration, build, test, and publishing cycles

      Identify risk and mitigation plans for the first two bullets

      I've observed many tools and practices being used, ulitmately it is up to the people executing the assigned roles and responsiblities... there is no silver bullet in terms of tools... I myself do prefer lite-weight loosely couple tool versus the monlithic solution as it reduces both central point of failure and dependency on specilalized knowledge to maintain.

      Another key area to consider is to try and get as many people on the project to understand the product lifecycle workflow and practices, specifically change control and change management

      Good Luck,
      Kramer
    • While I haven't read this book, I can recommend two books about general software engineering which might be of interest to you.


      The Mythical Man-Month by Fred Brooks. A classic, and is not tedious to read. 2nd edition 1995 ISBN 0201835959


      Peopleware: Productive Projects and Teams by Tom Demarco and Tim Lister. 2nd edition 1999 ISBN 0932633439


      These are both readable and relevant to developers and managers. I think anyone involved in software development should read these books.


      Check out Steve McConnell's Construx recommended reading list: http://www.construx.com/ladder/index.htm [construx.com]

    • To those of you who wrote, thank you for the references. One of the main weaknesses in the whole software development publishing business is a lack of books that fills the gap between coding and planning. There are lots of books that describe coding techniques, Effective C++ comes to mind as an example of this. There are also lots of books on high level design, like Design Patterns, and management, like the Extreme Programming series. However, there are very few books that adequetly describe the integration of code, source control, development environments, and makefile management, and document development (including things like autoconf, automake, cvs, etc.). It's that integration of all those things that continues to bite me in the ass, and I feel like a blind man making my way through a unfamiliar kitchen with lots of sharp knives anywhere. Sure, books like The Pragmatic Programmer say things like "source control is good" and "automated testing is da bomb," but don't give any concrete examples to get one started down the path of effectively integrating those tools.

      Once again, thanks for your suggestions. Some of them may prove very valuable (I've ordered a few books and checked out some references already).

  • This really is not a good book.


    I bought this in June, as I was very interested in the subject. I read the first 76 pages in a few days, then set it aside and haven't read anything since.


    My memories of why I gave up on it are a bit sketchy by this point, but as I recall, at the very least, the book needed a good edit. Much of the prose is clumsy to read. The material is poorly organized.


    And at some point, the author starts dragging in jargon from Business School, as if we had all just taken the same Econ 101 course. If that's your cup of tea, then maybe this is the book for you, but it sure wasn't what I wanted.


    I bought the book looking for insight as to how to manage a project I've launched. Perhaps the book contains powerful insights later on, but given the poor structure and writing in the first few chapters, I doubt it. I hope a better book on the subject will be available soon.

  • I don't think using Gnome and KDE as a counter example to the author's assertion about the adequacy of open source development methods for GUI/Front-end applications is a good move. I think Gnome and KDE suck. So clearly, some of this is in the eye of the beholder.
  • ...though it's usually done by one person or someone acting as a czar.

    The secret, boys and girls, is a web-based UI. Granted, that doesn't fill the bill for a lot of applications, but for a pretty good number of applications it works just fine.

    It's called constraining the solution space.

  • 'Join a project rather than starting your own.' While joining another project is helpful, even useful, it does not replace the "developer's personal itch"


    This really means, "don't re-invent the wheel". If your project goal is to get working software package, it is quicker, easier, and hopefully has fewer bugs to work with and existing project and try to achieve synergy than starting another similar oriented project from stratch.


    See: Never do this [joelonsoftware.com]


    If you just want to write your own text editor that is fine too, but the benefit isn't necessary as great as what is possible through colloration.

Love may laugh at locksmiths, but he has a profound respect for money bags. -- Sidney Paternoster, "The Folly of the Wise"

Working...