Thursday, July 23, 2015

4.42. Fear of the Unknown

LinkedOut

Neglected software teetered precariously like a Jenga tower, each brick an absurd joke played on the company. Dunning-Kruger was alive and well, running amok behind the corporate curtain. There was no excuse. You didn't even have to hit Barnes & Nobles up for a book. The power of Google was at your fingertips. Everybody needs to start somewhere, but the point is to move onward and upward. Each line of code I read caused me to question humanity. Where was the pride? Where was the motivation to improve? To grow? To arrive at a place slightly less shitty than yesterday? It sickened me how some programmers treated their job as menial labor. You're creating something. Put some effort into it.

One of my first repairs required little more than what it took to install a WoW addon. Examining the code around a malfunctioning search field, I noticed its library was severely out of date. The last time a human being had put eyes on it was early 2008. It was like trying to get CT_RAID to work in Cataclysm, then realizing the addon hadn't been updated since The Burning Crusade.

All hail jQuery, a JavaScript library leveraged by web developers around the globe. Competent web developers. jQuery did the heavy lifting. It masked the complexities of browser incompatibilities so that a developer could focus on getting things done. When you hear the expression "Work smarter, not harder", but aren't exactly sure how to do that, jQuery is a fine tool to have in your belt.

It took five minutes to download the latest version, drop it in place, and change a few calls around the search field. Just a little effort. That's all. Was that so hard?

A normal person might sit back and bask in the glory of their cleverness, but I couldn't leave it alone. When someone's boneheaded move nearly kills you on the freeway, a rage begins to seep through every muscle that grips the steering wheel. Suddenly, you are compelled to pass the offender. You have to see their face, to see what kind of imbecile they would have to be. You have to give them "the look". I hate you.

I had to see the face of the person who left this code in a state of disarray.

This person, who we'll call The Brosef, was no longer around. It required little detective work to figure out who he was; his pathetic few code comments were initialized, leaving a breadcrumb fail trail. Cross-referencing with a few folks around the office confirmed The Brosef's identity, and within minutes, googling led me to LinkedIn. Seeing his face didn't help, and seeing his activity on the social network only made things worse.

There he was, actively participating in answering programming questions from the community. Only they weren't "answers", so much as they were complete and utter bullshit. Unlike Stack Overflow, where your accuracy is vetted by anonymous peers, LinkedIn provides no such mechanism. You can be as right or as wrong as you wish, and nobody knows the wiser. The people that "vet" you on LinkedIn are the professionals that know you personally, that have worked with you, the sorts of folk whose names appear under the "References" section of your resume. Having a network of professional references is an excellent way to help nail that interview shut, but it's not how you gauge authenticity of someone's skills. When it comes time to answer a skill-testing question, are you going to have your ex-boss come in and take the test for you?

I scanned The Brosef's posts until I couldn't take it anymore. Either wrong or contradictory, his answers infuriated me, until all I could do was just stare at his profile photo in abject disgust. Staring back, with his too cool-for-school sunglasses and smirk of proud accomplishment, his photo seemed to say, "Yo. Looking for a new programmer? Hey...your search is over."

Just like your career.




Talking Tech

Soot stormed down a hallway that had been carved out of the ocean floor, charging the Faceless Watcher, his death and decay rippling and boiling in a familiar circular pattern under their feet. I kept my distance, lighting the mobs up from afar with Syrophenikan's Multi-shot.

"So, Soot...I hear you're like my alter ego, but in the .NET world."

"Yeah, that's right. What's yours again? ColdFusion, right?"

"Allegedly."

"Heh," he paused between pulls, "Yep, web dev is my game. For quite a few years now. Well, these days it's really more about architecture and specs than actually coding."

"I see," purposefully changing my tone to exaggerated disgust, "so you've become one of those people."

Soot laughed, "Management is not all that bad. I mean, think about what you do now, you're coding off of a blueprint that you write…"

"...that you never end up writing," I said. The wicked problem. Software development demands well-defined rules before you sit down to type the first line of code. Yet, few developers actually end up writing specs. They're boring. They're inaccurate. Nobody reads them. It makes people in suits feel good because they like to see a plan; ask any programmer how much they love to bend over backwards for incomprehensible corporate demands. Nerds just want to be left alone to code.

Of course, these are all excuses for the real answer: many programmers don't know how to write specs.

