Fix an Arctic 7 heatsink

Abour two years ago, I built a new home PC for myself. I got a nice Antec Sonata case, and a MB with variable-speed fans to cut down on noise. When I put everything together, I was very happy with the sound level except for the stock Intel CPU fan, which idled quietly, but sounded like a vacuum cleaner when it kicked into high speed. I decided to upgrade the heat sink and fan, and decided on an Arctic 7 Cooler, which ran very quietly until the last few weeks.
I started to notice my PC getting noisier and noiser, and when I popped the side off, I could tell that the noise was coming from the fan on the Arctic Cooler. I just got done fixing it, though, so if you've got a noisy Arctic 7 Cooler, don't throw it out -- try some machine oil.

(BTW, in browsing for a picture of the Arctic 7, it looks like they've upgraded the fan in the mean time, so the problem and the fix here very likely only apply to the older units)

First, you'll most likely have to remove the heatsink in order to oil the fan. Next, look for a little plastic plug on the back of the fan assembly (see picture). Pop this off with a knife. Next, just send a few drops of 3-in-1 or similar machine oil down the hole and spin the fan a bit to work it in. That's it! Reassemble everything (you may want to freshen the heatsink compound if you overclock your CPU), and you should be good to go.

Microsoft = anti-virtualization?

I'm convinced yet again that Microsoft's licensing weenies will be the first against the wall when the revolution comes. I just read an article by Paul Thurrott that describes licensing changes for Windows Vista, and it's really, really disappointing to me. In short, Microsoft is cranking down licensing terms to specifically restrict which versions of Vista will be "legal" to run in a VM.
In his article, Paul carefully explains that the Vista licensing terms aren't all that different in effect than XP's, and that the VM restrictions exist because VM users are "fringe" use cases. This is, in my opinion, short-sighted at best, and destructive at worst.

History Revisited

Rewind five years to the release of Windows XP. Virtualization was, at that point, a toy technology. A reasonably computer-savvy person could imagine the potential that virtualization might eventually yield, but the benefits were clearly over the horizon. There was no such thing as dual-core, let alone quad-core, and the idea of CPU's with virtualization accelerators built into them was inconceivable to the average technologist.

Windows XP's licensing terms were, therefore legitimately onerous to computer enthusiasts who changed PC components frequently and faced the headache of repeated product activations, but there we really no virtualization customers against whom Microsoft could discriminate. Bottom line: Microsoft was about as abusive as they thought they could get away with towards the users they knew about at the time.

Back to today. Now, Vista's licensing terms remain similarly invasive for "regular" users, but now, Microsoft's also targeting VM users. Paul points out that most VM users are either professionals or enthusiasts, implying that this is why only the "Pro" and "Ultimate" versions are licensed for use in a VM. If you want to run Vista Home Basic or Home Ultimate, you're out of luck. Can't go there.

This is ludacris from so many angles, it's hard to know where to start railing, but I'll give it a shot.

Special Users

"Currently, the majority of Microsoft's virtualization users fall into exactly two groups: business customers and enthusiasts," says Paul.

Ok -- I'll buy that, subject to one caveat -- "currently". If we've learned anything about virtualization over the last five years, it's that it's here to stay, and, in fact, its use is going to grow. Where do you think we'll be on the adoption curve in another five years?

Next problem: just because your VM users are professionals and enthusiasts, that doesn't tell you squat about the OS's they want to run. In fact, I'd bet that these groups are more likely than other groups to *want* other versions of Vista. The two biggest reasons for VM adoption today are operational management of production servers and testing. Production servers aren't generally going to use desktop Vista, so I'll leave them for another day. Let's talk about testing.

The use of VM's for testing has a number of benefits. One of them is that you can set up a VM for a specific customer configuration. Another is that you can replicate combinations of hardware and software that exhibit "interesting" traits with respect to the software you're testing. Finally, using VM's let you power-on machines when you need them and power them off when you don't, and in the time behind runs, they take up zero extra space in your test lab / office, and they consume zero additional electricity.

This implies that you need to run whatever edition of Vista your customers are running. If you build an application that supposedly runs on Vista Home Basic, you should be expected to test on it. If you're a software developer, that means no VM for you!

If you use a VM's to support custom installs or configurations for your customers, you probably have VM's for each customer, and most of them are probably turned on only when you're chasing a customer support problem. That's a lot of Windows licenses sitting idle most of the time.

What's so Hard?

Now that we know that virtualization is here to stay, why in the world can't we look it in the eye and deal with it? What, exactly, is Microsoft trying to protect itself from by cranking down these licensing terms?

Piracy.

How do you tell the difference between piracy and the legitimate use of VM's for testing, as I described it above?

When you use VM's for testing, most of them aren't on most of the time.

Once more, in small words so the licensing lawyers can get it: Please don't make me pay for an OS that only gets turned on once a year.

Microsoft's got how many gazillion engineers now? I'm pretty sure that Microsoft could divert a couple dozen people off the splash screen team and fix this once and for all. We need concurrent licensing for Microsoft OS's -- especially when run in VM's. It's that simple. VMWare and Virtual PC both have "VM tool" installs they provide for guest OS's to "enhance" operation of the guests. Use these to hook into a licensing service provided at the host level, and (for bonus points) make it networked. VM's don't chew up a license when they're not on.

So, Microsoft, go find the guys who are writing Zune software and put them to work on Vista licensing for VM's. After all, Zune's walking dead.

Other takes

A couple other pundits have words on this subject, too.

Dialogue Box by Chris Pirillo: Vista Will Double Apple’s Market Share

Koroush Ghazi: Windows Vista's Enthusiastic Licensing Restrictions

Rant: If you sell hardware, give away a Visio stencil!

I'm trying to architect a system for a government department, and we need a few computers. This particular unit is partial to Gateway systems, and I guess he's had some phone conversations with a Gateway rep who was quick to recommend virtualizing at least part of his environment (cool), so I'm happy to spec Gateway systems in this architecture.
As I write the technical specs for this system, I come to the production deployment diagrams, and I've got this diagram that shows all Dell equipment (we started there because we had Dell stencils). Now, it's not the end of the world to have Dell stencils standing in for Gateway equipment, but it dosn't look quite right (and that bugs me). Besides, I figured that Gateway would have an interest in getting pictures of their products plastered all over this spec instead of Dell, so I decided to spend a couple minutes hunting down a new stencil.

This is where it started to get fun.

I searched Google for "Gateway visio stencil", and I found links to Gateway, and a link that would let me buy Visio from Gateway, and even some Cisco stencils that had network gateway equipment, but nothing for a Visio stencil.

Fine, I thought. I'll just go to Gateway's site -- they must have something like this available via search, right. Wrong. But they've got this "chat" link here - maybe that's worth a shot....

So I tried chatting. IE7 launched the window with a little security burp, and then showed what appeared to be a Java applet. But it was grey. I let it sit for a while, and once it was quite apparent that it wasn't going to do anything on its own, I tried to move it. Wait -- what's that?? There's something there -- it just shows up only when I moved or resized the window. It turns out that it wasn't accepting keyboard input either, so that was going to put the hurt on my chat session.

Next browser. Opera. Recent release. I got as far as loading up the chat screen on this one, but it just sat there. No life at all.

Now, in the mean time, I get an email from a Gateway sales rep who noticed that I'd signed on to chat, and I hadn't had much to say. Good for him, and good for Gateway. He asks if I still need help. "Yes," I say, " I need a Visio stencil, because I'm trying to spec some of your servers for a gov't project."

"A gov't project? You're gonna need to call 'major accounts'".

This is where I gave up on Gateway. I've seen "major accounts" groups in action, and I didn't have that kind of time on my hands. So I'm going to use the Dell stencils.

Now, can anyone seriously believe that no Gateway stencils exist anywhere at Gateway? Really??

And if they exist, which I'm quite certain they do, why in the *hell* wouldn't Gateway want to make them easy to get to??

How does any of this make the slightest bit of sense??

If you sell anything through any sort of channel, you're a damned fool if you don't make it easier for your channel to sell your product instead of your competitor's. In this case, I'm acting as an informal channel because I've got a lot of influence over the buying decision. Now, I mentioned earlier that this client is partial to Gateway for some reason, and I'd seen no reason *not* to use Gateway, but if I told him I was more comfortable with another brand, he'd drop Gateway like a hot potato.

My customer is buying a solution, and he's going to buy some hardware to run it on, too. The hardware is the tail in this case -- not the dog. This isn't unusual in VAR situations, and any vendor that sells through any kind of channel needs to understand this.

Finally, I'm picking on hardware here, but this applies to software, too. If you can get your customers to use Infragistics-branded grids & GUI components when mocking up UI wireframes, isn't that better than generic components, or worse, a competitor's screens. How about Oracle? I've already shown you how to make a Visio stencil, so you know it's not rocket science. How cool would it be to have little "Oracle"-branded red database icons start popping up on spec docs?

Is it just me, or is this a stupid-easy way to get closer to your channel and help them sell your product for you?

Why can’t the US government do this?

I was at a Labor Day cookout on Monday, and I was talking to a friend who's been doing some work for a construction company at a job site in Texas. At some point, he mentioned that a lot of the construction workers there are Mexican (not a big surprise), but then he went on to describe the adventures they've got in trying to verify their identities and right to work in the US, and I was dumbstruck at what's going on -- not because it's happening, but because it would be very, very easy to put a big bite on this problem. Read on to see the problem and how we could get on top of this.The scenario we're talking about, once again, is one where workers are showing up and the employer is trying to verify employment eligibility. The problems my friend was describing all had to do with Social Security numbers. I know this doesn't cover all employment eligibility scenarios, but let's start with SSN's and build out from there.

One of the things his company caught was a fraudulent Social Security card. A guy shows up with a card - everything looks just fine, and the guy starts working, in fact. When a second person reviews the paperwork, however, he sees a SSN with "00" in the middle -- an illegal number for a Social Security number. The supervisor calls the guy into his office and explains that the card's fraudulent, and that he needs to leave. The empoyee shows up at the end of the day with -- you guesed it -- a new card that has the numbers "fixed". The company knew what was up, so they turned him away, but he probably found employment somewhere else using his "new and improved" Social Security card.

My first reaction was that there surely must be a way to automate that sort of checking.

There is.

A little quick searching turned up a number of options:

  • Carnegie Mellon's SSN Watch Lab. This is an academic page that does some basic validation on an SSN to allow you to tell if it's a reasonable number, and to see some real rough demographic data about the person to whom it's been issued. The idea here is that you should be able to spot a person who's way too young for the card they're using, and so on.
  • SSN Validator. This site does even better - it'll tell you whether a number has actually been issued, and if so, whether records show the person to be alive or not -- a helpful bit of information when trying to find fraudulent SSN's, because a lot of bogus cards use recycled numbers.
  • Finally, the US government actually does have a facillity to check SSNs: Business Services Online.
  • The other problem my friend observed also sounded like one that should be pretty easy to stay on top of. Apparently, it's pretty common for these workers to claim *lots* of dependents, so that their tax witholdings drop to nothing. Now, if you've really got that many dependents, this makes perfect sense. But what if you're working under a fraudulent SSN, and you never intend to file a tax return? In that case, claiming a ton of dependents also makes a whole lot of sense.

    So, how do you check the number of dependents? If there's never been a tax return filed using that SSN, it's impossible to check. Even if there is a tax return, it will be difficult to tell for sure, but you can probably flag some "unusual" increases for follow-up when tax returns roll in. Worst case, you can watch for SSNs that rack up wages and then don't file a return (hopefully, this is already happening).

    But what about privacy? It's not really a problem as long as the only information you get back is "ok" or "not ok". All the information you'd send in is already known to you, since you collect it while starting a new employee anyway. Keeping the answer generic and compact keeps the answer private. If you go the route of the SSA's Business Services Online, the SSA can also track who's requesting information. You wouldn't want to have someone wrap a service in a loop and generate a list of valid SSNs!

    So, with a little investigation, it looks like most, if not all, of these checks are already available. Now, how about a little legislation forcing employers to use them? It sounds like the problems my friend described are pretty prevalent, and it also looks like a big chunk of them are easily prevented.

    Why in the world wouldn't we want that?

    Development Principles

    A while back, I read an article on a Joel On Software forum entitled Development Principles. I thought at the time that it made a great deal of sense to me - it seemed to strike a good balance between general and pragmatic. The responses to the article were pretty vigorous, and tended to come down pretty hard on it, I thought. I'll chalk this up to the audience, which has a strong "don't fence me in" contingency. In any event, if you've got a couple minutes, give it a read -- it's worth the time.

    VMWare tips – using Microsoft VPC images

    As many of you know, I'm a big fan of virtualization -- especially from VMWare. They've been locking horns with Microsoft for a while over this market - both traded shots with inexpensive workstation products, and both have now reached a point where there are free versions of their software, and publicly-available pre-built images are starting to show up. Not only is this validation of the market segment, it's great for us consumers, but do you really have to set up both VMWare and VPC / Virtual Server in order to run all the virtual machines that are becoming available?

    Product Comparison

    So, what's the difference between these products, anyway? There's a lot in common in the most recent releases, but the scenario at this point is another case of Microsoft trying hard to catch up in a product category where they entered late and lag the competition. Microsoft may eventualy win the day in virtualization, but right now, they're still playing catch up.

    I installed MS Virtual Server 2005 about a week ago because the IT manager in our company has decided he likes it better for our virtualization needs, and I figured I'd better see what all the fuss was about. Shortly after I installed it, however, I came across an MSDN download for a VPC image pre-built with Visual Studio Team System server and client -- perfect for some work I was doing to prepare for a VSTS rollout here. I downloaded the image, obviously, so I've now got some experiene with both of these tools.

    Here's what I'm seeing so far:

    • For a workstation setting, VMWare is a more "direct" experience. Opening a VM in VMWare Workstation or Player results in a machine running visibly in a window within the VMWare application. Multiple open (or even previously-opened) machines are displayed as tabs on the VMWare application window. With Virtual Server, you load a web page to administer your VM's -- including setting up new ones. This is a great way to remotely administer your host, so it makes a great deal of sense for a server product. My only beef with this approach is that I believe it's harder for a VM newbie to understand, and VMWare does a better job of giving you the easy option first, and then letting you graduate to more advanced functionality.
    • The application-orientation of the VMWare console, again, makes administration a little easier when you're working on a workstation. Again, for a server-based approach, the web-based admin console in Virtual Server works well. If you're new to virtualization, I'd recommend learning about VM setup, including networking and drive snapshots using VMWare workstation. Transitioning to the web-based admin tools is pretty easy once you understand the basics.
    • VMWare has better Linux support. Only VMWare lets you run your host on Linux. Both products support Linux running as a guest OS, but this is a new feature for Micrososft, and I'd be more comfortable doing this in VMWare, both because they've got more experience supporting Linux, and because the community of users has more experience (equals more Google hits when you get into trouble). If that's not enough, there are VMWare "appliances" available already for most major Linux distros so you don't even have to go through an install to get up and running (which brings us to my next point).
    • VMWare has a much more active user community. These guys stole a page out of Microsoft's own MSDN playbook and built on their early lead by energizing their user community. They set up a web site to host links to virtual "appliances" that you can download and use in your free VM player. Bam! - instant community. See the links at the end of the article for the VMTM site that hosts appliance links - there are VM appliances for everything under the sun there -- all based on some form of *nix, which helps explain why I've seen exactly one VPC download from MS -- and that's locked up on their MSDN site. Microsoft's OS licensing will prevent this sort of community from ever forming for VPC.
    • VMWare runs VPC images! You can open a VPC image in VMWare, and it'll generally work pretty well. I ran into some headaches getting drivers updated, but all-in-all, I'm pretty excited by this capability. I believe it's possible to go the other way, but not quite as easily. See additional details on this below.
    • Performance. I haven't done any "hard" testing of performance, but the same VM feels slightly zippier to me when run under VMWare vs. VPC. See links for additional perspectives on this.

    Bottom line on both of these tools is that they're a remarkable advancement from the "good ol' days", and it's hard to go wrong with either one of them. If you're not looking into virtualization in a big way right now, you should be!

    Using a Microsoft VPC in VMWare

    Ok, I promised some notes, so here are the roadblocks I ran into when converting a Microsoft VSTS image to VMWare.

    • Gather native files and copy them to the VPC disk drive. I ran into a problem where VMWare can't find driver.cab, and it wouldn't open or import the VPC image until I fixed the problem. I ended up copying driver.cab from my windows install, and after I opened up the VM, it turned out I needed a couple other files, too. By the time I was done, my collection included CmBatt.sys and mousclass.sys in addition to driver.cab. Save yourself a little time and copy these all to your VPC before shutting it down.
    • Shut down VPC / Virtual Server. You won't be able to open or import until you do this.
    • Merge changes to disk. VPC has a change tracking system for disk changes that works much like VMWare's - it works great when you want to roll back changes you've made to a VM. The other option here is to discard change and drop the change log, which will result in you losing the driver.cab file you so carefully copied above.
    • Open the image and "ok" the automatic hardware installs. When you're done with that, and everything looks intact, install VMWare Tools and fix up your resolution.

    That should be about it!

    Note: Although I suggest copying the driver files you know you'll need to your VM disk before conversion, it's not really necessary to have them on that disk - it's just necessary that you can get to them when you need them.  If you have these files prior to conversion, copying them to the disk file makes them really easy to get to when you need them, but if you want to get to them some other way, that's fine, too.

    As indicated in this StackOverflow Article, this isn't abundantly clear from the instructions above.

    Additional Links

    Opening VPC with VMWare
    VMWare product comparison
    VMWare Appliances on VMTM

    My articles:
    SugarCRM for Job Search Management - Part 1
    SugarCRM for Job Search Management - Part 2
    Administer Virtual Machines like "real" hardware

    Are you guilty of Drive-by Management?

    It's been a while since I've been a new employee, and I think it's good for me to get another turn on this side of the hiring process. I always made a big point with all my new employees to tell them, "you're only new here once, so tell us where we're screwing up." So, here I am, experiencing some screw-ups. As always, I think this can be a learning opportunity, so I'm going to share some notes with you -- are you doing any of these things?
    Starting a new employee is a critical time. Not only are you forming vital first impressions, you're probably more at-risk with your new employees than at amost any other time in their career with your company. Think about it -- if they're just coming off of a job search, they've probably got a whole database of contacts spun up, and their cell phones are still on speed-dial with a bunch of recruiters. If they're not happy in the first couple weeks of their employment with you, there's every reason to believe you'll lose them.

    Here are some things I've seen in my first weeks of employment that could really stand to be improved. For the record, I intend to approach these as areas where I can help raise the bar here rather than reasons to get disgruntled. I guess I'm just a "glass half full" kind of guy. 😉

    • Ok, I lied. I'm going to start with something that went exceptionally well. The HR portion of orientation was well-run, professional, and friendly. This is the mark of an organization that sees "service" as an important part of their business, and it's a clue to you as a manager -- there are organizations that are optimized to create things (including processes) and organizations that are optimized to work processes. Knowing which one is which: priceless.
    • First day: new machine. There's something to be said for having a machine ready for you on your first day, especially for a developer-type who molds his PC to fit him like a race car driver tailors his seat. I started and was given a temporary laptop(for the first half-day or so), then a temporary desktop, and finally my laptop a week or so after I started. In the mean time, I avoided setting anything up the way I really wanted it, because I knew I'd be giving up the PC soon. Obviously, I was less productive and less comfortable in my new home as a result.
    • Where are the docs? Every company and department has a collection of docs, as well as a collective archive of "tribal knowledge". In my experience, organizations that know that they're lacking in documentation are a little better at sucking up the hit to assign someone to sit and explain why things are the way they are. In this case, there's a SharePoint site and a SourceSafe archive, so the natural tendancy is to just assume that everything's in there and easy to find. Only one problem: both are incomplete and not updated nearly often enough. There's just enough available in both places to convince me that nothing here could possibly be made to work.
    • Who's in charge of what? It's natural for a new employee to have questions about what's going on, why things are the way they are, and who can help explain things. It's really frustrating to get the runaround when you ask questions about this stuff. I've been asked to put together some best practices for builds on Visual Studio Team System (VSTS). Cool. I can do that. Three days later, I'm still trying to get set up, because I keep getting bounced around trying to find out who can get me access to the stuff I need to do my job. Sigh. Same thing goes for project work - "can you help with XYZ?" "Sure," I say. "Who do I see with questions?" "...uhh..."
    • Everyone's busy. This is a killer, because you obviously wouldn't hire someone if you weren't busy. Despite that, you've got to make sure it's someone's job to maintain some continuiity with the new guy, cause it bites to be hanging out in the breeze while everyone else is running around frantically doing what they need to do. The tough truth is that you need to expect to invest some time from your busiest team members in order to ramp up a new employee. That's the price of admission. If you don't put in that up-front effort, you're not going to gain the additional productivity you're looking for in the new guy.

    The next time you start a new employee, take the chance to really look at your organization with those fresh eyes. In most cases, shortcomings that are readilly apparent to the new guy are places where you're really vulnerable organizationally, but you've been getting away with it because you've got good people covering the holes in your process. Take advantage of these clues to shore up the problem areas, and you'll have a more efficient, more reliable organization, and happier new employees, too.

    Administer Virtual Machines like “real” hardware

    Yesterday, I had a conversation with an IT Manager who was trying to figure out how to set up, allocate, and administer a new VM Server. He's drinking the VM Koolaid, so he went out and bought a nice, big server with lots of storage and RAM and room for expansion. When it came to setting it up and getting VM's running on it, though, he was thinking way too hard.
    The VM server in this case is Microsoft's Virtual Server 2005, but the problem and the solution are identical for VMWare. I needed to speak with this IT Manager because I needed access to one of the machines we're supposed to be setting up. As we talked about setup of these machines, however, it became clear that he was trying to factor the VM and the host into every setup and administration decision, and it was making all of these decisions very complicated.

    For example, the first problem he brought up was access to the individual machines. He had a mental picture of a user connecting and logging onto the host server, and then gaining access to the consoles of VMs by using Remote Desktop via the host. He correctly anticipated a bottleneck here, as this would get pretty crowded in a hurry.

    I pointed out to him that the VMs were going to operate as "real" machines for all intents and purposes, and that if console access to any of these machines was really needed, it could be had by connecting Remote Desktop directly to the VM -- not by going through the host. Of course, I also pointed out that in many cases, these VMs were going to play a role where desktop access wouldn't really be necessary or appropriate. If you wouldn't expect someone to march into your server room and pound on the keyboard in front of a physical machine, there's probably no need to support desktop access to a VM, either.

    The same priniple applies to other aspects of management, too. The IT Manager pondered creation of one or more sub-domains to help administer the machines. I pointed out tha the decision about what tools and techniques to use for these machines should be made without regard for whether the machines are physical or virtual. In other words, if a sub-domain is the right way to administer physical servers, then it probably makes sense for VMs, too.

    That's the beauty of VMs these days, really -- you can treat these machines just like real hardware (think of them as a rack full of servers or blades), but they are a piece of cake to create, move, and destroy, and you can share some big-time horsepower much more efficiently than you ever could have before. So relax and soak up the benefits, and stop trying to treat them differently. You'll make better, easier decisions and end up with a better overall environment.

    Construct documents like software, please!

    I'll assume that everyone reading this blog has some experience in software development. You understand the principles of good software development, and you use these techniques to build software that's modular, reusable, and easy to maintain. Yet, I'll bet that you come across some MS Word documents on a pretty regular basis that are in need of some help in these same areas. If you're not part of the solution, you're part of the problem, so pitch in and start cleaning up those docs!Most MS Word docs just aren't built according to good software development practices.

    What in the world am I talking about?

    Simple. I'm talking about templates and styles. Based on the docs I've seen people crank out over the years, very few people know how to use them correctly, and the result is a slow parade of documents that look almost, but not quite completely dissimilar to one another, despite the fact that they have supposedly come from the same company or even the same author.

    Who cares? It depends on context and degree, really. In some cases, it's really important to get formatting just right. These cases usually aren't a problem, however, because companies employ armies of technical writers and editors to make sure that these important documents come out all right. When document authors are left to their own devices, however, things start to slide. Formats vary from author to author, and in many cases, within individual documents.

    Bottom line: this looks sloppy. It's a bad reflection on the author and the company, and worst of all, it often jumps out at a reader as a first impression, and this colors the reader's view of the content. Nobody really follows the advice about not judging a book by its cover, you know.

    When this problem is really obvious, it's easy for everyone to see and correct. More often, however, the problem is subtle. A font substitution here, a fuzzy logo there, some headings that aren't done quite like the others. You've probably experienced what real crispness in communication looks like -- a relentless pursuit of uniformity and professionalism no matter where or from whom a document comes. It's typically the hallmark of large, marketing-savvy companies, and it's the only thing that really casts "almost right" into perspective. In other words, "almost right" usually looks ok until it's next to "right" -- and then, it just looks sloppy.

    People usually assume that "right" is only achievable through the application of ten-story über-marketing and PR divisions. Not so. The most important prerequisite is desire. If you want to look like you're all on the same team, it's not too hard to do. You know software development techniques, and you can help with this problem.

    Yes, you.

    Let's think about this problem like we would a software problem. There's certainly a matter of standards and documentation. In other words, would you know "right" if it ran up to you and bit you on the ankle? In the case of finding a standard, you may not be able to arbiter what's desired, but you can help document it once it's found.

    Next, how do you apply this format to all of your documents? Again, you should think of this like you would a coding standard. There are manual approaches, automatic approaches, and ways to check for use of the standards.

    The manual approach idea is simple: just tell everyone to use the correct formatting.

    Hahahaha, haaa...hahahaaaa....., chortle, giggle, giggle.

    Ok, maybe I'm the only one who found that funny. You'll probably have better luck if you make it easier for authors to do the right thing. Just as with consistency in web pages, the key here is the proper use of styles. If you know anything about Cascading Style Sheets (CSS) in html, you'll be able to grasp the intent and operation of styles in Word. They operate on selections, just like a DIV tag. They can be cumulative. They are stored either with the document you're editing, or in a global document template (normal.dot).

    One of the most common ways to use styles is to edit them in a master document, and then copy the master document. This can be effective, but it's not very elegant. You could also copy your styles to the global template, but that's not recommended because it's not easy to propagate those changes to the rest of your organization.

    Instead, the best approach is to save your styles in a document template (.DOT). Not only does this let you wrap the styles up in a portable fashion, it also lets you present a little example of usage when somebody creates a document from that template. When preparing a template with styles, try to keep the contents of the template as relevant, complete, and accurate as possible. Try not to leave styles in the template that you don't want to be used, and make the ones that you do want to use as obvious as possible by giving them meaningful names. Consider the user, and keep things as simple as you can.

    Finally, there are a couple things you can do to check for correct use of styles. The simplest is to turn on an option that flags formatting that Word recognizes as just a little bit different than the surrounding formatting. This will also check for "direct" formatting, where fonts, paragraph settings, and other formatting is applied directly instead of through styles. To turn this option on, go to Tools...Options, and click the Edit tab. Look for "Mark formatting inconsistencies", and check it. You'll see blue squiggly lines where Word sees problems. As a last resort, you can also examine formatting and styles using macros. This is a pretty intense and difficult option, but it's there if you really feel the urge to dive in.

    I'll leave you with a few links for further reading. If you have any tips you'd like to share, feel free to comment here.

    Styles and Reusing Formatting
    Tips for Understanding Styles in Word 2002
    Microsoft Word: Living with the Beast
    Understanding Styles in Microsoft Word