Are You a Vendor or a Partner?

I have a friend who runs the purchasing department for one of Las Vegas’ larger casinos. His job, obviously, is to save the company money by negotiating volume contracts and the like.

He was telling me about a contract that was coming up for renewal, and about the discussion he’d been having with the vendor. It was something along the lines of, “look, we’ve been paying you our contract rate for the past however many years. In the meantime, you’ve been completely absent. You’ve never come in here and offered to help me save money elsewhere, never notified me of any new deals or offers, nothing. In fact, I’ve been purchasing far more than our contract required, and you’ve never dropped by to see if we could settle on a new price for our higher-than-expected volume. I give you more and more business, and you give me nothing. And now you want to renew at a higher price, even though I know you’re offering better pricing to others in town.” Vegas is a small town – you can’t be dishonest with someone for long, here.

Anyway, the whole conversation got me to thinking that there really is a difference between a vendor and a partner. In the case of my friend, a partner would try to make a good profit for his company, sure, but he’d also recognize the value of a long-term relationship and try to help optimize that relationship so that both sides benefited. He’d regularly check in to see if there was room for improvement, and proactively look for opportunities to strengthen and deepen the relationship. But he didn’t – he played the role of vendor and, if I remember the story correctly, lost the deal to another company.

I had a similar experience with my auto insurance several years back. I was talking to a financial advisor who used to work in the auto insurance industry, and he offered to look at my policy. “Your limits are way too low,” he said, “and you don’t need some of these other coverages.” Rental car coverage, for example, was costing me about $27/month. That’s actually what it would cost to just rent a cheap car per day, meaning I was paying for 12 days of rentals per year, and never using them.

And my insurance agent never said a thing. Never offered to review my policy, never suggested why I might need to raise my limits (which makes him more money), never suggested considering those other coverages. He wasn’t a partner, in other words – he was just a vendor. And, since he brought nothing of value to the table, he was easily replaced.

It’s something I think everyone needs to consider in their career. Imagine, for a moment, that our legal system allowed everyone to be an independent contractor, rather than being an employee. Would you be a partner to your current employer, or a vendor? That is, would you be providing a simple commodity service that could be replaced, or do you provide a unique value-add that makes you worth keeping around, and possibly paying a premium?

For example, do you look for ways to save your employer money? Do you automate and optimize? Do you invest in yourself to gain the skills needed to automate and optimize? Yes, those skills benefit your employer, but they also benefit you, and it’s worth investing that time.

Do you look for problem situations and try to solve them? For example, when I helped a former employer migrate from Lotus cc:mail to Exchange+Outlook, I came up with a little brochure that we distributed to company employees, helping them quickly find the most common functions in the new software. That saved a lot of help desk calls, so even though it wasn’t strictly my job, everyone benefited from it.

Your suggestions don’t always have to be implemented – and don’t get discouraged if they aren’t. Continue to suggest, to optimize, and to improve. Make yourself an indispensable partner, and never let yourself become an easily replaced vendor.

 

You Probably Shouldn’t Read This

Seriously. This is about religion, so you should probably go back to whatever you were just doing. This is an opinion piece, and I’m entitled to mine. So. 

I was aghast at today’s USA Today article explaining how an Air Force airman was denied re-enlistment for refusing to finish his enlistment oath. As an atheist, he objected to the “so help me God” portion of the oath, which the Air Force says is mandated by statue.

It’s such a crock, I can’t help but wonder who in the military is using this to make some kind of spiteful jab at Congress or the administration. Everyone knows that both the First Amendment and Article VI of the Constitution makes such a requirement patently illegal. I’m sure there are plenty of devout service members in religions other than Christianity who would also object to the oath, and I know there are plenty of Christian sects that object to any kind of oathmaking to God. Surely we’re not trying to exclude all of them from the military, right? And it seems a little disingenuous anyway. I mean, a truly devout Christian, who perhaps would have no objections to making an oath unto God, would also feel a bit nervous about the whole “thou shalt not kill” thing, right? Killing being a sort of implied requirement of joining the military?

According to our basic precepts of government, as outlined in the Constitution, our government cannot prescribe or dictate someone’s religion to them, and this USAF fiasco-in-the-making certainly seems like an attempt to do just that.

However.

This is the kind of news story that gets people up in arms about completely different religious-related things, and does so incorrectly. While our government is barred from dictating or establishing a religion, it is not barred from recognizing religions (plural), nor is it barred from incorporating religious precepts into government – provided it does so in a way that doesn’t force someone to join said religion. That “thou shalt not kill” bit, for example, is a pretty important underlying thing in our laws, which are not a big fan of citizens killing each other. In fact, Christianity’s Ten Commandments pretty much outline the core concepts that underpin the majority of our oldest and most significant laws. So it’s not like religion is unimportant, from a governance perspective.