"The old joke, yeah," Soot agreed, "Well, when you have a staff of offshore developers, you have to write the blueprint. It's a non-negotiable. And I'll agree it may not be as exciting as writing the actual code, but you're still in charge of how it all comes together. You're still designing. You're calling the shots. But without all the stress of late night and weekend bug fixes."

I'll admit, it had a certain appeal to it. Briefly.

"I dunno, chief. I don't think I could trust other developers to do it correctly." I spasmed, flashing back to the audacity earlier in the work day, "It feels like senior level folks are consistently doing junior level shit. Take today, for example. Some rook left a jQuery library outdated for years on this one search field. Seriously! How hard is it to fold library updates into your build process?"

"Ah, I love jQuery," Soot said, "makes things so much easier."

Just then, Lexxii's voice piped up in Vent.

"I dont' use jQuery at work. I really don't like it at all."

I'd completely forgotten that Lexxii was also a web developer. I hadn't really discussed work topics with her in the past, so this was a first.

"Why?" I asked, taken aback, "jQuery is industry-known and tested. At the very least, you gain maintainability through it. Other devs know it, they can come in and pick up where you left off."

Soot politely played devil's advocate, "There are some other solid libraries out there. What's your preference?"

"None. I don't use any libraries. I write all my script from the ground up."

What.

"Hold up. You don't use any library? You write everything from scratch?"

"Yup. All the time."

Soot and I stayed quiet a moment, waiting to see how Lexxii would justify so much extra work. What insight would we glean from her revelation that the developers of 7 million other websites hadn't collectively figured out?

"When I write it by hand, it's way faster."

"...what is? You mean the code executes faster in the browser?"

"No, I mean I write it faster. Faster and easier to write."

Soot said nothing. I stared at the screen a moment in stunned silence.

You know, you could probably build a house faster, too, if you didn't use any concrete, insulation, nails, roofing materials, tile, cabling or plumbing...and just leaned a bunch of boards against one another. Like a rook.

Off and into the dark recesses of my mind stretched an unending series of red flags into forever, flapping violently, harbingers of the forthcoming disaster.

The Grand Ol' Sharpshooters of Texas

You choose people to take care of matters you're unable to. I knew my strengths weren't in raid leading, which is why I put Blain in charge of PvE strategy. I couldn't be in all places at all times, which is why I had role officers. My perfect choice for each promotion was someone whose knowledge surpasses mine in the given area; I don't want to tell them what to do, I want them to tell me what we should do.

In that decision making comes a risk: you don't know what you don't know. You could be putting someone in charge that seems like they're an expert. Beware the illusion of manufactured proficiency, residue from the Halo Effect. Your expert may seem like the sharpest of shooters, when in fact, it is you simply painting a target around the most convenient bullet holes.

DoD rode a successful wave of recruitment during ICC, snapping up names like Lexxii and Bullshark, players that topped meters on day one...and stayed there. Fast-tracking them to Elite served two purposes: it acknowledged their exceptional play and sent a message to core: this is the kind of competitive play you need to aspire to. But the Halo Effect clasped its golden grip around me, manipulating my emotions and decision-making. It led me to believe things that weren't proven, that perhaps a player like Lexxii was a profoundly awesome player and healer, and that her successes weren't simply the result of riding the coat tails of her former guild. That she was an expert player because of her skills, not despite them.

The evidence of a freshly painted target dripped its red-and-white evidence over every early decision I made regarding Lexxii. I picked her for healing officer not because I was convinced of her ability, but was unconvinced of Fred's. Fred struggled with healing and survivability; to Lexxii, it came instinctively. Yet, I was having a difficult time pinpointing in my mind an exact instance where Fred had died in an amateurish move. By contrast, Lexxii had been dying a lot in these first few months of Cataclysm raiding.

And how closely had I ever examined those meters? Lexxii preferred Holy, choosing Disc only at particular moments near the end of Heroic 25-Man ICC. I hadn't boned up on specs, since ironically, this was what I put her in charge of. But in my brief research of 4.1 Priest theorycrafting, Disc was dominating. That wasn't to say holy priests were bad, but in order to pull holy off, you had to be good. No coat tail riding allowed.

