Our little documentation department here at p&p occasionally gets some odd requests. I've done the "write some fictitious stories about corporations that don't exist" bit in the past (as content for a sample application, in case you were wondering), and the "write a technical article about cloud computing but don't mention any products or technologies" thing (it was a very short article). Combine this with an emerging policy of rewriting everything four times when people keep changing their minds about what they want, and you can see why I'm usually quite busy.
However, now that I've at last escaped from nearly a year of working on the updated Application Architecture Guide (more news of that it a couple of weeks time), I'm free to devote my full resources to the upcoming version 5.0 of Enterprise Library. This is one of my favorite projects, and I've worked on several releases in the past. In fact, I suspect that it was working as a contractor on EntLib (as we insiders like to call it) for three releases that persuaded Microsoft to give me a proper full-time job. Perhaps everyone else is frightened off when they see the 900 pages of source Word documents that make up the documentation for it.
If you've been keeping up with the news on the community site (http://www.codeplex.com/entlib) you'll have seen that the team finally got bored with holidaying on foreign beaches and basking in the glow of version 4.1. They decided that they need to make it even better by building a whole new version for release early next year. There's lots of new goodness planned, based on feedback from a survey undertaken a couple of months ago. This includes closer integration with the Unity dependency injection mechanism, better opportunities to decouple your crosscutting concerns from your "actually does stuff" code, and plenty of other minor but useful improvements across many of the application blocks. You can read about the results of the survey and the new release plans on Grigori's blog, and even see a 1920s-style sepia-tinted photo of the miscellaneous collection of miscreants who are charged with achieving all this.
One of the main thrusts of the version 5.0 release is "learnability" (yes, it's a made-up word, but not one of mine - blame Grigori for this one). So I've been asked to create a series of printed guides that "provide a friendly and conversational introduction to working with EntLib". I'm not convinced that my previous efforts at guidance were aloof, detached, or unsociable; but I get that the plan is to try and write stuff that is entertaining and well as educational. And I'm not sure if they intend to have someone sit next to me and crack me over the knuckles with a stick every time I type "functionally implementable versionability" or "demonstrably compartmental manageability capabilities". I did suggest we include a joke from every country from which members of the developer team originate, and then have a quiz at the back of the book to see if anyone can guess the correct country for each one. But I'm not sure I could get that past our legal department.
So, anyway, the long-term plan is to have a printed guide for developers, one for architects, and one for administrators. We may even do one that concentrates solely on the principle of dependency inversion, though maybe I could just send everyone an attribute and have this book injected automatically at runtime. Of course, it's kind of hard to write all these while the dev guys are still "exploring concepts" (an activity I've christened "white-board rafting") and playing with early code spikes. But, amazingly, we do have a preview of the developer guide available now! I don't know how I do it. And, even better, you can get a chance of a free copy when it's finally released in "real paper and ink" format by downloading the preview and submitting your opinions through our online feedback and survey. Go to the preview page, grab the PDF, and tell us what you think.
But please be gentle with me... they made me learn about lambda expressions this week, and I'm still recovering.