Ah, Karma, you rise up at the least convenient times. (This blog post is not meant to imply a belief in preordained futures, divine intervention, or the existence of the Perfectly Normal Beast.)

Yesterday, I had somebody ask me not to speak about something at the Springboard Virtual Round Table. I didn’t react particularly well to this particular piece of … erm … guidance, so in retribution Karma decided to pair me up with a completely drained car battery and an emergency service technician with the world’s worst sense of direction. Which of course gave me plenty of time to think about things.

And I concluded that you shouldn’t listen to me, or, really, anybody. And, at the same time, you should.

(Perhaps I should have put the fact that you should first, to avoid losing readers.)

So, what happened?

I demonstrated Access 2007 and Access 2003 running side by side. What you didn’t see is that I also sequenced (and yes, ran on Windows 7) Access 2.0. Hello 1994. If you ever attend my talks at conferences, you may see me occasionally do something like that – a quick firing up of an app that brings back a wave of nostalgia that sends approximately 5% (max) of the people in the room on a trip down memory lane, and is done quickly enough that the 95% who don’t remember that ancient piece of software aren’t annoyed. Seeing it again positively delighted me, while making me wonder how we possibly ever thought that was good. (Teal with blue shadows? Seriously?)

But I was told (not asked) flat out that I could not run that. It gives the wrong impression. We are trying to convince people that App-V is not an app compat solution, and if it doesn’t run natively on the OS we don’t want to show it running in App-V, because that applies that App-V is a remediation solution.

The engineer in me thought that, while I certainly don’t want to mislead people into thinking App-V is an app compat solution of any significant merit, if you try to make things cut and dry, then you’ll be disappointed. Because the reality we’re trying to portray with messaging collides rather inconveniently with the actual reality where App-V does fix the one problem that keeps Access 2.0 from running natively on Windows 7, and you’d have to apply RunAsAdmin, CorrectFilePaths, or loosen ACLs to get it running without App-V. You see, in my world, the theory never gets to win, it’s reality that gets to win, and reality had spoken loud and clear via my perfectly functional and incredibly silly demo.

But here’s the problem with that thinking: in my world, it’s my job 100% of the time to understand the system top to bottom. I have time to understand subtlety. I have the ability to dive as deep as I want, so long as it helps solve somebody’s problem somewhere. But for the rest of the world, you just want to get done. You don’t have the same luxury of time that I do. And, if my demos were the only information you ever received about App-V because you never had any more time to learn about this one little niche of technology, you’d come out having watched with your own eyes one app not being fixed by it, one app being fixed by it, and you wouldn’t know what the h*ll to think, you’d conclude that we’re all mental, and you’d go off and become a sheep farmer.

As a result, it’s really important that, if we’re the only message you see, we don’t self-contradict (even though the contradiction exists only because we haven’t gone deep enough to resolve the paradox), and we give you the one high-level message that helps you make the best decision, even if the abstraction we give you is a leaky one. We’d rather err on the side of whatever approximation saves you the most time, money, and heartache if we have to approximate.

The same is true of tools. I’ve looked at all kinds of output that suggests that something might have gone wrong, only to find that it works perfectly well. Believe me, the people who make these tools know that they’ll get some things wrong – they just want to get the high-level numbers that you depend on to make decisions right just as often as they can.

I have the same problem when building a hypothesis while debugging an application. I use my imperfect knowledge of a huge system to make what is, hopefully, a pretty good guess about what’s going to happen next, but I’ve concluded and believed stuff really strongly countless times when one small failed assumption along the way led me to the completely wrong conclusion and I wasted a ton of my time.

So, keep in mind that, while we’re always working really hard to distill this enormously complex and sometimes fiercely non-deterministic system into a set of rules you can use to actually get done with your job before we release Windows 14, that rule can be an oversimplification that isn’t always true. No matter how clever the source, nothing should trump what you see with your own eyes. A good source should always lead you to saved time, but in this world you always have to trust but verify.

Also, if you ever have somebody tell you something that you don’t initially agree with, you should spend the time right then and there to understand why they believe so strongly in what they’re saying, in a respectful manner. Unless you like hanging out in parking lots waiting for service vehicles.