An Ode to Sharepoint

At a loss for other, more pleas­ant sub­jects to blog about, I will instead write about my neme­sis, that being that has brought naught but pain to my life. I speak, of course, of Microsoft Sharepoint.

To upgrade one’s ver­sion of Win­dows — Vista to 7, say — is by and large a pretty pain­less expe­ri­ence for the home user. Office, like­wise — there’s no dread that your Office 2003 files will be com­pletely unopen­able in Office 2007. So why is the poor sysad­min not afforded the same easy upgrade path?

In order to move an exist­ing Share­Point Ser­vices 2 web­site to a new net­work with Microsoft Office Share­point Ser­vices 2007, one must:

  1. Learn more than is healthy about the work­ings of Share­point and IIS (2 days, d10 SAN)
  2. Back up the orig­i­nal site to disk (using stsadm.exe not smigrate.exe, as the lat­ter is bro­ken) (5 hours, 13 GB)
  3. Install Win­dows Server, IIS, SQL Server and Share­point Ser­vices 2 on a new machine (1 hour)
  4. Con­fig­ure said IIS, SQL and Share­point (1 hour)
  5. Restore the Share­point site from disk onto the new machine (>8 hours, >120 GB, d10 SAN, fails unre­cov­er­ably when out of disk space)
  6. Per­form an in-place upgrade to Share­point Ser­vices 3 (Sev­eral hours, 40 GB, may fail unrecoverably)
  7. Back up this site to disk (5 hours, 15 GB)
  8. Con­fig­ure MOSS 2007 on the des­ti­na­tion server (2 hours, 24 Google searches, d10 SAN)
  9. Restore the disk backup to the MOSS 2007 server (5 hours, 40 GB, may fail right at the end if pre­vi­ous step per­formed incor­rectly, d100 SAN if this occurs).
  10. Man­u­ally recre­ate per­mis­sions on every Share­point site since all the users are now part of a new domain (8 hours, d10 SAN)
  11. Per­form a rit­ual to offer Great Cthulhu the souls of Microsoft’s Share­point devel­op­ment team (d30 SAN, remark­ably quick by comparison)

I began this task on Tues­day after­noon as a mildly knowl­edge­able Share­point user with vir­tu­ally no admin expe­ri­ence. By Thurs­day after­noon, I may have been our company’s most expe­ri­enced Sharepoint-wrangler. On Fri­day morn­ing, I started the above pro­ce­dure. We are now on Step 5. 200 peo­ple are expect­ing to have Share­point access tomor­row. They have not a snowball’s chance in R’yleh.

All Bugs Are Shallow… Except This One

In his essay “The Cathe­dral and the Bazaar”, Eric S. Ray­mond coins the phrase “given enough eye­balls, all bugs are shal­low” — mean­ing that with enough testers and enough pro­gram­mers, it is pos­si­ble to diag­nose and fix any soft­ware bug.

So why can’t my com­puter sus­pend and resume properly?

The con­cept of ‘sus­pend’ — or ‘sleep’, or ‘standby’ — mode, whereby the com­puter dumps its inter­nal state to RAM then enters a low-power state with its proces­sor and other hard­ware turned off, is not new. The ACPI stan­dard has been kick­ing around for 14 years now, a very long time com­pared to the life cycle of an oper­at­ing sys­tem. These days, with lap­top use on the rise, it’s a very com­mon thing for users to want to do. And yet resum­ing from sus­pend is still hit-and-miss.

Why do I find it more reli­able in Ubuntu than open­SUSE for the same base ker­nel? Why does GNOME fare bet­ter than KDE? Why does my WiFi some­times not come back? Why, with Microsoft’s mil­lion– if not billion-dollar oper­at­ing sys­tem bud­gets, with Intel and AMD and nVidia’s decades’ of dri­ver expe­ri­ence, is sus­pend and resume still fre­quently an issue even on Windows?

Only Apple, with its closed hard­ware / soft­ware ecosys­tem, seems to have cracked it.

I’d hate to think of that as the only way to a bug-free exis­tence — I’m very fond of the idea of an open ecosys­tem where I can run what­ever soft­ware I want on what­ever hard­ware I want. But I’m wor­ried. Is the range of (IBM-compatible, ACPI-supporting) hard­ware out there just too diverse and too widely dif­fer­ent in its sup­port for suspend-and-resume? Is it just infea­si­ble for soft­ware to per­fectly imple­ment it on all devices?

Has hard­ware cre­ated the one soft­ware bug that, for any rea­son­able num­ber of eye­balls, isn’t shal­low?