There's a backstory and it's a long-ish one. The tl;dr folks are welcome to head for the exits now--trust me, I understand completely.
The backstory is that two departments at "my" client are having a tug-of-war (of sorts).
- Party A comprises the "owners" of "my" application for many years, and whose delight with "my" application has been the source of my employment and job satisfaction for over half a decade.
- Party B insists that certain features of the application itself, as well as its infrastructure be changed to meet certain minimum standards. And, while it riles certain non-conformist sensibilities, I can see the point of setting a baseline for software developed by outside contractors.
But Party B has standards, friends and bretheren. It's all about standards, don'cha'know... Which--afore-mentioned non-conformity aside--admittedly does have a certain pull with your faithful blogger. Haven't I, after all, twisted my whitey-tighteys into a bunch when Microsoft or the Mozilla Foundation or whomever thinks it knows better than the W3C? So, basically, that makes a contract with this brand-name company sorta-kinda like an API for its vendors, yes? Yeah, I can grok that.
And--let's be fair--the process of modifying and deleting extraneous and egregiously slanted terms in the voluminous "Application Service Provider" contract was actually pretty amicable. So no complaints there.
Then came the ugly question, "Who's paying for these changes?". From where I stand, Party B said to Party A, "Well, it's your application." Party A retorted to Party B: "Hey, we didn't order this!" And so the rollout--originally slated, appropriately enough, for Halloween weekend--was put on hold indefinitely while that was sorted out.
Fast forward to early 2011, when we were informed--sans fanfare--that arms had been twisted and some budget somewhere would be shaken down for the not-inconsiderable fee. Oddly enough, the rollout was then set for Valentine's Day weekend. So I'm wrapping up walking "my" power-users through the tip-of-the-iceberg changes that would actually affect them, when I'm sucker-punched by the news that a completely different set of folks need to know this, because "my" users don't have the resources to deal with the downstream users.
And so the upgrade is unceremoniously stuffed back into its cryogenic tube.
A week or so elapses between the above (ahem!) epiphany and an email informing me that Parties A and B have scheduled a meeting to hammer out the support issue. Donning my very best Chibi-eyed Look of Innocence, I offered my support "in case there are technical questions." Then I booked the tickets to crash the meeting in person, rather than via web conference.
Maybe it's just that everyone was on their best behavior b/c "company" was visiting, but the actual meeting was pretty laid-back--seriously, singing "Kumbaya" or passing a joint would not have been entirely out of place--at least from my vantage-point, anyway. The changes that were largely "mine" were pretty much accounted-for. But what blew me away was that, when it came to the question of all the auditing history that Walks-Above-The-Water SysAdmin has to do, nobody--and I mean nobody--in that room had a clue who was supposed to receive that.
I'm pretty sure I managed to keep the "Y'all are kiddin' me...riiiiiight???" I mean, after all, don't you do this contract for everybody 'n all?" look off my face and saved the actual freak-out for the safe confines of my home-pod, nestled in the nurturing bosom of my workaday "family."
That's when WATW SysAdmin enlightened me to the fact that the bulk of "his" part of the contract was written as a potential "escape hatch." In other words, the intent of Party B is to rely on entropy, to assume that the service provider would--given their druthers--cut corners, kick the can down the road, bank on no news being good news, etc.
In other other words, unwritten weaselese. The brown M&Ms clause and that sort of thing.
Problem is, that smacks of what psychologists call "projection." Were I a gambler, I'd label that a "tell." And I'm emphatically not a gambler. (If you don't believe me, ask Dennis about the infamous game of 500 with his Mom and Grandma where I was dealt what can only be described as a statistically-improbable hand--and couldn't stop giggling the whole round.)
Now. Even someone who still nurtures enough foolishness to be annoyed at a criminally illogical world, I do know that people are a special case of the Universe-at-large. For the most part, the Universe-at-large does not conform to your expectations. At least not without a lot of money or pharmaceuticals to make a gated community from your own special lower-case reality. People, on the other hand, quite often do live up--and, more aptly, down--to your expectations.
Expect to be screwed by anybody, anytime, and...well...I have a tough time scrounging up much sympathy when it happens. Because, in my naifish world, a contract essentially says, "Okay, we're spelling out the quid pro quo to cover both our butts. Because we both know that people come and go, and in the meantime we all have better things to do."
But beyond that, expecting contracts to passively do the relationship-policing for you is a management #FAIL. Most especially when the definition of "management" embodies our worst-case top-down military-industrial hangovers. Even in that extreme case, it begs the question: "Why are we wasting all these windows on hard-walled offices when we can manage by contract?" I understand that there need to be minimum standards to head off cronyism, kickbacks and the like. But at some point, an organization needs to understand that it's doling out executive salaries and absorbing the cost of the corporate caste system's perks to some tangible end.
Please understand, above everything, that I desperately hope I'm wrong here, and that the representatives of Party B--and they've been quite easy to work with thus far--just don't have that much experience with outside parties. That would be awesome, actually. Not only because it leaves me more time to worry about making sure that The Bytes successfully hook up with The Real World--but also because it basically equals a productivity #WIN.