Wednesday, June 27, 2007

Who Killed NDoc?

NDoc has been dead for some time now. In fact, if you visit the NDoc project site at SourceForge, you'll see that it hasn't been touched since February of 2005. In an email written by NDoc's author, we find the reasons why:

Unfortunately, despite the almost ubiquitous use of NDoc, there has been no support for the project from the .Net developer community either financially or by development contributions. Since 1.3 was released, there have been the grand total of eleven donations to the project. In fact, were it not for Oleg Tkachenko’s kind donation of a MS MVP MSDN subscription, I would not even have a copy of VS2005 to work with!

While lack of developer participation and user contributions wasn't the only reason that Kevin quit, they were certainly very compelling reasons to quit.

NDoc was and is a fantastic open source project. It's ease of use, feature set, and the frequency with which updates were made available made it a joy to work with. And Kevin was right on the money when he described its use as "almost ubiquitous." It enjoyed widespread use, and folks downloaded it as a must-have utility without even thinking about it. I know I did.

The problem, however, is that in not thinking about it, we also didn't think about the hours and energy that went into building, debugging, testing, documenting, publishing, and maintaining it. We didn't think about the time to cull through the defect reports, interact with the users, respond to feature requests, deal with mail bomb threats, and so forth. We just grabbed our freebie and ran with it. We didn't think about the poor guy who had a family to feed, bills to pay, and a completely separate life to maintain. We just took, and never gave in return.

We expected much, and gave very little beyond demands, requests, criticisms, and an increase in bandwidth costs. It's no surprise that the man lost his enthusiasm for the project. No one volunteered to help maintain it. No one volunteered to lend a hand, and very few offered to help pay the meager $5 donation.

When the mail bomb attacks came, it was all over. But that was only the last straw. By then, the damage had already been done. The mail bomber wasn't the one who killed NDoc.

We killed NDoc.

By our very apathy, by our refusal to support the open source products that we love, and the developers who created and maintain them, we doom them to death.

Microsoft has released the CTP of Sandcastle, their attempt to fill the void left by NDoc. As will inevitably be the case, it will be big, slow, and not nearly as flexible or fun to work with as NDoc. It will have fewer releases, and Microsoft will be far slower to respond to defect reports. (Ready yourselves for the "It's not a bug, it's a feature" disclaimer.) All the beauty that comes with a highly interactive open source community effort will be lost in the shadow of a giant corporate software project.

We will have no one to blame for it but ourselves.

I was excited to hear that Microsoft was incorporating unit testing into Visual Studio 2005. But I loathe their implementation of it. Instead of embracing the standard models used by NUnit and JUnit, they bastardized it and threw all our previous tests out the window, resulting in a conform or die scenario. As always, Microsoft's assimilation strategy prevails. It will likely happen again with Sandcastle, and I fear that the masses of us who have to maintain and document .NET 1.0 and .NET 1.1 code bases will be intentionally left behind as the .NET 2.0 marketing machine wields its iron grip on Sandcastle's design.

NDoc did not die; we killed it. And now, we have to pay the price for our own apathy and greed. Another product--bound to be something with which we are unhappy--will take its place.

Which open source project is next on the chopping block? We love them so much that we're willing to bleed their developers dry of enthusiasm by refusing to contribute to them. What shall we kill next? Who will deliver the first killing blow?

The sooner we clear them out of the way, the sooner a corporate giant can replace the innovative projects we love and control with some knock-off that we despise and can't control.

No comments: