For those who don’t know, CHM is an acronym for Microsoft Compiled HTML Help. It was released in 1997 when dial-up connections were used to access the Internet. CHM is a solution for product help files. Product documentation is contained in a single file that can be accessed offline. This documentation, loosely based on HTML, can then be browsed using a desktop client.

The desktop client has a UI that appears to be based on IE4 and, for reasons that aren’t entirely clear to me, CHM support has persisted in the Microsoft ecosystem. This support has continued even though Internet access is widely available and there are vastly superior techniques for gathering and discovering knowledge.
People with outhouses get a lot of bladder infections
I work for a company that creates a Web Content Management (WCMS) product. We spend a lot of time figuring out how to make content easy to edit…and we’re certainly not alone in this quest. By contrast, editing & publishing a CHM is excruciatingly difficult.
It is human nature to avoid (or postpone) tasks that are a giant hassle. When you need to pee at 2:00 AM and your only solution is an outhouse, 100 yards away, in freezing temperatures then you’re going to wait as long as possible. What I’m trying to say is “CHM support is a bladder infection waiting to happen”.
Here is the workflow I want when editing documentation:
- Click Edit
- Make the change
- Click Save
If I can fix documentation in 10 seconds, then I’ll do it. If, on the other hand, I need to load some archaic desktop-based editor, recompile the documentation in Visual Studio and run a publishing script then I’ll probably do something else…
Blogging your way to documentation…
Ultimately the by-product of all of this pain is documentation becomes scattered to the four corners of the Earth. If you want to see this in action, look at Microsoft. The best and most current information is never in the official documentation. Instead, this documentation is sprinkled across several hundred blogs.
Other software ecosystems don’t have the severity of this problem. Hell PHP has embraced the nature of the the web since…well, from the beginning. During my PHP days my first stop was always PHP.net. More often than not, I found my answer in the documentation or the comments.
Do not attempt to install while exploring the Congo
Our ridiculous dogged support for an outdated technology prevents us from embracing the advantages of modern content management solutions. Furthermore, it prevents us from utilizing crowd-sourcing and generally ensures that documentation is stale. And we do all this because someone might want to access documentation offline.
This needs to stop!
I’m sorry if you don’t have an Internet connection. It’s probably not the best idea to attempt to install software while exploring the Congo…or wherever you are. Supporting your unlikely scenario is making it harder for everyone else to do their job. To be entirely blunt, supporting you isn’t worth compromising documentation for everyone else.
It’s time to retire CHM. It served it’s purpose (I guess), but in 2011 we can do better. Our support for CHM is holding back the progress of humanity. We would probably have a permanent settlement on Mars if it weren’t for CHM. Although Internet access would probably be dial-up speeds on Mars…which means we might need a good solution for offline documentation.