But this whole “the government and religion can’t co-exist” gets taken too far, as (I feel) in this other USA Today article from a few days ago. Putting a cross or other religiously-significant monument in a public place isn’t necessarily violating the separation of church and state. Such a monument could easily be a simple cultural acknowledgement of the role religion has played in our country – which was, keep in mind, founded in part by folks seeking religious freedom. The cross in this Indiana state park doesn’t in any way detract from anyone’s use of the park, and it doesn’t “promote Christianity” any more than having “in God we Trust” printed on our money promotes Christianity. Atheists manage to be atheists while also spending money, so it’s difficult to see how a cross, on a war memorial, could be negatively impacting anyone.

And putting a cross on a veterans’ memorial doesn’t make the entire park into a religious shrine. That’s a ridiculous overstatement. It’s like saying a county council meeting has become a church, simply because it opens with the Pledge of Allegiance (which also includes the word “God,” something that’s cause no end of bickering in the past couple of decades). 

The problem with this “remove religion at all costs” is that it’s just as wrong as trying to shove religion down someone’s throat. The idea that, in a country based on religious freedom (it was the first thing we added to the Constitution, remember), you can’t display your religion, is just ridiculous to me. Religious freedom doesn’t mean you don’t have to look at anything you disagree with. It means the government can’t tell you what to believe in. Your fellow citizens are welcome to try and convert you to their viewpoint – that’s in the First Amendment, too. You also have the non-enumerated freedom to walk away and not listen. 

You have a right to live in this country and practice whatever legitimate religion, or lack thereof, you wish. You do not have a right to force other people to join you – and that includes forcing them to join you in atheism. You do have the right, in a public venue, to stand up and proselytize – that’s a basic First Amendment protected speech thing – and that proselytizing could well including promoting atheism. 

One of the biggest problems we have in our American culture today is a lack of respect, and a lack of tolerance, for other people’s perspectives. While I don’t want the government forcing any religion down my throat, I must not have a problem with other people practicing, displaying, and promoting their religions. I cannot find it in me to get upset about displays like the one in the Indiana state park, simply because Christianity – and other religions – are a part of our culture, whether I follow that religion or not. I’m not out to revise history by removing God from every possible public venue, because it wouldn’t be true.

And there’s a downside to these arguments. Christians increasingly feel attacked from every side simply for practicing their religion. It’s suddenly becoming unfashionable to be religious. As a result, they quite understandably push back – often in significant ways. You take my cross out of the park, I fight against civil liberties that contradict my religion. The rhetoric and intolerance simply escalates to ridiculousness. It’s unproductive. For the life of me, I just can’t get upset about a carving of a cross in a state park. If you get upset about it, maybe stand next to it and preach atheism or whatever you’re into. Equal time.

While the government has no business forcing an airman to say, “so help me God” in order to keep his government job, we as citizens don’t have (I feel) any right to force each others’ personal beliefs underground. If it isn’t detracting from your personal liberties, and if it isn’t demonstrably harming anyone, then let it go. Accept that we’re all different, and that we don’t all need to live according to some standardized script. 

Our increasingly constant bickering, simply because those people over there don’t live like I do, and I don’t like that, is becoming annoying, distracting, divisive, and incredibly counterproductive. I almost think we should outlaw national news organizations simply so we’re not all so damn aware of all the differences going on around us!

Just because I don’t eat soft shell crab doesn’t mean I object to seeing it on the menu, and if we’d all spend less time worrying about small-time arguments like this, we’d all be a lot happier. And we could focus on the important stuff.

Anyway, there you are. Have a good weekend ;). Comments welcome, but keep ‘em polite.

 

 

 

 

 

 

 

Changing the Conversation on Classroom Training

One of my personal interests is how we educate our kids and prepare them for the workforce. In general, I think we do a poor job. There’s an enormous emphasis on getting a college degree, driven both by the high-margin world of academia and by businesses who make a 4-year degree a “minimum entry level” for almost every job. It’s insane – we’re taking kids at the most vulnerable point in their lives, as they make the transition to full adulthood, and throwing them into massive debt. We’re forcing them through a program that simply wasn’t ever meant for every kid or every job.

As someone without a college degree, but who completed a four-year formal apprenticeship, I’m keenly aware of how many great-paying jobs there are that don’t really need a college education. The problem is that apprenticeships, especially in “white collar” jobs, are pretty much dead, and primary education simply doesn’t focus on preparing kids for those jobs.

When I think of what you need to know, for example, to be an entry-level IT help desk worker… it isn’t an insurmountable list of knowledge. Yet those jobs average $36k per year in the US, which is a great entry-level position. They also tend to offer growth opportunities, and almost by definition they support on-the-job learning. But kids simply can’t get the needed pre-req skills in K-12, almost forcing them to go to college. Where, by the way, they won’t learn what businesses need them to know, either. Instead, they’ll come out of college at which point a $36k job ain’t much, given their newly acquired student debt.

That’s why I’d like you to consider voting for Aaron Skonnard’s SXSWedu presentation. Aaron’s the CEO of my company, and a bunch of us at Pluralsight would love to change the conversation on IT education. We truly believe that quality IT education is something that should be available everywhere, to everyone, for an affordable price. I personally believe that a motivated high school student could, with the right supplementary training (probably done on their own), move right from Senior year into an entry-level IT job and excel. I’m personally agitating to produce more of the entry-level training those kids would need, because I think it solves a number of huge problems: the difficulty finding entry-level IT workers, the need to keep kids from going neck-deep in debt before they’ve even had a chance to live, and so on.

You’ll have to create an account to vote, but votes count for 30% of the selection process, so if you have a moment to do so, it’d be a big vote of confidence. And, expect to hear more from me on this topic in the coming year – it’s definitely something I feel strongly about. I’d love to see more kids going straight into IT after school, and I’d love to see more businesses feel confident in hiring them for those entry-level positions. There’s no reason IT can’t become more of an apprenticeship-style career path, with an emphasis on continuous on-the-job learning supplemented by timely, up-to-date formal training. 

(I’ll acknowledge, to my non-US readers, that many countries have different systems for higher education, many of which lack the disadvantages of the US system; I live in the US, and so my perspective is driven by what I see around me.)

Why Engineering Workarounds is Stupid

Back when TV was first invented, their Cathode Ray Tubes weren’t terribly well-designed. They curved a lot, especially at the edges, making the picture at the edges useless. To compensate – to workaround – manufacturers buried the edges of the tube in the TV cabinet, so you could only see the relatively-flatter middle portion of the tube.

As a result, broadcasters had to be careful not to put useful information near the edges of the picture. This concept because known as overscan, meaning the tube was scanning its electron beam(s) across a larger surface than could be seen.

Improvements in manufacturing and electron beam control happened almost immediately, though, making overscan less necessary. Unfortunately, it was built into the broadcast standards by that point, and so everyone kept playing along. Today, overscan is completely and utterly meaningless in our world of readily-available, cheap flat panels. But overscan persists, with broadcasters identifying a “safe zone” for content, and more or less ignoring the “edges” of the screen. The problem is starting to fade as content shifts over to all-HD (which presumes a flat panel type of display), but it’s been an annoying problem for decades.

This should be an object lesson in not engineering workarounds as permanent solutions. If something feels hacky or kludgy, either don’t do it, or at the very least don’t bake it into a standard that will be difficult to change later.

For example, those early TVs should have been built with a circuit that took a non-overscanned image and shrunk it down to the flatter, reliable portion of the screen – with a switch that could turn that feature off. It’s not unlike the scaling modern flat panels can all do, in fact. That way, the workaround can be put into use, but the hack – overscanning – doesn’t get built into the broadcast standard.

We build workarounds every day in IT, but you should pay attention to them. Identify things that you know are hacky, and schedule them for a mental re-visit every few months. Decide if things have improved in other areas, and if the problem can now be solved in a better-engineered fashion. Kludgy scripts should be replaced with more sensible, maintainable, reliable solutions.

Don’t make workarounds part of a permanent standard!

DSC Summer Camp at My Place

So, we’re going to do DSC Camp at my place the weekend of August 21st, 2015. Yeah, NEXT year.

We’ll ask folks to arrive Friday the 21st sometime in the afternoon, and we’ll go down to the Strip for an informal meet-up. On the mornings of Saturday and Sunday, we’ll have classroom time at a Hilton Garden Inn near my house. Saturday afternoon and evening will be “unstructured wet discussion time” (e.g., pool day) at my place, possibly with Outdoor Movie Night thrown in for fun. Sunday evening, we’ll have more informal discussion time for folks who stick around.

Topic-wise, we’re going to spend a day on DSC planning and infrastructure, and a day on writing custom resources – fully expecting to be doing so the v5 way, since it should have been out for a while by then, I’m guessing.

We’ll probably limit this to something under 20 total people, and that’ll include a couple of specially invited guests. Cost-wise, you’re probably looking at $1500. We’re going to cover all the food and beverages and whatnot, as well as rent meeting space with that money. You probably won’t need a car (we’ll work out a shuttle bus) and you’ll need to stay at the Hilton Garden Inn on South Las Vegas Blvd in Las Vegas (it’s about half a mile from my house). There’s a second hotel that’s actually a bit closer (but doesn’t have meeting space) in case the HGI fills up, although we’ll encourage you to book a room as soon as you register with us.

If you’re interested, drop an e-mail note to DSCCamp over at PowerShell.org. That goes to Chris, who will record your e-mail address, and let you know when we open registration. Please only e-mail if you’re pretty serious about attending – we’re not going to use that as a general “we’ll send more information later” kind of advertising service. We’ll be opening registration in early 2015, and we’ll e-mail you when that happens (and probably won’t e-mail you otherwise).

Seriously, this isn’t a “send us an email if you’re vaguely interested in the concept.” We’re gonna do this, and just want to be able to e-mail folks who genuinely plan to register when the time comes. This is all being managed manually, so thanks for helping us keep it simple <grin>.

(Quick update – thanks for the many suggestions, but I won’t be doing this as some kind of visit-every-city roadshow; the main point was to simplify logistics and do something simple and unstructured; you’re welcome to do one at your own house and I’ll be happy to tweet about it, but I don’t have the bandwidth do take this on the road)

Do You Know How it Works Under the Hood? Really, Really?

Quick quiz:

Can you create an Active Directory user account that has a blank samAccountName?

Answer: Yes. Oh, not in ADUC, but using almost any other tool, sure. A blank samAccountName is legal so long as it’s unique.

I use this example in classes all the time, because it illustrates one of the difficulties in the Microsoft admin universe: we know our tools pretty well, but not necessarily the underlying technology so well, mainly because the tools have provided a layer of insulation for our entire careers. But without knowing the technology, you’re not as good at planning, troubleshooting, architecture, operations – well, all of it, really.

Here’s another one: do you know how the “dynamic memory” or “memory overcommit” features in VMware and Hyper-V work? If not, and if you’re using that feature, you might be using it in cases where it does more harm than good.

Think about it: in a physical server, you can’t simply yank memory out of a running machine, nor can you just pop in more memory. The guest OS in a VM thinks it’s on a physical machine, so it operates under the same restriction. So how does overcommit work?

The trick with VM memory is that every byte of memory actually being used by a VM must be backed up by physical RAM in the host. Traditionally, the hypervisor had no way of knowing what memory was in use, and what wasn’t, because the guest OS is free to rearrange that stuff constantly. Ergo, every byte assigned to a VM needed to be backed by physical RAM.

Overcommit requires the installation of a special device driver, called the balloon driver, in the guest VM. Device drivers operate in Windows’ kernel mode, which means if they ask for memory, they get it. The assumption by Windows is that device drivers don’t need much RAM, and that denying them RAM will make hardware not work, and so they get what they ask for. So when the hypervisor host asks the balloon driver to release some RAM, the balloon driver asks the guest OS for memory. Whatever the driver gets, it erases, setting the memory contents to 0. That means a known portion of guest memory isn’t in use, so the hypervisor doesn’t have to back that memory with physical RAM. Thus, the VM always thinks it has 4GB or whatever, but not all of that will be in use, because the balloon driver “locks” it.

The operating presumption is that running applications will only release RAM they don’t absolutely, positively need, so the balloon driver won’t impact system operations. It’ll essentially just “gather up” memory that wasn’t really in use.

The problem is that assumptions can sometimes be wrong. For example, some applications maintain large data caches in RAM, basically seeking to use all the RAM they can – the same approach as the balloon driver. When the OS sends a memory panic, because the balloon driver is requesting RAM that isn’t available, these user-mode applications will give up some memory. Their assumption is that the app is better off with less-than-optimal RAM than with the server crashing due to insufficient memory. So app performance suffers – sometimes significantly, depending on the effort involved in rearranging those data caches so that memory can be freed up.

The point is, you can’t make intelligent decisions about these features unless you know how they work, how they interact with other applications, and what the consequences might be. Knowing how things work under the hood is a crucial part of being an effective IT person.

And that “knowing” requires an insatiable curiosity. First-level documentation never discusses these under-the-hood secrets. In most cases, vendor marketing doesn’t either, because they simply want you to believe the feature is a no-brainer to use. So you have to be constantly curious, constantly asking “why” and “how,” and constantly seeking out the answers on your own. Yeah, it’s a lot to keep up with – but it’s what separates the true IT professional from the IT operator who simply pushes buttons and hopes for the best.