I’ve long held that Microsoft could do better with its developer-focused sites. It isn’t a topic I’m likely to let up on, but today I wanted to look at a specific example.
I was reading the PostgreSQL documentation on the ALTER INDEX command, and was generally pleased with everything about it. Its easy to read, informative, quick to load, and usable. Here’s a screenshot of the page as it first appears (or you can go there yourself at http://www.postgresql.org/docs/8.1/interactive/sql-alterindex.html):
The MSDN page for ALTER INDEX loads up looking like (or you can go there yourself at http://msdn.microsoft.com/en-us/library/ms188388.aspx):
Maybe its just me (is it?) but for me, the difference is night and day. I can put aside the poor color choice, and weird (and branded) search bar, and the overwhelming amount of navigation (actually, I find this quite annoying), but there are some fundamental things that make MSDN a pain to use.
- The MSDN breadcrumb is 12 levels deep, two lines, and each item brings up its own popup navigation. The PostgreSQL one is 4 levels deep and is plain.
- The MSDN has a Printer Friendly Version, the PostgreSQL one IS printer friendly.
- MSDN’s left-hand navigation is useless – it’s too big, too nested and uses up too much room
- The MSDN page took 46 requests, 226.5KB and took 5.44seconds to load for me. The PostgreSQL page took 16 requests, 21.3KB and took 1.46seconds to load
- The MSDN page hits 8 domains (including webtrends). The PostgreSQL page hits 2 domains (including google analytics)
- The MSDN page has a cryptic URL. The PostgreSQL has a human-readable url
- The MSDN page allows you to lookup other versions via a box in the middle. The PostgreSQL lets you change the URL.
- The MSDN page scores 67 on Yslow, PostgreSQL scores 76.
- The MSDN page is inconsistent about cross linking other topics, sometimes CREATE TABLE is linked and sometimes it isn’t. CREATE INDEX though is never linked. The PostgreSQL documentation is more consistent.
- Searching “Create Table” on MSDN brings up the SQL Server 2000 documentation (with no way to get to 2008). Searching “Create Table” on PostgreSQL brings up exactly what you want. (Both sites display search results poorly)
- MSDN’s Titles don’t include the version, so the 2005 and 2008 titles are the same (which means your bookmarks will be the same). PostgreSQL has stupid long titles, but at least the version is there
- The MSDN text is small and tight and ends up looking like a wall of text. The PostgreSQL looks like its meant for a human.
A note about the version selection. The MSDN approach may be more intuitive, but it appears limited to going from SQL Server 2008 to 2005, there’s no way to go the other way around, and no way to pick an older database. With PostgreSQL you can change the url for any minor version starting at 7.1.
Of course, when everything’s said and done, despite all the small things (like # of dns lookups), the end result is that one is a mess, while the other isn’t.
MSDN’s Lightweight and ScriptFree are definitely a step in the right direction – but this choice clearly falls in Barry Schwartz’s Choice is Bad For Us point of view – something a lot of people at Microsoft need to desperately be made aware of. I actually like ScriptFree, and it addresses a number of the above problems, but not enough and in the end it still lags behind PostgreSQL’s usability. I mean, why is the ridiculous syntax the first thing even displayed? Why do I still see a wall of text, and who actually thinks that because I’m reading up on ALTER INDEX, I’m interested in a bunch of truncated links to other ALTER statements?