Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
Programming

Submission + - Dreaming in Code

AdamBa writes: "Scott Rosenberg's new book Dreaming in Code chronicles the attempt by Mitch Kapor's Open Source Applications Foundation to produce a new Personal Information Manager, code-named Chandler. Beginning in the spring of 2002, Kapor gathered programmers together with the somewhat vague goal of producing a new piece of software inspired by Agenda, a Lotus product from the late 1980s. The new product would be cross-platform and open source; the other details were still to be determined.

Rosenberg's book sports the obligatory back cover blurb comparison to "The Soul of a New Machine". It's the latest in a long line that purport to be the worthy successor to Tracy Kidder's Pulitzer Prize winning 1979 tale of a computer project at Data General. Although the book is worth reading both for programmers and the rest of the world, it falls short of the master in a couple of ways.

First of all, unlike Kidder's heroes who eventually triumph over long odds, Chandler doesn't get finished (disclaimer: I work at Microsoft, which produces Outlook, a potential competitor to Chandler). It progresses at an excruciatingly slow pace, until after 3 years Rosenberg gives up and publishes the book. The product is still shuffling towards a 1.0 release; one of the best aspects of the book is that the participants are still out there, blogging and coding away. Chandler may well mirror the Mozilla project, getting bogged down at the start before gradually moving out of the "large pile of interesting code" phase at which the book bids it adieu, and eventually maturing to take over a part of the world; but right now it's unclear what the future holds.

