Random Disconnected Diatribes of a p&p Documentation Engineer
Technical writers, like wot I am, tend to be relatively docile and unflappable creatures. It comes with the territory (and, often, with age). Especially when most of your life is spent trying to document something that the dev team are still building, and particularly so if that dev team is resolutely following the agile path. You know that the features of the software and its capabilities will morph into something completely different just after you get the docs on that bit finished; and they'll discover the bugs, gotchas, and necessary workarounds only after you sent your finely crafted text to edit.
And you get used to the regular cycle of "What on earth have they added now?", "What is this supposed to do", "Can anyone tell me how it works", and "OK, I see, that must be it". Usually it involves several hours searching through source code, playing with examples, trying to understand the unit tests, and - as a last resort - phoning a friend. But, in most cases, you figure out what's going on, take a wild stab at how customers will use the feature, and then describe it in sufficient detail and in an organized way so that they can understand it.
Of course, the proper way to document it is to look for the scenario or use case, and describe this using one of the well known formats such as "Scenario", "Problem", "Solution", and "Example". You might even go the whole hog and include "Forces", "Liabilities", and "Considerations" - much like you see software design patterns described. Though, to me at least, this often seems like overkill. I guess we've all seen documents that describe the scenario as "The user wants to retrieve data from a database that has poor response times", the problem as "The database has poor response times and the user wants to retrieve data", and the forces include "A database that has poor response times may impact operation of the application". And then the solution says "Use asynchronous access, stupid!" (though the "stupid" bit is not usually included, just implied).
Worse still, writing these types of documents takes a lot of effort, especially when you try not to make the reader sound stupid, and may even tend to put people off when compared to a more straightforward style that just explains the reason for a feature, and how to use it. Here at p&p, we tend to document these as "Key Scenarios" - with just a short description of the problem and the solution, followed by an example.
However, in an attempt to provide more approachable documentation that is easier to read and comprehend, I've tended to wander away from the strict "Key Scenarios" approach. Instead, I've favored breaking down software into features and sub-features, and describing each one starting with an overview of what it does, followed by a summary of the capabilities and links to more detailed topics for each part that describe how to use it. This approach also has the advantage in that it makes coping with the constant churn of agile-developed software much easier. The overview usually doesn't change (much); you can modify the structure, order, and contents of each subtopic; and you can slot new subtopics in without breaking the whole feature section. Only when there are extreme changes in the software (which are not unknown, of course) do you need to rebuild a whole section.
OK, so the whole idea of agile is that you discover all this though constant contact with the other members of the team, and have easy access to ask questions and get explanations. But it often isn't that simple. For example, during testing of the way that Unity resolves objects, I found I was getting an exception if there was no named mapping in the container for the abstract class or interface I was trying to resolve. The answer was "Yes, Unity will throw an exception when there is no mapping for the type". But, as you probably guessed, this isn't a limitation of Unity (as I, employing my usual ignorance and naivety, assumed it was). Unity will try its best to create an instance of any type you ask for, whether there's a mapping or not. But it throws an exception because, with no mapping, it ends up trying to instantiate an interface or abstract class. Needless to say, furious re-editing of the relevant doc sections ensued.
Then, just to reinforce my growing concern that maybe my less rigorous approach to feature documentation is not working as well as planned, I came across a set of features that are so complex and unintuitive, and viciously intertwined with each other, that understanding the nuances of the way they work seemed almost impossible. Even the test team, with their appropriate allocation of really clever people, struggled to grasp it all and explain it to mere mortals like me. Yes, I can vaguely appreciate what it does, and even how some of it works. But what is it for?
This seems to be the root of the issue. There are no documented use cases that describe when or why customers would use this set of features, or what they are designed to achieve. Just a semi-vague one liner that describes what the feature is. Or, to be more accurate, several one liners that describe bits of what the feature is. No explanation of why it's there, why it's useful, and why users might need it. Or part of it. Or some unexplained combination of it. Of course, it is impeccably implemented and works fine (I'm told), and is a valuable addition to the software that a great many users of previous versions asked for.
But the documentation dilemma also reveals, like some gruesome mythical beast rising from the mire, just how frighteningly easy it is to innocently stray from the well worn path of "proper" documentation techniques. It's only obvious when something like this (the problem not the mythical beast) comes back to bite you. Faced with a set of features that almost seem to defy explanation in terms of "what they are" and "what they do", it does seem like the key scenario approach, with its problem, solution, and example format, really is the way to go.
If the first step of documenting a feature of a product is to discover and list the key scenarios, you have a platform for understanding the way that the software is designed to be used, and what it was designed to do. If you can't even find the key scenarios before you start writing, never mind accurately document them, the chances are you are never going to produce guidance that properly or accurately describes the usage.
And maybe, one day, I'll even apply "proper" documentation design patterns to writing blog posts...
A holiday weekend, and it rained. What a surprise. Still, it meant I actually got round to fulfilling a promise from a few weeks ago about firing up the film scanner and digitalizing some of the better ones of my collection of old railway slides. So, if you are not a railway fanatic maybe should stop reading now and find some other technical blog about computers (or play another game of FreeCell). The rest of this post is just pictures of old trains...
By way of some background to my pre-computing geekiness, my trainspotting episode started in around 1965 when steam was in the last stages of giving way to diesel. Most of my memories of steam engines are seeing them passing through Gloucestershire on their sad and final trip to the scrap yard in Barry, South Wales. However, my real passion in those days was for the gleaming new diesel hydraulic Western and Hymek locos that thundered past our house. Though travelling the world and the UK with parents serving the Royal Air Force meant that I lived (and trainspotted) in a variety of locations. Unfortunately, it was only in the late 70's that I owned a good enough camera to start recording what I saw.
Since then, trains have become a minor peripheral part of my life as marriage and work (and growing up) took over. So I can't actually provide a detailed history or record of any one period. Though occasional day trips to preserved railways and (now derelict) railway infrastructure and installations does provide the occasional fix. Still, here's a selection of the resulting digitalized memories:
British Rail Class 9F 92220 "Evening Star". The last steam loco built by BR (in 1960), and now preserved as part of the National Collection.
GWR 7812 "Erlestoke Manor" built at Swindon works around 1938, seen here in 1980 approaching Highley on the Severn Valley Railway.
LMS "Black Five" 5305 leaving York with a steam special in around 1980. Now refurbished and running on the Great Central Railway.
British Railways 73050 "City of Peterborough" built in Derby in 1954 and seen here in 1987 at the Nene Valley Railway.
Class EM1 76007 and 76008 built in 1953 and seen near Woodhead Tunnel on the Manchester-Sheffield route around 1978, shortly before the line was closed.
Diesel Hydraulic "Western" class D1062 "Western Courier", built at Crewe in 1963 and seen here on the Severn Valley Railway in 1980.
An unidentified "Brush" class 47 leaving Peascliffe Tunnel on the East Coast Main Line in 1979 before electrification of the route.
The "Deltic" Class 55, the most powerful of the mainline passenger diesels and my personal favorite of all diesels. This is 55 003 "Meld" built in 1961 at the Vulcan works in Newton-Le-Willows and named after a famous racehorse. Seen here at Doncaster in 1979.
British Rail adapted some of the 08 class shunters to work as tandem units in Tinsley Yard, Sheffield. This is 13 001 seen in 1979 on the yard hump.
An unusual visitor to Doncaster, having just left the BREL works after refurbishment. Originally built in 1968 at the Vulcan works, this is class 50 007 "Hercules" (later renamed "Sir Edward Elgar"). The locos were often known as "Hoovers" due to the sound of the large engine room fans.
And finally, for U.S. readers and tram fans, New York Third Avenue Transit number 674 seen here on a rainy day in June 1990 at Crich Tramway Museum in Derbyshire (just a few miles from where I live).
I also found a selection of slides taken inside the British Railways Engineering (BREL) works at Doncaster in 1979. After I sort them out, I'll post a few of the more unusual ones...
So when you buy a load balancing router, what do you actually expect it to do? Maybe I just expected too much from it as a solution to my distinctly unbalanced connectivity requirements. But even if the outcome is typically a lack of adequate refreshment, I suppose it's nice to live in hope with a "glass half full" approach. Though, in my case, "network half full" seems more appropriate.
After my recent shuffling of accounts with Internet Service Providers, I now have two connections to the Net. One is through cable and provides 20 Mbit downstream and 1 Mbit upstream. The other is through ADSL and (on a good day) offers 2 Mbit down and 750 Kbit up. They're both linked to my internal network through a LinkSys RV042 load balancing router. So, in theory, I can get great performance combined with automatic failover should one of the connections fail.
However, this arrangement seems to cause more problems than it solves. Some sites, including my personal email provider, treat requests from different IP addresses as coming from different sources. My cable and ADSL connections are very different IP addresses, and my email provider's load balancer and security mechanism don't allow requests from both IP addresses to access the same authenticated session. I guess this is done to mitigate "man in the middle" attacks, but it means that I'm continually prompted for credentials when using Outlook or OWA.
The solution is to force all HTTPS requests to go through one of my two connections rather than being load balanced, and the obvious choice is to use the faster connection. To do that I can set up protocol bindings in the router, but it just raises a heap of new issues. For example, the Protocol Bindings configuration section consists of controls where you specify the service type (such as HTTPS), the source IP address range, and the destination IP address range. There's also an Enable checkbox which, for some reason, is unchecked by default. So if you just enter the values and click the button to add the binding, it doesn't work unless you remember to select it again and check the Enable box.
And then you need to figure out whether adding one binding will still allow all other services and IP addresses to route to one or both of the external connections. There's nothing in the router manual to indicate whether you need to add more bindings for these, or how you can create a rule that excludes some services and IP addresses but includes the rest. And there's no indication either of whether the order of the bindings makes any difference. As there's no "Move up" and "Move down" buttons, I have to assume it doesn't.
So I Binged for help, but all I can find are some non-relevant half-examples. The Cisco forum people keep saying that "you can use protocol bindings to resolve this issue" but never actually show you how. From the number of posts complaining that protocol bindings don't work, I can only guess that most people, like me, can't figure out how to configure them properly.
But I carried on and created a binding to route all HTTPS requests to my email provider through one connection. Except that I have no idea what destination IP address range to specify. I can get the IP address currently allocated to my email server using nslookup, but I can't get the range because their DNS server won't accept requests to list them all. And they seem reticent about providing the information in response to my emails. In the end I decided to route all HTTPS request through one connection rather than just requests to their servers.
So, having resolved that issue I can now enable load balancing secure in the knowledge that I can still get at my email, as well as benefitting from using both connections for everything else. The router is also configured with the throughput rates for each connection and is clever enough to spread requests across them based on the capacity of each one, so more requests go to the cable connection than the ADSL connection. This is good because there is a monthly download limit on the ADSL line, whereas the cable connection is unlimited.
Unfortunately it doesn't actually speed things up in many cases. When I open a web page, the requests for the associated images and other content are load balanced and so, in theory, the entire page loads more quickly than when using just one connection. However, the router doesn't know how big each of these images or resources is, so it may send the request for very large ones over the slower connection; which means the page load is actually slower than using just the faster connection. And it's quite possible that a request for, say, a streaming video file may be routed through the slower connection (whereas I'd want it to go through the faster one) because I can't set up protocol bindings for different content types.
Load balancing is, of course, designed to work over connections that have the same capacity and bandwidth, so I guess I can't expect it to do anything different. In the end I've gone back to using the router in failover mode only on the faster cable connection. At least I can be sure I won't exceed the bandwidth limits on the ADSL connection unless the cable connection fails altogether, though what my ISP will think when my bandwidth usage is zero each month I can't guess. Or whether my ADSL modem will still work when it doesn't have regular traffic it can use to configure connection rates and error checking. And it still feels like I'm wasting a connection that I'm paying for.
But at least I've got a valid reason for being a bit unbalanced...
It's easy to forget just how much modern devices depend on software. OK, so it's pretty obvious that your computer and phone are just paperweights without the magic ingredient of a programmer's inspiration. But you need extend your thinking to include stuff like your television, microwave, digital watch, and even your fridge.
It seems strange until you really stop and think about it. My first computer, an Oric Atmos, had both UHF (TV) and RGB sockets on the back. I started off using an old color TV, but the image was pretty ropey so I took a trip to a backstreet electronics dealer in Leeds (who's shop actually was under an arch of a railway viaduct) and purchased an ex-military barebones RGB monitor. With a home-made case and bodged-up cable it was wonderful - a rock steady display with real colors instead of the vaguely fuzzy and flickering picture on a TV.
But where I'm going with this is that the "user interface" for the monitor was a set of small potentiometers soldered to the circuit board, which you twiddled using a tiny screwdriver. Your mechanical actions directly controlled the amount of volts flowing in the wires. A distinctly analogue display menu system. Now, when you turn on a flat screen monitor, you get a boot-up screen containing the maker's logo and you can use a fancy software-powered multi-level menu to digitally adjust what finally gets tossed onto the display.
Of course, it's the same with almost every other modern device. The digital display and input buttons on your oven, your washing machine, and your kitchen timer are connected to embedded chips running a simple operating system. And, of course, it's the same with things like your wireless router and network switches. In fact, it's wireless router software that actually prompted this week's random ramble of a post.
Some weeks back I complained about my unbalanced network routing problem. I had a response from a "random dude" (yes, that's his or her real name) asking why I didn't try installing DD-WRT on the router. There was no mention of whether it would solve the problem by turning my 2 Mbit ADSL connection into a 20 MBit one to match the speed of the cable connection, so I'll assume that the reason was it would give me better control of how the actual load-balanced routing was managed.
So I went to look at what DD-WRT is. Turns out that, for those not familiar, it's a Linux based alternative OpenSource firmware for a range of routers, including my Linksys RV042 load-balancing router. My first though was "who would be mad enough to install anything except the manufacturer's own software?" But then I remembered who I work for. I buy Dell computers and then install someone else's software (i.e. Windows) on them all the time. In fact, I install software from lots of manufacturers on computers that were made by other people. OK, so my Dell computer does already have some software on it in the shape of the BIOS, but even that's not written by Dell - it comes from Award or Phoenix.
So should I install DD-WRT? From the screenshots, it looks a lot nicer than the built-in stuff and the range of features it supports is astounding. Mind you, there are a dozen or more pages in the built-in software that I've never looked at, or couldn't understand when I did look at them, so I'm not convinced that new software will help. Unless it comes with a very comprehensive user guide and a support phone number. It's also somewhere between the "Yes I'm happy to install a new operating system on my PC (as long as it's Windows)..." and "Will my microwave still know how to warm my coffee if I install Linux?" options in terms of what seems reasonable usage of a weekend.
But why not? The worst I can do is brick it. And then it will make a rather attractive paperweight, especially if the lights on the front still flash. Except that, when I went to the DD-WRT installation instructions I discovered that I don't actually understand any of what it says. The site itself is amazing; there's hundreds of pages of articles, documentation, help, and more. And it's evident that there are lots of people whose life's work consists of playing with code inside wireless routers.
I did go off and read what a "30/30/30" is (a full reset that requires three operations of 30 seconds each), what the "peacock thread" is (several hundred lines of text that describe what can go wrong and how to fix it), and how I'll need a "jungo-image.py" (a script to install it). And if it goes wrong I'll need a "JTAG" rather than shorting pins. Though if you are familiar with hardware and firmware, I guess all this will just be second nature.
But then there's the Linux stuff. I know nothing about Linux, so much of the technical description of the installation steps simply improved the parting in my hair (or it would have done if there was any left) by whooshing over the top of my head. And even what is probably simple and obvious terminology left me standing. Do I really want to "access the following site on the webif" and "enable the busybox shell?" Maybe I'll just drop into Amazon and buy a better router. One that also has "swp half thumb fastmult edsp" would be good. Probably.
But I guess we should be thankful there are dedicated teams of people that revel in this kind of stuff, and that hopefully their efforts improve the firmware in the products we buy. Though it's a bit like suddenly coming across some strange pastime that you never realized existed. Like Mountain Bike Bog Snorkelling.
I've decided that, next time I write a book, I'm going to put everything on page one and make some obvious errors as well. I'm not convinced that it will actually do much to make the book any better, but it will save the reviewers a lot of headaches. And probably make it easier for the publisher too.
To understand why, let's explore the typical sequence of events for a work that's complete to first draft and ready for review. There are several things that you can almost guarantee will happen:
Finally, when all the writing, reviews, and edits are done, you sign it off and it disappears into the bowels of the production department. In theory you can wave goodbye to it and get on with the next one. Or maybe not. I was recently party to a series of meetings related to creating a detailed specification of the publishing process. The list of tasks that have to be accomplished was nearly as long as the book itself, and several seem to have ended up being allocated to me.
I suppose the saving grace is that I'm pretty hardened to all this after the years I've spent involved at both the input and output ends of the process. I even try to behave myself when I'm being a reviewer rather than a writer; and I tend to be fairly relaxed about seeing my finely crafted text come back with a review comment every third word and a plethora of Track Changes from the copy editor. I wonder how they managed all this in the days before word processors!
Still, now I've seen what the production people have to do, and experienced the joys of reviewing other people's work even more regularly, I've decided that I've actually got the easy job...
I'm increasingly seeing how big the disconnect is between people who use computers occasionally just because they need to do stuff on the Internet, and those of us who live and breathe computing. And we're not talking stupid people here; I see it most weeks with friends and acquaintances that are fully capable of managing almost any other technological domestic device.
It's both interesting and worrying. Interesting because I'm part of a group within Microsoft working on a project that will help to discover more quickly and more accurately the issues people typically face when using our products. While here in p&p we are tilted towards the needs of developers, software designers, and system admins, I'm interested to learn how you can make operating systems and user-oriented software easier for home users to grasp. After all, we spend inordinate amounts of time and effort making them intuitive, and providing pop-up help pages and tips.
And it's worrying because, for most of the non-technical population, having to spend time learning how to use technology is a thing of the past. We want instant gratification. Few technological devices come with proper manuals these days anyway (it's all on a CD that gets lost within minutes of opening the box), and instead these devices have intuitive UIs that mean you don't need to resort to the help file. Although I have to admit that some do seem to make common tasks difficult - our new kitchen oven has so many knobs and buttons, and different cooking settings, that my wife keeps the instruction book handy just to decipher the strange symbols.
Coming back to computers, though, this week I encountered a perfect illustration of the issue. Some friends called round, complete with laptop and a list of questions, seeking my help. They could no longer print anything because the Print button and menu bar had disappeared from their web browser. Plus, the desktop shortcut that opened their email now just showed Google search engine. And they were concerned that they'd lose all of their precious photos if the computer broke down or was lost because the backup software couldn't find them.
It took only a cursory examination to discover that Internet Explorer seemed to have disappeared, and now all their web shortcuts had a Chrome icon - which I assumed was down to the recent Adobe Flash upgrade (see Not So Shiny). Rather than uninstalling Chrome I just fired up Internet Explorer and used the Programs tab in the Internet Options dialog to make IE the default browser again. This meant that they now had a Print button on the toolbar, though I still had to mess about resetting the Home page and the link to Hotmail.
But they still couldn't figure out how to get the menu bar to appear in the browser. They never realized that you could click the little down arrow next to the Print button to see more printing options, and always did that before using the File option on the menu bar. I explained that they just had to press the Alt key to see the menu bar; but, other than mumbling something about extra room for the content of the page, I couldn't answer the subsequent question "Why?" So I reset the menu bar to be there all the time. Yet all of these operations are explained in the help file - if only I could persuade them to press the F1 key!
And then we got to the question of backing up their photos. Some while ago I'd given them an old USB thumb drive and copied their photos onto it. But now, every time you plug it in, the computer just displays a dialog saying "No more pictures found to import". It turns out that, when they bought a new printer a while ago, another friend had installed it - along with all of the accessory programs that came with it.
One of these programs was a utility that scanned for photos and displayed them for printing, and this program had helpfully set the autoplay option for USB thumb drives to run itself. Obviously it had imported all the photos from the thumb drive the first time it ran, and so there were no new ones. They thought the program was saving the photos onto the thumb drive, but examining it revealed that it contained only those I'd copied to it a year ago. None of their later photos from several trips abroad had been backed up.
To sort this out I had to go into the Autoplay settings in Control Panel to set it back to "Ask me every time", and then create a simple batch file in the root of the drive to copy the new photos. But, of course, there wasn't room on the thumb drive for all the new photos so we fetched a 500GB USB disk from a local store and I set up the batch file on that. Now all they need to do is run the batch file after loading new photos, music, videos, or documents onto the computer and they'll all get backed up automatically.
Except that, until you come to show someone how to do this, you don't realize how unintuitive it all is. Plug in the drive and wait for the autoplay dialog. Select "Open folder to view the files". Double-click on BackUpMyFiles (the name I gave to the BAT file), wait until the black window disappears, close the window showing the files on the USB drive, click the icon in the notification area that looks like a tall thin box with a tick on it, select "Disconnect storage drive D:", wait for the confirmation message, and finally unplug the drive. And if you forget to close the file window first you get an error that the device is still in use, but no indication of what to do about it.
OK, so this is Windows Vista, and thankfully Windows 8 can do all this through the cloud much more easily. But, despite my pleas to upgrade, they're unlikely to do so any time soon (probably only when the computer breaks down and has to be replaced). And they are the exception - most home user help requests I get are still for Windows XP.
Perhaps when I make my fortune and become a philanthropist my calling will be to upgrade everyone I know to Windows 8 for free, though whether it will install on my neighbor's ten year old HP tower computer (which doesn't even have a built-in CD drive) is questionable. And we'll probably be on Windows 23 by then anyway...
Perhaps it's just anecdotal evidence, but it seems like you often hear about people who are afraid of the countryside. For those of us brought up amongst fields, trees, and wildlife, this seems an extraordinary concept; though I guess - as I have a deep-rooted fear of cities - the converse is not as unlikely as you might imagine. Personally, I hate the bustle, noise, and smell of city centres such as London and Birmingham, and I can't imagine living in the midst of a constant rush of people, cars, and trucks; and the torrid sense of panic that life in general seems to require in these kinds of places.
So it was refreshing to be reminded by a TV documentary the other week about the life of Roger Deakin, who wrote about the wildness and beauty of the English countryside in Suffolk and Essex. He died in 2006, but others (including Robert Macfarlane in the recent documentary) have continued his work, showing how even the most industrially despoiled landscapes and man-made ugliness slowly convert back to nature. One thing I found interesting was how Roger worked from many different locations when writing. He collected a range of wheeled "sheds", such as old railway wagons and carts, and parked them in different areas of his farm so that he could live and write in each one, depending on the season and the surroundings as they changed throughout the year. He said the style of his writing varied to reflect the features of each location, allowing him to change his view of topics and document them in different ways.
It struck me how I, like many writers, tend to do much the same. OK, so I haven't adopted the local café as a base for writing adventures about a boy wizard, and I can't afford to go off and live in Madeira or the South of France for a year, but it does seem as though - despite establishing a fully-fitted modern office with all the things you might need to be an author - I still exhibit itinerant tendencies, depending on the type and content of the material I am charged to create. Certainly at this time of year, with snow lying and a distinct chill in the air, the centrally heated office is my usual home. However, in warmer seasons, I tend to migrate into the conservatory - usefully equipped with a desk, power, and a network socket; and a glorious view of the garden, the fishpond, the birdfeeders, and a small copse of trees. And, at various times, I find myself in the lounge writing with a laptop on my - err - lap, or sitting at the dining table, or even standing next to the server cabinet during those "not really at work but working" moments.
And it seems that I do create different types of verbiage depending on the location. For many tasks, such as editing post review documents, creating schematics, teleconferencing, and writing and debugging code, I take advantage of the power of the big box and the screen space of two decent sized monitors in the upstairs office. And the view across the fields from this elevated location does make it a pleasant place to work at any time of year. In fact, most evenings find me wired to this machine through headphones for the conference calls and meetings that take place in US Pacific Coast Time mornings.
But somehow, as the winter wears on, I can't wait to escape from the confines of the office, the random music stream from my media server, and the anti-SAD daylight lamp, into the warmth and brightness of the conservatory. It's probably as near as you can get to working outdoors without actually being outside. There's something special about the sun streaming in, the noise of water and fish splashing in the pond, the birdsong, and the occasional visit from a squirrel (or even, in the late afternoon, a vixen out early searching for food for her hungry cubs). And it's here that I find I can so much more easily write those more lyrical sections of content, such as technology overviews, chapter intros, articles, and my seemingly endless stream of rambling blog posts.
Then there's the times I need short, sharp, to the point content. A good location for this is ensconced on the sofa in the lounge, or perched on the edge of a chair at the dining table, as my wife watches East Enders or Casualty on TV. The almost constant yelling and screaming (from the TV, not my wife) seems to suit this kind of writing - keeping it tense and to the point. Though it does tend to need additional editing after I calm down again.
And then there's those "in-between" times when I just need to check my email or send a quick note. The server cabinet includes a machine that runs a locked-down Windows 7 installation where I can administer the virtual servers and network devices, and do general administrative fiddling when required. It's a perfect location for doing email and making brief notes because (a) I'm standing up, (b) it's cold in winter, and (c) I have to use Notepad to write stuff. It keeps me focused on the job in hand, and tends to concentrate the mind into producing concise output.
The one place I find I cannot write, in a way that produces anything near to useful, is when I'm on site in the team room with all of my colleagues - as experienced in my recent trip across to Redmond. OK, so a constant stream of meetings doesn't help, but even when there are a couple of hours to sit down and get stuck in I find I'm struggling to concentrate. It seems like my head is full of extraneous distractions and the words just won't come. If this is an agile, writer in the room, close to the dev team process, I certainly need some serious practice to cope with it.
Maybe, unconsciously, I relate it to my fear of cities - and the accompanying torrid sense of panic. The only saving grace is that the corresponding requirement to complete the necessary work in my hotel room in the evenings means that I don't actually have to watch US television programs. Not that they allow you to concentrate anyway. I tried to watch a late night political commentary show, which seems to allocate a maximum of four minutes to the program before breaking for five minutes of adverts. One of the guests was ex HP chief Carly Fiorina, who was fascinating to listen to. Here's someone with real world business experience who has something to say about the state of politics and government. Yet, after four minutes, the presenter stopped "for a word from our sponsors" and then - after the ads - started interviewing somebody entirely different! No wonder our kids suffer from Attention Deficit Hyperactivity Disorder.
Mind you, back home again, there's something tempting about buying some disused railway wagon and getting it dumped in the wood to provide another alternative writing location. Maybe I could equip it with a small stove and a camp bed, like Roger did with his, and move in for a week to write a chapter about some really complex technology that requires absolute concentration. Though, as my culinary capabilities barely stretch beyond Corn Flakes, I'd probably need my wife to establish a food delivery schedule to prevent me starving to death.
OK, I might as well admit it - I'm a mobile technology dinosaur. My mobile phone is obviously of no use at all these days because the only thing you can do with it is make and receive phone calls. As I discovered a couple of weeks ago while on a brief touring holiday around England by car, I'm no longer fit to use facilities such as motels and travel lodges. I'm officially a second-rate citizen in our high technology mobile device-enabled world.
Why? Well, as an ex Boy Scout, I thought it would be a good idea before we set off on our travels to print off a list of phone numbers for the reservation centres of the major motel and travel lodge chains so we could just phone and book a room at the nearest one as we roamed unpredictably across the country taking in museums, preserved railways, public gardens, beautiful scenery, and ducks (at the Slimbridge Wildfowl Trust if you were wondering about that last one).
So, would you believe that almost none of the usual motels or travel lodges publish a central reservations number on their web site any longer? Of course, there are plenty of interactive online maps showing the locations, with the pop-up details I need for each one. But if you follow the link to book by phone, it starts off by telling you to open a web browser and access the reservations page. Yeah, that will work when I've only got ten buttons on my phone and a less-than-one-inch-square screen. Of course, I could just print off a list of all that company's locations, but the list doesn't include phone numbers or addresses. It's just links to other pages on the Web site.
I suspected that the world of mobile phone technology was leaving me behind a while ago when I tried to buy a replacement clamshell-style phone for my wife because her very nice Motorola RAZR V8 had decided to fall apart (obviously an event that was in no way connected to dropping it onto a tiled floor). But there is nothing like them available. Everything is big screen, full color, web-enabled, and too big to easily carry in your pocket.
So is there a future where a mobile phone will be just a phone? Or is it that mobile phones will no longer need to actually be a phone at all. We'll just use Voice over IP (VoIP) for the increasingly rare occasions when we actually want to communicate using speech; and the web for everything else. I suppose they'll have to think up a new name for such devices. Maybe we can call them IPads.
Of course, I could just buy a mobile dongle for my laptop and take the whole caboodle everywhere with me instead. I just looked on the Web site of my current phone supplier to see if I could buy a broadband dongle for when we go to Cyprus. But when I entered my postcode it said they "didn't recommend use in my location", so I can't use it at home. And, further down the page, it says that they don't support use outside of the UK at all, so it's no use for my upcoming trip to Cyprus either. It sounds like the only time I could use it is if I drove to my nearest town here in England and sat in a car park. One that is in a "recommended location", obviously.
Or maybe I should just stay at home until December, and buy a Windows Phone 7 when they finally appear...