Some saw through the facade early on. But as luck would have it, the types of people complaining the most about Lexxii were the sort of people whose opinions deserved to be ignored. If naysayers wanted to choose the cynical route, they were free to. In my mind, Lexxii earned the chance to prove them wrong, to prove she was competent.

Competency, however, is not enough of a qualifying factor for leadership. It's barely enough to put you in the running.

---

Neps filled in the blanks, pointing out how effectively I'd painted the target around Lexxii.

"We've chatted a few times. It's not great," he said, referring to her spec. Neps always tried to be polite when discussing the captain of a failboat. I listened as Neps picked apart her spec, talent by talent.

"And you've recommended these changes to her?"

"Yep. She doesn't seem that interested in changing."

"She give you a legitimate reason why not?"

"She gave reasons. I don't know that I'd call them 'legitimate'."

I took a deep breath, that one you take when you come to the realization you've made a bad judgement call, "What's your take?"

Neps thought a moment, then spoke, "I don't think she's comfortable trying anything new."

Thursday, July 9, 2015

4.41. We Run S#!t

"Blizzcon Sketchbook: At Least, In Theory",
Artwork by Mike Krahulik
Copyright © 2005 Penny Arcade, Inc.

Reboot

"He can be...difficult...to work with."

"He can be pretty demanding."

"He overwhelms you."

I sat in a conference room small enough to double as a broom closet. It was barren and white. Dry board eraser chemicals hung in the air, burned under florescent bulbs. An easel pad of blank paper stared back from the corner of the room closest to the door. Outside, I heard the faint rattle of mechanical keyboards.

Blue, black, and yellow cables snaked down through the base of the conference room table, burrowing into network jacks and power strips. I clasped my hands on the table, then decided to fidget with a pen, only to put the pen down moments later. I stroked my chin, took a deep breath. Where's that damn coffee? I caught myself tapping my foot, and stopped.

He overwhelms you.

I recited these opinions, judgments barely two weeks old, and braced for the door to burst open.

A notepad next to the laptop bore the letterhead of the healthcare company I now served. Three painfully long interviews later, I made the cut. Or rather, I cut it pretty damn close. Three months had passed since packing boxes of computer equipment out of my old job's network room and into the trunk of the Civic. Contract agency jobs filled the gap while I pounded the pavement, leading me to this temporary solitary confinement. Attuned to explosions, dragons bellowing, and drama forever unfolding, the silence of this room rang in my ears.

My first assignment: assess the situation with a "Bio-medical Administration Repair Tracking" app. Fixing bugs and coding features dominated my career for fourteen years. My attention should have been focused on the tech. What's the language? Who built it? What's failing? But as I sat alone in the conference room, my mind drifted back to the judgments. The concern. What was it about this guy that left so many people uneasy? Before knowing anything else, how dire or trivial the actual situation may have been, I couldn't help but feel like an analysis of the app was ancillary. This was about rebuilding a relationship.

The first face through the door was Fred. He was slightly taller and had a few years on me, his dark hair receding in middle age. A scan of his business casual attire put my mind at ease. I tend to feel overdressed, even when actively choosing to do so, no doubt the result of my last boss's advice: "Dress better than everyone around you." I'd met Fred only once before, when the company flew me out to El Segundo for orientation. From that introduction, I knew he was a family man, had kids of his own, and coached them in little league. I also picked up on his distaste for some of the other parents involved, and that the stresses of work, life, and coaching little league were vented through a habit of chewing tobacco.

Everybody's got a vice.

Fred smiled, greeted me, then shifted to the side in the doorway of our less-than-spacious morning accommodations.

"Hey, good to see you again! I'd like you to meet Arch."

Arch was even taller than Fred, a large man in his early to mid-fifties. His grayish silver hair was longer and swept back, and his mustache instantly reminded me of Sam Elliot. He had a wide smile, was dressed more casually than Fred and I, and when he stretched out his hand to greet me, his grip was like an iron vice.

"Shawn. Pleasure to meet you. Sorry I missed our first opportunity back in Cali. Last minute flights and meetings have a way of messing up my schedule."

His voice was deep and deliberate, filling the room as a subwoofer might. Arch's casual speaking tone wasn't unlike that of a military commander. A direct order felt imminent. Fred was already sitting at the conference table, setting up his laptop in what could be described as a subdued panic.

I don't get it. No negative vibes. None at all.

"No worries, Arch, Ted gave me a great overview. I have the gist. I'm ready for every last detail."

Arch smiled at the sound of Ted's name, "He says you're the right man for the job."

The same El Segundo trip also introduced me to Arch's superior, Ted. I got a vibe that theirs was more of a working partnership than a commander / subordinate relationship. Perhaps the further up you go, the more these lines blurred, I pondered. Not unlike a guild leader and a raid leader. In Cali, I'd given Ted all that I could, selling it just as hard as when I was being interviewed. I fought technological fires.

"I'm up for the challenge. Give me everything you've got on this app."

Still not getting any weird vibes. Not entirely sure what everybody was freaked out about.

Arch took a blue marker in his hand, and opted for the paper easel. Just before taking off the cap, he turned to face me, then froze in position a brief moment. His eyes darted to the side of the room.

"Ready, Fred?"

Fred pounded a number of keys on his laptop. "Uhh...one more second...yes. Ready."

The Chocolate Factory

Just as server blades in server rooms power Azeroth from many remote locations around the country, medical equipment powers the healthcare industry. And, just like those server blades, which need the constant attention of system and network engineers to ensure they are running smoothly, the hundreds of thousands of medical devices scattered across the nation must be inspected, maintained, and repaired and replaced, if necessary. No server blades, no Azeroth. No medical equipment...no us.

It falls to a team of men and women in nearly every state in the country, charged with daily quests, to determine what gets serviced and where. These bio-medical repair technicians log in to an online system, which presents them with a list of possible tasks to choose from, based on their position in the world. Then, task by task, they travel to various locations, inspect the equipment, solve the puzzle, and move on to their next location.

Arch was to this repair system, as the game designers were to Azeroth.

The easel paper filled with shapes, arrows, and labels, as Arch pulled back the curtain and painted an intricate picture of the system's many moving parts. Each time he filled a page, he paused a moment for Fred to catch up, then flipped the paper over, filling the next page anew. At each pause, I gestured to him with a nod. I'm good. Keeping going. I'm eating this up. Some kids are content fixing their gaze on row upon row of candy, but a select few of us cherished the thrill of learning secrets of its manufacture -- getting a tour through the machinery, seeing how that wonderful candy gets made, wanting to duplicate it, to master it. Improve it.

Trade secrets rapidly unfolded amid Arch's hand gestures. Often, he'd stop drawing on the easel, choosing instead to diagram in the air, pointing to invisible buttons, levers, and dials as if the entire contraption sat in the room with us. And throughout the presentation, I noted each time his voice rose and his eyes narrowed, speaking of issues that frustrated his team -- problems he wanted solved. While Fred frantically typed up notes, I'd push Arch. Why this direction? Did this choice make sense? Are we going mobile? Every answer got right to the point. No bullshit. No politics. This is how it is.

By the time Arch was finished, nearly two full hours had elapsed, and the system was imprinted in my mind. I began to see all the moving parts, each interface, each screen, each button. Most importantly, I saw Arch's team interacting with it on a daily basis. I saw what was working for them and what made their jobs miserable, and was already formulating a plan for what needed to be fixed first, second, third, fourth...

...yet, still there were no uncomfortable vibes. Not a single red flag in the room.

"We might as well do lunch," Fred tapped his wrist-watch, "I think Yard House is in order."

A sports bar. Brilliant. You can be sure to dazzle them with your infinite knowledge of professional football.

"Done," Arch said, "gives me an opportunity." He discreetly tapped his pocket. Fred nodded.

"I'll join you," I said.

"Oh! You…?" Arch asked, stopping short of actually mentioning the C word, as if the very mention of cigarettes might trigger a team of SWAT to burst through windows and drag us from the premises.

"Socially," I said, "but really, it's just an excuse to keep the questions coming."

Yard House at Colorado Mills, Lakewood, Colorado

When the Dam Breaks

The Yard House lot was unusually packed, forcing us to park away from the restaurant. As we walked the extra distance, I pried further, trying to get to the bottom of "the mystery".

"So, Arch, what do you like to do in your spare time?"

"I like a good motorcycle. Have a fine appreciation for a well-manufactured hog. I also collect exotic birds. Wife and I have a number of 'em. And I have been known to spend my down time gambling, though I really need to keep that in check. It's fun, but it has a way of emptying your wallet."

"Everyone's gotta have a vice."

The restaurant was packed. Narrow, taller tables were jammed together on the checked floor, circling the bar in the center of the room. Above the heads of the various bartenders, glasses hung upside down, glowing with a faint blue light that came from under a visor-like hood. At various spots among the glasses, TV screens were affixed. We were seated in one of the booths along the main dining area's extremities, remaining within eyeshot of the various screens depicting baseball, basketball, football, and so on.

Immediately after being seated, Arch excused himself to the boy's room. I sat in the booth across from Fred. After the waitress left to bring drinks, Fred checked in.

"Well?" he asked, raising his eyebrows, "pretty intense?"

Intense? Sure. Difficult? Demanding? Overwhelming? I don't see it.

I offered up my 2 cents. "He cares about the app. Honestly, it's refreshing to see a stakeholder really own their stuff. Y'know? I mean, really want it to work well. Trust me: you don't want apathy from whomever runs the show."

Fred nodded in agreement, and glanced over at the myriad of screens. ESPN logos flashed, sandwiched between shots of baseball players blasting home runs into bleachers. Moments later, Arch returned. He took a seat in the booth opposite me, as Fred slid toward the wall to make room.

Arch placed his hands on the table, palms down, and looked directly at me.

"How much do you remember?"

I winked and tapped my temple, "Oh, I got it all safely up here."

"Good man," he said, glancing at the monitors, with their flashing sports logos and Gatorade sponsorships. Just then, the screen near us went dark. In the place of stat sheets and rotating profiles of athletes, a scene faded in revealing a surreal series of events.

Military helicopters flew over a war torn landscape. Soldiers began to emerge from the rubble. Wait. Not soldiers. Civilians. A woman in a business suit lifted an automatic rifle, firing it into the windows of a burning building. Schoolkids fired shotgun blasts at a doorway, while a man in a hospital scrubs tossed a grenade through the fragments. A construction worker unleashed a stream of bullets from a side-mounted chaingun hanging out of the exposed door of a helicopter, only to be taken out by a surface-to-air missile directed into the craft's tail. As the camera panned out, fiery explosions bordered the screen, framing a single message: "There's a soldier in all of us". Then, the final image changed to a game box cover. Call of Duty: Black Ops.

Arch turned back from the screen.

"Shawn. I have a confession to make. I have another vice I haven't mentioned."

I sat up. For a moment, I thought I caught a glimpse of Fred wincing, as if preparing for the hit.

"I like to play video games. A lot. Some console stuff, but mostly computer games. One computer game in particular, as a matter of fact. You may have heard of it…"

Well, well, well. Everything makes a bit more sense, now, doesn't it?

The dam burst forth. Poor Fred succumbed to the waves of geekdom pouring out of both Arch and I. What do you play? Priest! Paladin! What's your spec? Disc! Holy! Opinions? Wrath of the Lich King. 10s? 25s? Both! PvP? Arenas! 2v2! Unbalanced! Play the Auction House? Corner the market! Gold on multiple accounts! Dominate the server! What about you? Shaman! Shadow Priest! Death Knight! Raiding? Guild Leader! Since when? Vanilla! Old School Raids? Hard as hell. Loved it. Illidan? Archimonde? Vashj? Kael'thas? What do you like now? Ulduar! So great. Icecrown? Awesome.

Horde or Alliance?

HORDE.

The conversation felt like it would never end. We shared tales of each other's experiences in Azeroth. Every so often, I stole a quick glance at Fred, and watched as his eyes glazed over.

---

As I steered the Civic through rush hour at the end of the day, I found myself behind a school bus full of kids. The kids at the back of the bus peered out at me, their thick-rimmed glasses and anime-themed shirts continued the time-honored tradition of stuffing the nerds in the back of the bus. Too much to handle, to difficult to deal with. Too overwhelming. They appeared excited at seeing me, a stranger, perhaps in their own revelation that I might, in fact, be one of them, with my own thick-rimmed glasses.

I remembered a Penny-Arcade strip from years earlier, the one where Gabe and Tycho return to their high school to lecture the next generation of nerds. I pointed to the kids at the back of the bus, then myself, then mouthed the punch line of that comic strip.

We Run Shit.

The bus pulled away, and I watched as the kids in the back of the bus lost their minds, screaming and high-fiving one another into oblivion.