More importantly for the story, Rosenberg does not spend much time delving into the motivations and inner feelings of his characters. Kidder's big advantage at Data General was that he was actually present during the project, rather than relying on the after-the-fact interviews that guide many similar books. Rosenberg was also there for the duration, sitting in meetings and watching the team work. But aside from some quotes from blog posts at the time, we never get a sense for what the characters are thinking. They wind up very two-dimensional, identified mostly by their previous work experience and area of Chandler that they own: there's the old Mac guy working on a prototype of the UI, the Next manager trying to architect the system, the former Lisp programmer designing the repository, the two dudes from Netscape thinking about network protocols, and so on (somewhat strangely, but presumably intentionally, Rosenberg rarely even describes anybody's physical appearance). This is an important oversight because it is apparent that the participants are not completely aligned in how they would implement Chandler; the slow pace is partly due to doubts about the technologies, algorithms, and features that have been chosen. The result reminds you of a basketball team composed of All-Stars who haven't practiced together much, with each one grumbling that if they were only given the ball more, the team would win. Drawing out some of this internal dialogue would have emphasized its impact on the project. It also would have demonstrated the somewhat artificial nature of the open-sourceness of the project; people were initially brought together and told to work out their differences, rather than being able to evaluate the current state of the project and decide if they wanted to participate (one notable battle is between the team members who want to get some code working and then improve it, and those who want to do more up-front design: the fight continues until those who advocate the former plan give up and abandon the project one-by-one).

At one point Rosenberg actually writes, "By now, I know, any software developer reading this volume has likely thrown it across the room in despair, thinking, 'Stop the madness! They're making every mistake in the book!'" (luckily, he said it about 10 pages before I was about to do just that). Certainly the Chandler team did err in a variety of ways, but to my mind they made one overarching mistake. They ignored the obvious "elephant in the room" problem with their plan: trying to make a distributed PIM that synchronizes without a server. Instead of figuring out an algorithm that would work for that, they spend their time debating over details of visuals and network protocols. It's somewhat puzzling why such an individually experienced team would have such a collective blind spot. In the end it takes a new arrival on the team to point out that this problem is extremely hard, and eventually redirect the project towards a server-based approach. This new person is also the first one with prior experience working at Microsoft, a fact that you can interpret as you wish (to me, as a Microsoft employee, it made the mild potshots that Rosenberg directs at the company seem silly).

The other decision that caused problems, but is never questioned by the team or the book, is the plan to produce an application that runs on multiple platforms (WIndows, Mac, and Linux). The fact that Microsoft writes almost all of its software for a single platform is an often-overlooked technical advantage, which makes it simpler for the company to develop applications, and lessens the test burden significantly. The decision to go cross-platform leads to a dependency on a cross-platform GUI builder, which leads to problems when it doesn't support features that the team needs. Although I understand the motivation to go cross-platform, the team also missed the fact that for an open-source project, cross-platform porting is a perfect task for someone outside the core team. Get your code working great on one platform, induce extreme amounts of envy in someone who runs a different platform, and let them scratch that itch until you are cross-platform.

Rosenberg takes a 70-page break in the middle of the book to look back on the history of software development in general, trying to understand if there is a better way. He presents some fascinating research from the early days of programming, making you realize that all the problems we have today were perfectly anticipated by programmers 30 years ago (unfortunately, they didn't have any better answers than we do). I was hoping that I would get some good advice from this section, but his overview of development practices is somewhat cursory, and he gives roughly equal time to the important (test-driven development), the futuristic (Jaron Lanier has resurfaced after his virtual reality heyday and is now somewhere beyond the gravitational pull of the inner planets), and the incomprehensible (Charles Simonyi and his thing-that-Charles-Simonyi-is-working-on-that-nobo dy-groks). Rosenberg admits that he doesn't fully understand all this stuff, and we have to cut him some slack: we don't fully understand all this stuff either.

A better place to gain wisdom for your own software project is simply to play fly-on-the-wall as the team — despite the best of intentions, no financial concerns, and very smart people — makes the same kinds of mistakes that we always read about, but "know" that we would never make ourselves. They plan too many features, don't make realistic schedules, can't decide on goals for their interim releases, etc. They even have the advantage of a brilliant (to my mind) usability design insight, that the program should present the user with a model based on David Allen's "Getting Things Done" plan of a single to-do list. This is the direction in which Outlook is moving, but the Chandler team nevers takes much advantage of this vision. In the end the project is a great example of what not to do, and Rosenberg does a great job of telling that story. As Kapor muses at the end, "I do think that organizationally and personally we've learned an enormous amount about how to develop software. We've kind of reinvented the wheel. These are things that other people know, so it's taken us a little longer to learn those things. But having learned them, that's a kind of intellectual capital, and I'm absolutely firmly intent on reapplying it and staying the course." It's not clear why the Chandler team needed to reinvent so much that others already knew; but hopefully people who read the book will realize thay they are not immune to problems either, and do a little bit more of whatever it is that you need to do more of, and a little bit less of whatever it is you need to do less of. The question of just what those things are won't be any clearer when you are done reading Dreaming in Code, but at least you will know that you aren't alone."
Perl

XML::Simple for Perl Developers 186

An anonymous reader writes "XML has become pervasive in the computing world and is buried more and more deeply into modern applications and operating systems. It's imperative for the Perl programmer to develop a good understanding of how to use it. In a surprisingly large number of cases, you only need one tool to integrate XML into a Perl application, XML::Simple. This article tells you where to get it, how to use it, and where to go next."
Upgrades

Submission + - New material stiffer than diamond

sporkme writes: "A team has developed a new material that has taken the hardest substance crown from diamond. From the article:

They mixed molten tin, heated to about 300C, with pieces of a ceramic material called barium titanium — often used as an insulator in electronic components. The particles were each about one-tenth of a millimeter in diameter and were dispersed evenly through the tin using an ultrasonic probe.
The work was done at universities in the United States and Germany."

Why Software is Hard 409

GoCanes writes "Salon's Scott Rosenberg explains why even small-scale programming projects can take years to complete, one programmer is often better than two, and the meaning of 'Rosenberg's Law.' After almost 50 years, the state of the art is still pretty darn bad. His point is that as long as you're trying to do something that has already been done, then you have an adequate frame of reference to estimate how long it will take/cost. But if software is at all interesting, it's because no one else has done it before."
Linux Business

Open Source Advocacy Group Quiet About Launch 31

polar_bear` writes "Yet another open source advocacy group is in the offing, but trying to keep the lid on until its official launch at LinuxWorld OpenSolutions Summit. Robin 'Roblimo' Miller ferrets out a few details of the nascent Open Solutions Alliance on Linux.com: 'Our anonymous interviewee says 'at least 10' companies have signed up, and that they are 'talking to dozens more.' While he refused to name any participants, Linux.com has confirmed that SpikeSource and JasperSoft are both involved.'" Linux.com and Slashdot are both owned by OSTG.
Software

Vista - iPod Killer? 557

JMB wrote us with a dire warning, as reported by the San Jose Mercury News. Apple is cautioning its Windows-using iTunes customers to steer clear of Vista until the next iTunes update. The reason for this is a bit puzzling. Apparently, if you try to 'safely remove' your iPod from a Vista-installed PC, there's a chance you may corrupt the little music player. They also claim that songs may not play, and contacts may not sync with the device. Apple went so far as to release a detailed support document on the subject, which assures users that a new Vista-compatible version of the software will be available in a few weeks. Is this just some very creative FUD? If it is not who do you think is 'at fault' here, Microsoft or Apple?
Software

Is Computer Programming a Good Job for Retirees? 147

braindrainbahrain asks: "Ask Slashdot has been rife with career advice lately, so maybe I can get some too. I hit a milestone recently, the big five oh, and the realization of retirement is starting to settle in. The trouble is, I don't want to sit around, play golf, or even travel that much. I work in a technical field, but I have always enjoyed programming. Indeed, I do it as a hobby. I wonder what you readers would think about programming as a post retirement job. It seems well suited for a retiree, one could do contract work for a few months of the year, in some cases work from home even. By way of background, I have worked in hardware engineering for a very long time, and have pursued graduate study almost regularly (two Masters degrees so far). Should I begin preparing for a post-retirement career in computer science?"
Microsoft

Confidential Microsoft Emails Posted Online 479

dos4who writes "From the class action 'Comes et al. v. Microsoft' suit, some very enlightening internal Microsoft emails are now made public. Emails to and from Bill Gates, Steve Ballmer, Jim Allchin, etc all make for some mind blowing reading. One of my favorites is from Jim Allchin to Bill Gates, entitled 'losing our way,' in which Allchin states 'I would buy a Mac today if I was not working at Microsoft.'"
Privacy

Cory Doctorow on Shrinkwrap Licenses 125

An anonymous reader writes "Web privacy advocate Cory Doctorow is on about shrinkwrap licenses, in his latest essay. They've always been onerous. Now, Doctorow says the new EULA in Vista and even the MySpace user agreement could put users at risk of being sued. He closes with: 'By reading this article, you agree, to release me from all obligations and waivers arising from any and all [everything].'"
Biotech

Researchers Use 'Decoy' Molecule to Treat Cancer 40

Jerry Rivers writes "The Globe and Mail is reporting that scientists in British Columbia have successfully used a 'decoy' molecule to shrink advanced prostate tumors. Citing a paper published in the Proceedings of the National Academy of Sciences, the the Globe story explains how the researchers are the first to find a way to block the process of androgen reception in cells and prevent, a key trigger in the onset of prostate cancer."

Slashdot Top Deals

May all your PUSHes be POPped.

Working...