A while back, I wrote about how I disliked the word “Robustness” because it’s meaning was so vague.
Another word that I dislike (for similar reasons) is “Policy”. As I mentioned in my “We’ve RI’ed” post, I was asked to work on the “audio policy” infrastructure for Windows.
The problem is that nobody knows (or knew) what “policy” means. Some of the commenters on the previous post thought it had something to do with DRM (it doesn’t). On the other hand, the DRM system does have something called policies (they’re content protection policies).
Is “audio policy” the same thing as a group policy (a mechanism for applying system configuration in a domain)? Nope.
What about power management – they have “policies” as well. So does terminal services, so does TCP/IP.
In fact, almost every part of the system has something that’s called “policy”. In fact, a brief search of the Windows sources comes up with well over 5000 files with the word “policy” in them. Now a lot of them have to do with settings that are managed via group policies, and a bunch of them come from test code, but there are still a lot of pieces of Windows that use things called “policy”. MSDN searches return hundreds and hundreds of pages for the word “policy”.
The root of my problem with the word “policy” is that it’s almost impossible to have a conversation with someone and use the word – unless you lay out the ground rules ahead of time, it’s really easy for people to get confused, especially if you’re talking to someone from another team.
Whenever I talk about the policy engine, if I’m talking to someone on my immediate team, they usually know what I’m talking about. But as soon as I talk to someone on another team (even someone just down the hall), I have to spend 5 minutes describing what the policy engine does.
Because the word has been used in so many contexts, for so many different things, it has essentially lost all meaning.