KOffice Team: A Handful of Coders, a Lot of Code
nickbrown writes: "In this interview with the KOffice development team it is revealed that only about 4-6 people are working on the suite of applications. It would appear they lack the resources to keep up with the likes of openoffice.
Worth a read as it highlights the troubles they are having trying to produce a truly productive office suite for KDE."
The free version of StarOffice is OpenOffice, which was mentioned.
- W. Blaine Dowler
http://www.bureau42.com
While I wait for the poor slashdotted server to retreive the article, I should mention that the right 4 to 6 people can outperform the wrong 400 person programming department.
Small teams often can focus on the issues at hand and make a more tightly tuned product than the big teams, and if they fail...not as much is lost. This is especially true when you have a good well established foundation onwhich to build.
Where's the "scratch an itch" factor in coding an office suite? People that are smart enough to contribute to these projects tend to prefer logical markup such as LaTeX. So you'd expect very few OSS programmers choosing to work on this as their hobby.
...open source tactics.
I mean, like, really.
Why don't open source coders collaborate more? Why in the hell do we need a half dozen different office suites?? Give me one good implementation, and that's all I'll ever use. Is it just that getting geeks to cooperate is like trying to get a group of 3 yr olds (or cats) to all go in the same direction -- near to impossible??
The project is so big, to compete with MSO, that perhaps all the different groups (OpenOffice, KDEOffice, Gnome office, Gnumeric, Abiword, etc) should all collaborate somehow and make a killer product. Then maybe we'd have a MSO killer.
Sure! Because combining 4-5 totally different codebases that do the same thing always results in a product that's 4-5 times better!
OtakuBooty.com: Smart, funny, sexy nerds.
This interview was originally planned to take place during the FOSDEM, but we didn't have the time to do it, so it was held on IRC on Tuesday, February 19th 2002. Of course, the log had to be edited and reshaped. The result is this informal interview.
:-) Kalle (Matthias Kalle Dallheimer) added KChart, which was developed for his company (Klaralvdalens Datakonsult)
;) I always joined in the effort started by someone else. I'm the "manpower that makes things possible", maybe, but I never take the initiative to break things myself. I joined Waldo for ksycoca, Coolo for kio-make-it-cool, etc. :) :)
:) Krayon had nobody for quite some time. Recently someone committed a few fixes, though.
;)
;), but there are many many missing features that are easy to add. ;)
... I also plan to work on graphite a bit more if the free time allows it.
;) I think KOffice-1.1.1 is only as stable as it is due to the multiple betas
:}
:) ...and as noone except Shaheed joined, it somehow didn't really work out. Some code is there, but I just don't find the time ;)
... incorrectly as in "according to the SPEC" ;) It's really not funny to develop that, I can assure you. So when you don't get paid for it you lose the motivation and move on to something more interesting.
.doc :(
.doc file in the hexeditor for hours :)
;)
:)) But I find this very good that RMS states this. I think this 1) finally gives some credibility to KDE for the "GNU only" people. 2) it might actually foster some cooperation.
...
.desktop files ? .tar.gz for two reasons:
;) :)
The participants were:
Philippe: Philippe Fremy, (freehackers team), interviewer.
Thomas Capricelli: support, hosting, photos and help (freehackers team).
Ben: Ben Adler, logging and help
Werner: Werner Trobin, KOffice developer
David: David Faure, KOffice developer
Laurent: Laurent Montel, KOffice developer
Thomas: Thomas Zander, KOffice developer
The KDE room at fosdem Philippe: How was KOffice started ?
David: Torben Weis originally started KOffice. He wrote the libs and Reggie (Reginald Stadlbauer) wrote KWord and KPresenter. Torben also wrote KSpread.
Werner: Torben is a programming-ueber-god. He is a programming-task-force in himself.
Philippe: Where are they now ?
David: Reggie is working for Trolltech. He is behind QtDesigner. This is why it had a "Tools" menu for inserting things, instead of "Insert". Tools is what KWord and KPresenter had.
Werner: Torben is working at the Technical University of Berlin IIRC. Last time I talked to him he was developing a CASE tool or so. Nothing KOffice related.
Philippe: How and when did you get involved in KOffice ?
Thomas: Ohh, I don't recall exactly when. Something like 2 or 3 years ago. I picked up where Reggie left off since he ran out of time. KWord was unmaintained at the time.
David: One year ago. KWord was really needing some help, so I jumped on the boat. I proved that it was actually possible to use the richtext stuff in KWord, which Reggie and Thomas had started to doubt, I think. Backporting QRichtext to Qt2 was easy. The real challenge was redesigning KWord around it. Reggie and Thomas had great plans, but no time for them, so I just did it.
David: In general I realized that I never *ever* started anything new in KDE
Thomas: I like working with David. I have ideas and a general design (plans sounds good) in my head but no time to do it. David is just someone very good at the implementation and the details and stuff; works great together IMO
David: I agree
Philippe: Could you give us a short report of who is doing what on which application in KOffice right now ?
Werner: I am mainly hacking the core libraries and filter related stuff.
David: I am implementing WYSIWYG in libkotext (common to KWord and KPresenter), and some other KWord fixes. I really thank Mandrake for letting me work fulltime on KDE.
David: Nobody is hacking KSpread right now except some random contributors
Laurent: I improve KPresenter (zoom + page), add the DCOP interface to KWord/KPresenter. I also fix some bugs in KChart.
Thomas: I am hacking the tables in KWord. For 2 versions they have been rewritten twice, lets do it another time. This time I actually think I know what I am doing. So I am implementing it the way I think it should be done. Plus fixing the bugs that bug me in other parts of KWord. Plus I am always bugging David about stuff he is doing in KWord.
Laurent: Nobody is working on kugar and kivio.
David: Kontour is being redesigned by 2 or 3 people, but although they had the time to break everything, it doesn't look like they have time for fixing things now.
All in all, it's almost one main developer per application only, and random contributors... surely not enough.
Philippe: What about KFormula and KChart ?
David: KFormula has a single developer, Ulrich Küttler with little time. KChart has two parts. The core engine, developed by Klaralvdalens Datakonsult (Kalle's company), and the KOffice part, on which Laurent works sometimes.
Philippe: What about the remaining ones, in the KOffice cvs: KPlato, graphite, kosoap ?
David: those 3 are unreleased alpha stuff.
Werner: graphite is my little pet project, nothing worth writing about in the current shape.
David: koshell is an old hack of mine, I'm trying to pass its maintainance to Sven Lueppken, but it's really Werner who's hacking it for now
Werner: I'm really lacking time for hacking
Thomas: KPlato is a planning application, its been through the design phase. The design is implemented and it is basically waiting for people to finalize the design, I.e. fill the classes allready there. KPlato is 'designed' by 5 people talking on a mailing list without a line of code. I have implemented that design completely. The design I am talking about is just the data classes, nothing more. Naturally the next thing that has to be build after that is a GUI. But that is simply not done.
Philippe: a good project planning application is really something missing.
Thomas: I know, that is why I jumped in, hoping to kickstart the project. But after almost no code was written by others I found that this was not worth my time for now.
Thomas Zander and Laurent Montel
Philippe: So basically, you are 2 full time, paid developers, plus some filter developers, plus 3 or 4 part time contributors.
David: hmm, more than 3 or 4 I think, if you allow "part time" to be very small.
Werner: Yes, the filter developers are Nicolas Goutte, Shaheed Haque (lacking time), Ariya Hidayat, Clarence Dang,...
David: lots of filter developers, if you count them. Usually one per filter.
Philippe: It looks like some help would be welcome.
David: Yes, definitely. On the applications (e.g. Krayon, KPlato, Kontour etc.) we definitely need help. Those apps have almost nobody working on them. The other apps do need contributors, too.
Philippe: What is the programming experience required to contribute ?
David: People usually assume that writing an office suite is very difficult That's not true. _Some_ part of it are difficult (can I say WYSIWYG ?
Thomas: It is not too hard to get in. It is written in a Object Oriented language after all. Most stuff is cleanly isolated from the core and well documented. The hard part is getting to know the structures of the applications, but here, we can help. After that, its just programming, which is fun
Laurent: Any help is welcome, whatever the experience. Some people can create templates or write documentation, tutorials, etc... It's not necessary to know C++. Of course, you must know C++ if you want to hack on KWord.
Werner: There's also a need for GUI guys and artists. We don't have a KoShell icon, for example, and the user interfaces are a bit crowded.
Philippe: Do you have places where you would like to see someone contributing right now ?
David: Definitely. Right now, KPresenter could have a UI redesign (hiding the least used toolbar buttons etc.). KWord needs dialogs for creating envelopes. etc. etc. Many small jobs. A new KWord developer actually started by fixing a simple error message, and is now porting all of KOffice-1.1.1 to KDE3....
Philippe: What are the planned improvements for KOffice ?
David: Right now we are busy fixing the things that we broke. In KWord, due to the WYSIWYG text layouting. In KPresenter, due to zooming support. This sounds small, but actually, it led to a big design change.
Laurent: I am fixing KChart and adding some features. Footnotes for KWord is also planned.
Werner: My short term goal is to implement the rest of the new filter system. The long term goals are e.g. a better clipboard, better support for embedding, a general clean up of the core libraries,
Philippe: Do you have a list of features that will make it into the upcoming release ?
David: Now about the long term plans... Those really depend on how much man power we can get. We have a list for what's already done (see the KOffice release plan, more stuff will be added to that while being done) However, I can't say what will be in the release that is not already done. That's where time / number of developers is the problem.
Thomas: My long term plans for KWord (which is all I am restricting myself to at the moment) is adding more stuff that makes it easier to use the application. Like markup macros. And character styles, frame styles and page styles..
David: My next step for KWord is frame z-order, and then looking at the buglist to see what people requested (for instance, double underline...)
Philippe: You planned 3 Beta and 1 Release Candidate, isn't that too much ? KDE3 had originally 1 beta and 1 rc (which turn into a second beta), no ?
David: It's exactly what we had for KOffice-1.1 . The release plan for 1.2 is _exactly_ the same as the one for 1.1, just one year later. Code reuse, release plan reuse
Werner: KOffice gets very few testers. Some people download it and work with it for five minutes. This simply doesn't highlight nasty bugs, but just real showstoppers. There are only few people actually e.g. writing a longer letter or creating a whole presentation.
Philippe: So you need more users too ?
Laurent: yes !
Werner: Definitely. Most of the testing is done by us developers
David: Actually, betas are a really great thing for developers. We can release code for people to test, without having to worry about it being considered a final version, and hence a must-be-completely-stable one. More developers is much more needed than more users. Not handled bug reports are the proof of that. But it's true that more (advanced) users helps finding the source of some problems. Sometimes.
Thomas: We have a number of end-term students (last year project in the company) basically they all say that KOffice is not usable at the moment, most bugs are being fixed, when that is done the not-enough-users problem will go away.
Laurent Montel and David Faure hacking
KPresenter during a boring presentation
Philippe: The must-ask question: what is the state of the import/export filter for MsOffice ?
Werner: We have some import filters, at least. The WinWord import filter imports tables and text/basic formatting (pictures are disabled). The Excel import filter works quite nicely.
David: There is currently no export filter for MsWord. This is an area that definitely needs help.
Werner: As I worked on that myself I can assure you that exporting to WinWord is *not* funny.
Thomas Capricelli: Could we have some more information about picture embedding in KWord ? What's the problem ?
David: Actually, the problem is for the Windows Meta Files, which map to a Kontour part. Since KIllustrator (now called Kontour) crashed for some time, importing wmfs was disabled. And since Kontour is currently very broken (redesigned), enabling it now wouldn't do much good
Thomas: Picture embedding has gone a long way since the horrible support in 1.0. Pictures are correctly scaled, correctly and intuitively placed and can be embedded or placed external of the main document. Lots of stuff has to be done, but it is getting there quite rapidly.
David: I think it's only WMF embedding that is disabled. Importing MSWord an document with bitmaps should work ok even in 1.1.1
Philippe: I remember the guy of wvWare starting a project for creating a generic Word import/export. Did that work ?
Werner: This "guy of wvWare" was me
Philippe: And on the side of abiword ? Weren't they supposed to help out ?
Werner: The abiword guys said they're going to help, but noone really did. They were also lacking time. I've written 99% of all code in wv2
Philippe: Can you reuse the stuff from OpenOffice ?
Werner: It's really hard. They use libc and nothing more. They have their own toolkit and stuff. You can't just take parts of it and reuse it. And the design is, well, hard to follow.
Philippe: But they somehow managed to understand how MsWord works, so I imagine you can at least get hints from there ?
Werner: yes, it helps, but it's very time consuming.
Philippe: What is the difficulty with writing it ? Is MsWord's format so messy ?
David: Afaik one very messy part is the incremental saving, i.e. appending the changes at the end of the doc instead of modifying the real data.
Werner: They don't save the full file all the time, but append "diffs". For example, I spent 3 days hunting a bug in my filter. The bug was in the specification.
David: I also suppose that writing an export filter for a closed commercial app is awful - if it crashes or says "can't open", you have no way of debugging that The format is just partially documented and somehow broken, not fully secret & broken.
Werner: There are situations where WinWord just crashes without further notice if one bit(!) is set incorrectly
Philippe: We sure all can understand that.
David: Sometimes I wonder if I shouldn't spend some time continuing the wv2 stuff.
Philippe: I did not pick it up: you are working on the filter directly in KOffice or working on wv2 which will be used by KOffice ?
Werner: Both, but I am lacking of time. Just to give you some numbers, StarDivision had 2 full-time developers for the im/export filter for more than a year! Now guess why KWord can't export
David: AFAIK Shaheed started to work on wv2, then seeing that no abiword developer could help making this advance, went back to his KWord msword filter....
Werner: The problem isn't (at least for the import case) that the file format is ultra secret/broken. It's just lack of time. It's so frustrating to read a
Philippe: Yes, not very funky stuff to work on !
Philippe: Some distro should give a kick to that ! I can't think of any Redhat support, but we could contact Suse.
David: Mandrake already sponsors two fulltime KOffice developers. Maybe it's time for the other distros to give a hand ?
Werner: Caldera sponsored my development last summer. I had six weeks to work on wv2. All the code which is there was written in that six weeks
Philippe: Everyone seem to be thinking OpenOffice is the Office Suite of choice for Linux. But I am not sure it integrates as nicely as KOffice applications do.
David: OpenOffice is not the Suite of choice, it is rather the only one that's currently doing the job. If KOffice improves, everyone (almost) will prefer KOffice (lighter, more integrated with the rest of KDE, nicer toolkit to use IMHO, etc.)
Thomas: After hearing 2 students swear for 3 days, I'm pretty sure Openoffice will not be the solution for companies for some time to come. (They switched to LaTeX now)
Philippe: KOffice has much more potential: it was developed by very tiny manpower in comparison with other suits or applications.
David: Yes, the power of KOffice is that it fully reuses the power of Qt and KDE. KOffice can embed documents thanks to kparts, it has configurable toolbars thanks to the XML-GUI, etc. This means KOffice development can concentrate on the actual office functionality. The rest is provided by Qt & Kdelibs.
Werner: Some people compare the pure line counts. OpenOffice has approx 8million lines, KOffice about 350.000 or so. We can use a lot of nice stuff from Qt and KDE. OpenOffice has to invent *everything* above libc. For a good example please see David Faure's 8-lines text editor, or the KPart article
David: I wrote a 5 lines "generic viewer". It can show any kind of file for which there's a KParts part. See docu in componentfactory.h
Thomas Capricelli: Did you read about latest RMS statement about KDE/Gnome cooperation ? What do you think about it ?
David: this doesn't apply to KOffice, since there's not really a gnome office suite.
Philippe: Is the Euro symbol supported ?
Laurent: The Euro works in KOffice no problem !
David: Yes. see this link on the KOffice website.
Philippe: And i18n support ? Are various exotic languages correctly supported ?
Thomas: Yes, see this example.
Laurent: Yes, now KWord supports bidirectional languages => arabic language etc
Werner: Qt (thus KOffice) supports UTF-16 and we use QString for everything the user sees. The translations are done by the KDE translation team (http://i18n.kde.org)
Philippe: I wonder if Abiword does that too. Do they use Pango and Gtk 2.0 ?
Werner: Yes, Abiword does that too. At least Dom Lachowicz, the guy I talked with about wv2, was implementing that. But they do their own Right-to-left support, from what Dom told me. I have no idea if that is in the latest stable release, though.
Laurent: Abiword is not integrated in Gnome. It uses some gnome libraries but not much.
Ben: Doesn't Microsoft want to use xml file formats in future office formats? If yes, wouldn't that make import/export a lot easier ?
David: Good question. It mostly depends on how they do it. The main advantage of XML is that it's readable. At least that will help. As for conforming to any spec of theirs, we know how bad they are at that. They will surely "extend" XML to do things their own way.
Ben: What about Aethera in KOffice? As a user, I'd LOVE to see Aethera in KOffice. How much do you trust theKompany to actually deliver Aethera, would you put it into KOffice CVS if it was an open license ?
David: Aethera is a mailer, right ? Then it has nothing to do with KOffice. It's important to understand what KOffice is about. It's about editing *documents*, and being able to embed documents from other KOffice components. There are plans for more KDE PIM stuff, integrating kmail with contact / calendar stuff. The kdepim module in CVS. This needs help too! KOffice doesn't mean "stuff you do at the office" in general. KMail is in KDE, but not in KOffice.
Laurent: Nobody works on Aethera ! At least publicly.
Ben: The latest aethera beta is 4/2001!
Werner: They also have Kivio there, but it doesn't seem to be maintained either.
Philippe: Where would you like to see more cooperation with other projects ?
Laurent: Filters, I think.
David: Yes, filters definitely.
Philippe: Do you think it would be possible to define a common free format for Office files, like it was done for
Werner: The first step is the common packaging format. This is discussed on the office_standards list, on their website. But I don't know the current KWord DTD good enough to participate in such a discussion.
David: We are currently discussing with the OpenOffice hackers about the ZIP packaging. So the thing we can say in the interview is that one of the plans for KOffice is to maybe switch to ZIP instead of
for efficiency reasons (ZIP allows "load on demand", "partial saving")
for compatibility with openoffice.
The other plan would be to use openoffice's zip code, and this is what we're discussing with them currently. This solutions makes loading/saving in KOffice much more efficient than using an external ioslave.
Philippe: Are you actively participating ?
David: Maybe we should get more involved in discussing this. You can say this interview will have been useful, I'll discuss the common file format with openoffice in the near future
Thomas (Capricelli): We are glad for that
Ben: can KOffice be compiled for embedded devices? Do you think making KOffice available for embedded devices would noticeably increase KOffice's user base ?
David: I think this is technically possible. I don't think any of us will take the time to do that, but anyone with interest in this can surely try.
Werner: It's probably no big deal to get it to compile, but it's hard to strip down the UI that it's usable.
Philippe: Thank you all for participating!
The Free Software community is more than capable of delivering an office suite. 4-6 individuals in not a bad team, but they should be focusing on a specific component instead of trying to do it all at once.
/.'d already so I am only guessing...
Abiword is an excellent word processor and Gnumeric is a great spreadsheet program. Gnome's figured it out. No one wants to work on a large, bloated project for free. Break it up into littl projects and you'll get a couple 4-6 individual teams.
Of course, the article is
int func(int a);
func((b += 3, b));
Comment removed based on user account deletion
The problem is that the OpenOffice people and many others are copying and not thinking of doing things differently.
For example when I developed my DeNotes I wanted to solve some problems. So I stepped back and said, Ok if I could how would I really do this?
Maybe if they thought like that it would change how we protray office applications. Sure it would be a hard learning curve for the user. BUT it is that or not being able to keep up.
"You can't make a race horse of a pig"
"No," said Samuel, "but you can make very fast pig"
Here we go again. I am once again going to mention something that NO ONE seems to understand is IMPORTANT in a wordprocessor. CITATIONS and REFERENCE HANDLING.
There is NOTHING that really separates one of these wordprocessors (abiword, kword, openoffice/staroffice) from one another. They ALL do the same sorts of things in the same ways...but not a one of them has something a real professional writer REQUIRES. None of them has what ALL college students (and many highschool kids) REQUIRES: an ability to handle citations and build reference pages.
Word and Wordperfect have this on Macs and Windoze via third party apps like EndNote, because the processors were designed so apps like EndNote could seamlessly become part of the wordprocessor (for all practical purposes). Endnote adds its own menubar entry so you can insert citations into your text as you go and then it AUTOMATICALLY generates correctly formatted reference page(s) based on user selection.
There is one and ONLY one "wordprocessor" app in linux/unix that can handle this well and that is Lyx. Lyx is IT. The ONLY show in town for any student or professional writer who needs to cite references in their writings. This is ALL scientists and ALL college students and anyone else who wants/needs to write serious research papers. You MUST cite references or your paper is unfounded heresay, yet NO wordprocessor project is even TRYING to add this capability to their app.
Obviously, none of the projects is interested in any professional writers. Their targets would appear to be letter writers and writers of any work that needs no support (fiction). This is fine, such as it is, but no one gets through this life without having to write SOME papers that require citations and reference pages damnit! If you actually have managed to avoid this then your degree must be astrology or basket weaving.
Someone on ANY of these projects: OpenOffice, Abiword, Koffice...provide either a pipe (like Lyx uses to communicate with the most excellent Pybliographic) so third party apps can work seamlessly with your wordprocessors and insert citation markers and handle reference page generation OR add this capability directly into your wordprocessors! Hell, OpenOffice/StarOffice is PARTWAY there but they dropped the ball BIGTIME. OpenOffice/StarOffice actually has what it calls a bibliography database but it is totally useless. All it will do is store whatever you enter into it MANUALLY. Then, it wont use this database to allow you to insert references/citations into a document, no, it just holds the information uselessly. Go that ONE extra step and make the bibliography database USEFUL: it should be able to import and export all the major citation formats (bibtex, refer, pubmed) and there should a menu item in the wordprocessor that talks directly to this database and will allow the writer to insert citations. At the end, you should be able to hit a "create reference page(s)" button and have staroffice/openoffice add a formatted set of reference pages to the ass-end of the finished document just like Endnote plus Word or Wordperfect will!
I mean, c'mon! Quit focusing on toy writing and add something that hardcore researchers and all college students require. If Lyx can do it, so can the more user-friendly wordprocessors like Kword, Abiword, OpenOffice, etc.
Because of this fatal failing in ALL available linux WYSIWYG wordprocessors, I have to keep Lyx around so I can do my real writing, leaving the rare note or letter to Kword or OpenOffice. What a waste. A nice, BIG app that is kept around just for simplistic writing. Lyx is OK but damnit, I want and need to write, not learn a programming language (latex). My job is to do biological research, not learn programming or hundreds of obscure latex commands just to publish. Lyx and I get by but there needs to be more options for the research paper writer/college student/scientist.
In Bushworld, they struggle to keep church and state separate in Iraq as they increasingly merge the two in America.
Open Source projects are motivated by ego in some cases ("I want to bulid the next great window manager") or some sense of technical correctness in others ("I hate the way OpenOffice looks/I hate Gtk widgets/etc."). So there's no real incentive to work together on a bigger project - why would you want to say "yeah, I built some tiny component that's part of this megalithic Open Source project, UltraOffice" when you can say "I am the lead programmer on KWord".
So knock closed source software all you will, money can be an effective way to motivate people to cooperate on bigger software tasks and put differences aside to achieve an overall better result. And though some Open Source business models make this possible, for lots of products (like office suites), nobody yet has figured out how to do this and it very well may be impossible.
"In this interview with the KOffice development team it is revealed that only about 4-6 people are working on the suite of applications.
./configure, make. This stopped me, I see no reason why it wouldn't stop lots of folks.
Yes, well I know exactly why that is. A few years ago I decided to hack kmail a little, until I found I had to build pretty much all of kde from source to do it. As opposed to installing the -devel headers as you would for more developer-friendly applications, then just untarring,
Casual hacking is the way to get started on a project, it's wrong to require a whole huge cvs import and hours of mucking around with scripts trying to get the thing to build. Once you start with the casual hacking and submit a few patches, it's much easier to justify the effort to get in all the way and sync up to cvs.
If the koffice team wants more helpers, then they should put the effort into making it easier to get started. That means writing some scripts to pull tarballs out of cvs and hacking together some autoconf stuff. This effort will for sure pay off. People will start sending patches, and after a while some of them will get involved in a more hardcore way.
Look, why are the 1,000's of people hacking the Linux kernel tree? Because you can just grab the tarball and build it, no fuss no muss. Only super-hardcore developers or paid employees are going to get into a project by syncing to the cvs from the word go.
David, bless him, didn't get this 3 years ago, I hope he'll think about it now.
Life's a bitch but somebody's gotta do it.
I wonder how the small v. large debate is influenced by management philosophies and organization.
In the limited experience I've had with software development one of the biggest limitations on software development was that merely adequate developers slowed down the really good developers. Projects couldn't continue forward until certain development milestones were met, so good people just kind of shut down.
This effect was magnified by well-intentioned managers. They wouldn't do anything to try to improve the laggards development skills or pacing because they were otherwise meeting the basic goals, were likeable people, and so on. The lack of vulnerability of the laggards also prevented the better developers from taking over the laggards projects or assisting their speedy completion, since the laggards had a sense of ownership and management "backing" which enabled them to maintain control of their segments in spite of the overall degredation of the project.
It leads me to wonder if development groups have ever applied a 6-Sigma style management process where the laggards were cut and new people brought in. I understand there's some risk -- new people slow everything down getting up to speed, but it has the potential advantage that it eliminates *known* hindrances, and its not an attempt to increase team sizes. In other words, you're trying to fix the team not make it bigger, hopefully avoiding some of the Man-Month style diminishing returns.