Sunday, January 01, 2017

Twice Warmed

Good Lord.

2016 is finally over, and while everyone is sick of "OMG-2016-is-the-worst" comments - it's hard to get past what a crap year it has been.

The GOP selected a narcissistic con man as their nominee, the nation voted for Hillary, and the de-facto gerrymandering of the electoral college selected Trump as our next president. Which is not to say the victory is illegitimate, it is just the exclamation point following the phrase "the Electoral College is a f*&king mess." A margin of less than 100,000 in 5 states is enough to give the election to a candidate who lost the popular vote by just under three million votes.

But you knew that already.

The GOP will get rewarded for sitting on their hands while Scalia's seat went unfilled. An absolute disgrace from any angle - and the incoming president will have the ability to fill up their cabinet and the lower federal bench free of any filibuster. Great job, everyone.

And the tweeter in chief regularly trolls the planet with some new act of foolishness, sent from their smartphone.

It just makes you ill.

And - to read the headlines - pretty much every celebrity died in 2016. I was surprised how affected I was by the death of Carrie Fisher. That just got to me as so unfair, she was roaring into her own - fearlessly giving the finger to pretty much anyone she wanted.

And Pulse, and the Bastile Day attack, and...

Jesus, what the hell, anyway?

Work flattened me the past few months. Product Actual is on the hook for a great many things, and they are watching the sand run out of the glass. I'd been struggling to get my Ru beta participants to validate the data - and not having much luck.

Literally the last day before Christmas break, Hockey1 and I discovered multiple issues with the Ru datasets. We will have 1 week to define the problem for development and dev will have one week to fix it, or we will miss the release window. I went out the door scheduling meetings for Data and Thespian on the day we all get back - like we'll remember who we are after vacation...

Ugh.

But soaking up vacation has been good. Mom came up, stayed with Jen up until Christmas, then was with us until New Year's Eve. E's sister and her husband came to stay with us for a few glorious days. After the rush of Christmas, we all had some quality hang out time. I whipped through the first four books of The Expanse, and forgot what day it was. A lot of good food was made and consumed, the dog was loving the company.

Good times.

New Year's Eve - the boy has exhausted his video game eyes and wants to have a friend over - I'm dropping Mom off at the airport, E's sister and her husband are heading home, and the furnace is cycling oddly in the morning.

I go down to look at the furnace, but really - what the hell am I even looking for? Nevermind what I would be able to do if I saw something. It passes, and the day goes on. Mom's off to Charlotte, E and the dog are off to scent training, and little e is off to an overnight.

The boy and his bud play a cool evolution game that we keep getting the rules wrong for - but ultimately have a good time. The Boy hammers us using a rule we got wrong, then we set up a replay with the correct rule and he buries us all yet again. I'm a bit glad to see him displaying some tactical aptitude, but sad to see his friend get crushed at their new game.

Mid game, there's a clunk and a sizzle and suddenly the house smells of ozone.

This, I know immediately, is not a good thing. But again, rushing downstairs just confirms that the parts of the furnace that make one kind of noise (the burners) are noising along properly - and the parts that make the other kind of noise (the blower) are not.

Watching the thermostat on the Nest, it is telling me that the temp is set to 68 and the measured temp in the room is 70 - which is utter bullsh!t. I have two other thermometers within three feet of the nest and both are reading 64. Twenty minutes later, the Nest is telling me the room is 71 degrees.

It is absolutely not that temperature.

I hit the kill switch on the furnace, wait a few minutes, then power it up again. Then I restart the Nest. When it comes back, it has regained its sanity and now is telling me the house is at 64 degrees. Better, but the furnace still isn't doing anything about that.

The boy's friend heads home and we get ourselves set for bed. I consider calling an HVAC pro, but

-it's New Year's Effing Eve...

It's 21 degrees out, the house will hold heat until the morning, and there's no way on earth this gets better tonight.

Also, I'm getting a sore throat. Nice.

I get into bed and tell the Nest to just run the fan. The Nest shows it's trying, but absolutely nothing happens. We're hosed.

In the morning, I'm full blown sick, and the house is at 61 degrees. I test dialing the Nest up to 68 and watch the controls respond, I can hear the furnace burn - but no air is moving.

Time to bite the bullet.

I call an HVAC service. On New Year's Day. The answering service takes my number, and tells me a technician will call me.

An hour later, they do. They take the usual steps to inform me that I've asked for service during a holiday that is also a Sunday, so I've pretty much boned myself every way I can. Surcharge on the base fee, and any work is at a 25% higher rate.

Awesome.

I tell the guy to come anyway, because I figure if this requires ordering a part, I want to start the order today, not two days from now when the holiday and its Monday alternate are past.

HVAC dude shows up, is brusque, and announces that my furnace is full of "all the wrong parts."
I remember having it serviced by our remodelers who shorted it out and had to fix it - I would believe they totally screwed up-

"You see, all these parts are for a two stage furnace, and this here," HVAC guy pats my dead furnace "is a single stage furnace, pure and simple."

HVAC guy is wrong. First thing we had done on the house after we moved in was to replace the motor on the furnace because it wasn't shifting from stage one to stage two. I know this.

I say this.

HVAC guy is all, "Oh, now I see the [floonium particle/tachyon particle] that means its a two stage."

Which now has me full of confidence in this man, but I afford them the respect of a professional. "I'll get out of your way, let me know if you need anything."

Ten minutes later, HVAC guy comes up and (I swear, I could hear this speech in my mind before they said it). "You need a new blower, but I don't have it on my truck. I could see if we could get it, but it won't be before Thursday, on account of tomorrow being the observed holiday. Cost is about a thousand bucks, and we're at the point where you might prefer to put that thousand towards a new furnace."

Which would run..?

"About $3,500 installed. I could have a sales person here later today to discuss the details. We might have you up and running in a day or two. I can get you some space heaters."

And at this point, I've had it with HVAC guy. He might be a pro, and he's right that my furnace is old, and I should consider replacing it - but it's a 95 percent efficient furnace with a broken part. I am not jumping into the $3,500 pool today, even if he's right.

I tell him I need to sort out what I want to do with E, and he whips out his paperwork and charges me $170. I pay and sign and he's gone before I realize that he's given me a quote for the repairs, but I don't know if he's checking to see when they could get this part. And other than "Blower" I have no detail on what part is needed. Is it the motor, the module, the fan? All of it?

I call the company back and ask them to check on both of those details: when they can have the part, and what part it is. Unlikely that anyone else local would have the part, but I'd like to have the option to ask other providers. I've paid my money, I'd like to get something tangible other than a bill.

They never call back.

So, I go out back, haul in the old board from E's old flower beds - and saw each in half. E's going to get little E back from her overnight, I ask her to hit any store that is open from some firewood.

And then we fire up the wood stove.

Twenty one degrees in the morning, but its warming a bit. House is just under sixty. A few minutes later, we have a roaring fire. Hour after that, the family room is 68 degrees.

Hour after that, the first floor is 68 degrees.

It ain't great, but its doable. We'll hang in until we have better HVAC choices, and until we get a shot at the repair - but we will go primitive if we have to. We are not smoke jumping into $3,500 worth of anything. Wood is cheap.

Always liked that stove anyway. There's something about making a fire, keeping it going.

So, 2016 sucked, and it's last stab at me has me gunk-sick and wrung out, pitching logs through the side door of a wood stove to heat the house...

Over the stove door, there is a single word:


Yeah.

The past year was a sh!tshow...but it's over. And the pouting time is over, too.

Sh!t's gotta get done.

Sunday, October 09, 2016

Of Trump, Locker Rooms, and Woulds vs Haves

In the wake of Trump's Access Hollywood video, I've been trying to figure out which of Trump's defenders are more ridiculous: those who say Trump's comments are indefensible but still support him, or those who maintain his comments are no big deal.

The Giuliani vs the Walsh:
Which is worse?

 This idiot
- [Sexual assault] is what he's talking about... and ...men at times talk like that:

 ...or this idiot:

Both of these fools are leaning on two flavors of misdirection: dirty talk (Hey, stop being such a prude!) and the locker room argument (Hey, when a bunch of guys get together, they sometimes sexually objectify women).

Both of these are complete and utter bullshit. First off, as has been pointed out by wiser folks than myself, Trump could have used purely medical terms to describe the anatomies he was violating and it would change nothing about the central offenses he is admitting. Namely, he has - repeatedly - made sexual contact with women without their consent. Moreover, he asserts that his fame allows him to do this without suffering consequences.

And, lest there be any confusion about his mental state over this conduct, "and when you're a star, they let you do it" tells you he knows this conduct is wrong, but he can get away with it.

You can do anything.

It's the locker room/guy talk argument that is truly offensive, though. And this isn't the "not all men" outrage of Chuck Todd or other self serving hogwash. Engaging with this argument on that level is accepting the misdirection that is its central goal.

The takedown it deserves (at least) is to point out the two key differences between the kind of locker room banter Trump wants to hide behind, and what he was actually doing.

Let's take an example of locker room banter and compare it with Trump, shall we? Say a group of guys who know each other are using crass language to talk about women they know/have heard of. Man, did you see Alycia in homeroom today? She is fine... I would so want to get into that. 

The first key difference is one of familiarity - and this is clearly the lesser point to be made, but I think it matters. It is one thing to bring up sexual topics with a group of men you know and hang out with on a regular basis - and the fact that they are friends doesn't absolve them of bad behavior. But in Trump's case he is not meeting up with some of his buddies from the club and talking smack - he is not tight with Billy Bush - the guy's a freaking talk show host, and most of the people on the bus are going to be strangers to him. Trump is not wandering into lewd topics with a group of friends, he is introducing himself to a group of people he does not know as - "This is what you should know about me."

He is boasting in front of an audience, because he believes what he's saying will impress them. I've been in many social situations where guys new to a group feel like they need to advertise their heterosexuality by launching into crass talk - FYI, I'm straight, just so you know - but Trump is way past that. Most insecure hetero guys will fly the flag once and move on. No, Trump wants to earn the admiration of his new social circle, and he's convinced that lengthy discussions of sexual conquest and his impunity is the way to do it.

But the capstone to the awful is the item central to all the outrage - and rightly so. Trump is voluntarily describing things he claims to have actually done. I've assaulted women - and I get away with it. That is horrid beyond description and a universe apart from the "I would..." or "If I could.." locker room bullsh!t of your garden variety male. Trump is saying "I have done this..." and no amount of pretend is going to make that the same as some jackoff at the club rhapsodizing about how the waitress had a nice butt.

This admission - this boast - about actual behavior is what separates Trump's transgression from anything else in the news cycle.  He did this, he's freaking proud of it, and he wants these guys to know it, so they are impressed by how he can do bad things and get away with it.

That is who the GOP is running for president - in his unvarnished glory.

And no, Donald, you cannot apologize "if people were offended," you f*cking monster.  YOU CANNOT APOLOGIZE FOR OUR REACTIONS TO HOW HORRIBLE YOU ARE. You can only apologize for what you've done and said. If you had any humanity, you've have conceded the race already - but we know that's never going to happen.

The die hards in Trumpworld are trying mightily to minimize and distract - but there is just no way to avoid the cold truth: in 2005, Donald Trump told us exactly who he was.

This election cannot punish him or his defenders enough.

Monday, August 15, 2016

(Name) [x] Inactive

Just keep telling yourself, you get to see whales...

I'm neck deep in a government spreadsheet from hell. A regulatory data barf, courtesy of one of the brighter corners in our bureaucracy. NerdHaven's app has to be in synch with the valueset in one of this spreadsheet's many worksheets.

The spreadsheet details how our 2000 plus data elements have changed this year. Each element has four values, each could have changed. Some elements have ALL four of their values change.

Also, the spreadsheet does not separate the old values and the new values. If a field has changed from
Old Foo
to
New Foo
the value's cell is written as
Old New Foo
Which makes me want to stab someone.

Oh, and there's no primary key. Because: of course.

Some elements are being replaced by new elements that are being added this year. And they are adding over 1,400 elements this year. It is my job to detail all the field changes for the devs, spell out the 1,400 new values (and look up an additional value from outside references so these new values won't break our other features that rely on this fifth field), list the elements that will be made inactive, and list which inactive elements will be replaced by other elements.

It is soul crushing work. A person with better programming chops would probably be able to slice and dice the file better than I did.  Faster. I do all the Excel-fu I can think of and it takes me almost two weeks. I don't know how the QA effort will start, and I already feel sorry for whoever pulls QA duty on this gig.

*     *     *

Whales... think about the whales...

*     *     *

I'm getting this work done in support of a feature called RuRa. Well, actually just the Ra portion of RuRa. Sprint's been working the Ru portion and has been wading through all kinds of data hell to build the feature in compliance with what the government demands. NerdHaven's app aggregates data from clients and gives it back in useful ways. Since client data varies (sometimes dramatically) building features with hard data requirements is...challenging.

Sprint has been getting it done. They work with Data in our west coast office, and Data is borderline OCD when it comes to getting the business intelligence right. Together with Pirate & Thespian, Sprint was well positioned to land this beast.

But I can tell Sprint has hated most of the project. Gumby has been hands off in the past, but deadlines are approaching and they cannot help themselves. Weekly checkins, over the shoulder advice, and lots of emails ending with "Thoughts?" I think Gumby had made a deliberate effort to back off at the beginning. Sprint has a reputation for efficiency and professionalism, I know Gumby had wanted to respect that. But where Sprint is known for being fiercely independent, Gumby is positively clingy.

It is a bad mix.

Sprint chafes under Gumby's endless questions and meddling - Gumby is irritated by the feeling of being left out of the loop. When Gumby is called to account by higher ups (the thing Gumby fears above all) they don't have the answers. Each complains to me about the other, and while I sympathize with both - my head is with Sprint. Gumby has stayed away for too long and is overcorrecting.

Talking with Gumby, I am struck by how little they know about the Ru project. They are the Project Manager and design elements I've known about for months are new information to them. I have spent very little time with Sprint about Ru, because very little of it affects my Ra project - but by simple osmosis, I've managed to keep current. Gumby? They know the regulations, but not the design. Which gives them enough information to drive Sprint up a wall with "What about this?" questions, week after week.

With most of the Ru feature built, Sprint is spooling up to put the feature into Beta. I'm head down on Ra and its looming deadlines when I start getting invited to Ru beta sessions. On these, I'm absolutely clueless. I don't know the setup requirements or the goals for the session. I wanted to be a fly on the wall for these - and I'm glad Sprint's invited me - so I can watch the Ru feature in action. It has nearly identical UI to Ra, so lessons learned in the Ru Beta will help my design work.

Which is why it seems odd that I get an invite from a rep to participate in an Ru beta session with Gumby. Sprint is not in the invite. Which I think nothing of, because Sprint is absolutely going to be there, it's their project. But I replay to the rep and say "Sprint's driving the bus on this," basically to say 'hey, don't expect me to do much in this one, I'm an observer."

But later, I'm on IM with Sprint and find out that no, in fact, Sprint has not been invited into the Ru beta. Which makes absolutely no sense. I forward my invite to Sprint and ask Gumby about it. It ends up with Sprint being invited and running the session, but something was seriously odd.

Shortly after that I was in a meeting with Gumby where I was asked about taking a larger role in the Ru betas. Which I said I was fine with, but made it clear that this was Sprint's show if they wanted it. If Sprint wanted out, I'd be happy to help - but I wasn't going to waltz into their beta uninvited.

This was all kinds of awkward. Gumby used to be my boss, and now they were the project manager for both Sprint's Ru feature and my Ra feature. They do get a say in lots of things that affect these features. but if they want a personnel change, they need to take it up with Product Actual. I don't get a say, hell, Sprint doesn't get a say either. If Product Actual says "you do this work," that's what we do. Gumby asking me to budge into Sprint's beta smells bad. We end the meeting with me reiterating that I'll help Sprint if that's what Sprint wants, but that's about it.

About a week later, Gumby, Sprint and I are in a meeting where Gumby asks the two of us who will be running the Ru betas. I clam up and let Sprint answer, and I get a pointed look from Gumby when I do. Sprint (who I think was surprised by the question) takes a moment to spool up, but answers that they will continue to run the Ru beta. Which is a relief to me. Sprint knows their stuff, and if they wanted out I would worry why.

Sprint was recently given a horrid project I'll call Notables. And if ever there was a project that would make you clear the decks, its this one. Sprint did 20 rounds with it early in their NerdHaven tenure, and any mention of it causes groans from pretty much anyone in the know. Project Actual had asked me to help out on it weeks before, but changed their mind and gave it to Sprint.

While I was genuinely relieved, I was too ignorant about how bad Notables was to appreciate the bullet I'd dodged. Sprint knew better - and I was afraid they would have to bail out of Ru to focus on this new beast. But Sprint was up for Ru and Notables - which meant that they were their old self. Kicking butt and getting it done, challenges be damned.

With the Ru beta thing settled, I tied down the spreadsheet work and beat it to death with a shovel. Then started slogging through the pile of Ra work I'd pretty much been ignoring. This one piece of the project was just a mental block, and I'd been working around the edges for a month. With the spreadsheet work done, suddenly I could find a way through. In about a week, I had the bulk of my Ra work slotted for technical review, the last step before RFD. I was on fire.

*     *     *

A Monday.
I meet TierI (our ace customer rep) in the breakroom to discuss caffeine addiction. Then clock through some shop talk with the devs. I gotta get some input from Red on something and we're in the middle of talking when I get a text.

It's from Product Actual:
Hi. Can you come find me when you have a minute?
Uhhhh...

I must have been in a total fog at the time, because my only thought at the time was, I wonder if they are in the old product office? Product Actual is based out of state an only comes into our office every few weeks ago. When they do, they use the old product office.

See what I mean? A total fog.

Not: Hey, I wonder why Product Actual is town?
Not: The boss is asking to meet with me out of the blue, wonder why?

Nada.

I just marched off towards the old product office.

When they asked me to close the door is when it hit me. Uhhh...

Again, though - the first thing in my head was: I'm betting that the Ra project is getting benched. All that work is going in the crapper.

Product Actual never beats around the bush. One of the things I really like about them. You get the real from Actual.

"This is going to be another one of those bad days."

!!! There is a second to absorb this, and the sinking feeling starts.

"I've had to lay off Gumby. There will be others in this office getting RIFed."

(RIF. Reduction In Force. Yet another acronym for firing people.)

"The west coast office will not have its lease renewed. All the west coast staff will be offered the opportunity to work remotely."

Actual tells me that no one else in UX group is affected. But (per policy) there will be no formal list of those affected.

Yet again, NerdHaven staff will walk the halls trying to figure out who is here and who is gone.

Not at their desk. RIFed? or PTO?

Sprint is safe- and when I get a hold of them they tell me that the west coast office's only QA resource had resigned that morning. The west coast office staff had been savaged in the last RIF, now they were thinned again. Oh, and their office would close in May.

Sprint sounded absolutely gutted.

There's really no way to end those kinds of conversations. We sign off with the obvious promise: Let me know if you hear anything definite.

And then you walk back through the office in slo mo. You want to check in with your favorite people, see if they're okay - but you don't dare linger. HockeyOne isn't at their desk, HockeyTwo was let go in the last bloodletting. No way they got rid of HockeyOne. 

Metrics is not at their desk, but you know they were out on PTO. Right? And just like that, you're unsure again. I try the CorpWorld method from Black Wednesday, but our IT isn't as draconian, so email status is no help. I try IM.

Gumby offline update is the marker for when heads had started to roll. Anyone offline with a similar timestamp is a possibility: a quick scan shows SpecialK, Branding, Cure, and...TierI.

Somehow I know that TierI is on the list, but it is a total shock all the same. TierI was one of the folks who seemed to come with the place. Easygoing with the clients, reasonable, funny...

Can't be.

Data pings me and we compare notes. They know about a person in contracts on the west coast. I tell them about two sales people I've heard of. I don't want to spread rumors, so only the stuff I know gets passed. I'm all but certain about TierI, but I don't say anything - I could be wrong.

*     *     *

Olympus holds an all staff meeting to lay out the situation. One staffer asks the obvious question: Are we going to do this again in the next three months? Olympus says the same thing they said last time: "We don't plan on having to do this again." Which leaves everyone unsatisfied. But really, what can Olympus say? "I swear on a stack of all that is holy that we will not have another RIF this year - unless the situation changes."

*     *     *

The week after, some of the casualties are known.

In our project tracking software, former employees still display on historical documents, but with a suffix indicating their status:
TierI [x] Inactive
Branding [x] Inactive
Epro [x] Inactive
...
SpecialK and the Cure are safe. HockeyOne and Metrics are okay as well. Oh, thank God.

Morale is absolutely in the sh!tter. Everyone is fed up. NerdHaven had just had our company outing (which I'd missed) - which is usually a good time with good food. Not two days after a team building exercise, we do layoffs. Genius, that.

I'm trying to nail down all the work for the Ru project prior to going on vacation. Actual wanted Sprint to focus on Notables, so I was given the remainder of Sprint's Ru and the beta. Sprint was behind it, or at least being a professional about being asked to focus on Notables full time. With Gumby gone, what they'd wanted has come to pass anyway - for totally different reasons. Sprint will ride shotgun until they're sure I'm not going to faceplant - then dive into the unholy mess that is Notables.

The vacation is a hell of a thing - going off to Alaska to see glaciers and whales. Should be freaking awesome - assuming I live long enough to get packed and get my sh!t together enough to leave.

Mom is in town, fretting about all the details and basically taking over all the work E and I are too frazzled to do. I literally don't know how we would have gotten the kids ready to travel without her.

I'm trying to squeeze runs to the store into my newly freed lunch hours when I get what looks like a meeting reminder on my phone. It's a 1:1 with Actual.

Not good.

But then I'm like - Wait, our regular 1:1s keep getting rescheduled. This is just Actual finding a time that works for-

BUZZZZZ!

It's a text. From Sprint.
Hey there 
I'm in the parking lot at Target. Full sun, struggling to see the screen, but I don't need to read it.

Sprint is leaving.

They ask if I've spoken to Actual yet. Which is all but confirmation of...
I just resigned 
I'm in the middle of the street and stand there blocking traffic. Seeing those words means there is no escape. This is happening. The best UXer we have at NerdHaven has finally had it.

I get honked back to reality by some helpful man in a truck. Sprint gave notice, so they'll leave two days after I go out on vacation. They've got every reason to go. They're getting a job at a big firm where UXDir went (but not working for them). Gumby drove Sprint up a wall, a bunch of their friends were let go, then they were given Notables... I mean, if you weren't looking after the layoffs, you'd have to be out of your mind. Sprint hung in longer than most anyone would have.

I say what I can manage, but there's really no way to cover it. Sprint was a class act, the person who made things get done on the west coast - oh, and they were a great person to work with.

How did we get here?

When I joined NerdHaven, UX was eight: UXDir, The Professor, Data, Heater, Noddy, Sprint, Runner and me.

Today, Sprint handed over their meetings in Outlook, so we could keep the same room reservations. One of them was the UX team meeting.

Data still works at NerdHaven, but left the UX group, so here's the invite list:

  • Red
  • Dash
  • murph

*     *     *

So, over a week ago, I found a bug. It's part of an addition to Arwafn that Gumby prioritized to fill dev capacity. It wasn't supposed to be in the release, and now it's blown up into three more bugs two days before a software release. A junior dev screwed the pooch, gave their work to a junior QA who did the same, and now we are faced with the damning choice of rescheduling the release or shipping a broken feature.

I have client meetings to set up for beta - I have to do knowledge transfer to Red re my Ru work in case it comes up while I'm out.

I have no time to give Sprint a proper sendoff, I'm barely packed, my signature project is back in the ditch, and I'm flailing to just get a list of what I need to do before I go. There's no chance it will actually get done - I just need to have some hope of tracking it for when I get back, or if someone has questions while I'm out.

So.
Effing.
Done.

*     *     *

But I'll get to see whales...

Despite having had f*%k all to do with this, they've gotta fix all this.

I hope they are up to it.

Monday, August 08, 2016

Anyone Can Be Replaced

The week after NerdHaven's layoffs, Dragonman met me in the hallway.

"I've got some bad news for you."

Here we go.

He tells me that I'll have to organize next year's charity run. The one Runner had been organizing over the past two years.

I'm relieved, and say so. "I can only handle so much bad news at a time. Doing next year's run? Yeah, I can deal with that."

Dragonman plows ahead with the rest of their news, "-because I've put in my notice. My last day is the 17th."

Dammit, dammit, dammit.

Dragonman is the team lead of the Dragon team. Dragon is kickass in all sorts of ways - more so because they have a great leader.

Dragonman is one of those types of people who transform a workplace. They are extremely competent, whip-smart, and have a great sense of humor. Like Portal, Dragonman excels at cutting through the interpersonal and business bullsh!t to solve problems and get sh!t done.

After recovering from the gutshot, I wish Dragonman well. They are sure to do great wherever they go. They say the recent layoffs had nothing to do with their departure, they were looking for work closer to home - and found something that is practically down the road from their house. Even if the layoffs were a factor in their departure, Dragonman is too much of a pro to pour gas on the fire on the way out.

I will miss them.

NerdHaven will miss them. Nobody is irreplaceable, but trying to list the things Dragonman did for NerdHaven (and did well) is pretty mind boggling. Dragon works on a system that is mission critical for a huge portion of the business... it just...

Ugh.

*     *     *

The next day, I'm in our UX meeting, reflecting on how there used to be seven of us and a director. Now there are three FTEs and a contractor. No UX Director anymore, we report to Product Actual.

Product Actual calls into our meeting from their home office in a neighboring state. Which makes every meeting a virtual conference scramble. This week, Product Actual starts out with some news of the realm: Remote is leaving NerdHaven.

I've said before, Remote is not my favorite person in the company. They are professional, cordial, but I have zero rapport with them and any strategic discussions I've had with them have made it very clear that we are on very different pages.

Remote is openly skeptical of agile methodology. Which is fine, there are lots of shortcomings to being agile - but Remote's solutions to agile's shortcomings terrify me. Remote seems to want us to slouch back to waterfall in all but name. I could be wrong about that, and given their departure, it seems pointless one way or the other.

Remote was the person who called Runner into the room to sack them. Not that they had a choice, but a part of my brain won't let that factoid fade.

And now they are going. Rumor has it they are getting a good VP slot at some company in their state.

Anytime execs leave the building, the brain starts imagining reasons why this is so. Did they jump? or were they pushed? The answers to these are not idle gossip. If they jumped, the logical follow up is: Do they see something that should motivate me to jump? If they were pushed, were they pushed for a reason that is headed my way?

And there is no good way to get that follow up intel. Sprint is better plugged in than I am, and the rumor mills (post meeting) suggest that Remote and Olympus did not see eye to eye.

You don't cross Olympus. Period. Full stop.

Remote was Product Actual's boss, and are not being replaced. In effect, Product Actual is going to cover Remote's role as well. Which means my boss is a bigger deal on paper. In a more practical sense, it's likely Remote's position vanishes in a puff of smoke and our boss now reports directly to Olympus.

Sands are shifting, but it's not clear what is truly going on.

*     *     *

It's last week and I'm on LinkedIn, changing my password in response to yet another OMG breach notice in the press. Honestly, I use it so infrequently, I end up changing my password most times I visit - because I've forgotten what I used last time.

Anyway, once I'm in and making sure I can access LinkedIn via my phone, I get a screen with "You may also know..."

And at the top of the list is Lash.

Lash is one of those people who work in support - I almost never work with them directly, but I see them in the breakroom all the time. They are a laugh, and are good enough to at least smile at my jokes.

I'm surprised I hadn't connected with them on LinkedIn before, and then I notice that their listing at NerdHaven has an end date.

Wh...?

I look at their profile. They're gone. They got laid off on the same day as Runner.

Somehow this is the point where I get really sad. The boss was asking how I was doing, and I've been slogging along, trying to get sh!t done so I don't have to think about it.

Lash got laid off and I didn't even notice. That's just sickening. We were not friends, and barely associates - but they were good people. And they've been gone for weeks.

I remember sitting there at my desk like a zombie for like 10 minutes. My desk - in what we used to call the UX fun house. Now there are three empty desks and me.

*     *     *

I put in my request to move back into the team room with BigDog's crew. There was absolutely no point in sitting on my own anymore. Runner and I had left BigDog's room to get away from Noddy. Noddy was long gone (oh wait, I have an update on that. I'll come back to it), and Dash had bailed out as soon as they realized that they weren't in the same room as their devs.

Dash just does stuff - packed up their machine and just did it. Me? I asked for permission to move and filed the paperwork.

Dash is their own animal these days. They've been pulled into a massive project for a huge client that absolutely must land. They work on their own or with Devil - but the rest of UX (such as it is) almost never sees them. In the current environment, this can't help but cause tension. Which is unfair to Dash, they are a pro - but they are less inclined to push into collaboration with the team - they just want to get things done.

Which is admirable, but when a host of design decisions are being made by one person on their own - the rest of the design team wonders why those choices are in the fast lane to prod, while everyone else's have to run the gauntlet.

And I'm not griping about Dash - I'm griping about divided processes leading to a divided team. One of the chief attractions of my job was collaborative design. Working with smart people makes you better at what you do. Sitting alone at a desk getting swamped by problems is a slow road to ruin.

*     *     *

All of what you've read is over a month old. Dragonman left in May. Things have gone downhill from there.

Last month saw the departures of Pirate and Shake - two incredible developers that seemed more than foundational to the company.

I'm completely unable to express how great Pirate was - so I'm going to give up. Two key features that we've promised to deliver rest on bedrock code written by Pirate. I doubt anyone understood the problems Pirate solved - and to the poor dev who gets asked to follow up on their work....

...Good Effing Luck.


*     *     *

*needle scratching sound*

(Ugh, the dog is going insane. I'll write more in a bit, but suffice it to say, these past two weeks have not improved things.)

Thursday, April 28, 2016

Butchers Bill

The other oddity of any layoff: the one piece of information that everyone desperately wants - who was let go - is pointedly withheld from staff.

On the day of, or perhaps for a day after - this is defensible. Some people have not been contacted - and you don't want to have situations where a person's fate is known to others before they are told. Nobody wants zombies.

But once all of those affected have been told, it would save a lot of time to just get a list out there. If for no other reason, than it will help productivity, since the entire staff won't be hopping around gossiping about "have you heard?" and "Do you know if...?"

It also clears out the misinformation.

Source, as it turns out, was right about most things - but they were wrong about west coast dev. Thespian and Pirate are safe - and thank God. NerdHaven would plow into months worth of relearning if those two weren't around to make sense of our data.

But the west coast QA was all but destroyed. Three out of four of their QAs were cut. Bizzaro, Toad, and BK.

They still lost devs, HellBoy is gone. And ZeDev.

HellBoy I will miss. They had a fantastic logical mind - I gather they were a handful to deal with in person, and there were questions about their code quality. But I always clicked with them. They made sure the feature I asked for was at least as good as I wanted - and frequently made it better.

ZeDev just makes me sad, they were out of the office on PTO - taking care of their kid. Really nice person, quiet. The kind of person who just gets it done without being all in your face like HellBoy.

This side of the wire, BigDog's team lost a dev slot, but it was FNG's slot, who'd already left us for another job. They won't backfill the slot, so Corporate still gets their pound of flesh, but nobody has to get walked out of the building.

Dragon lost Gooner, who I was hugely fond of - they were an encyclopedia of soccer knowledge and very entertaining.

The SMEs lost Ihaq and Balin - that was known.

Hockey2 is gone. The person who said they had better opportunities outside of NerdHaven, but stayed because they liked who they worked with.

Hockey1 is safe - and again, thank God. Nobody knows the plumbing better than they do.

Services lost four folks I don't know terribly well, but this is on top of having two put in their notice a few weeks earlier. I'm guessing those won't backfill, so the load on that group just got a hell of a lot heavier.

And we lost both of our documentation folks. So, software documentation (traditionally terrible) will now stop getting written at all.

All of this will make delivering our work take longer.

And while it is pessimistic to assume that only terrible things can follow, its where NerdHaven is right now. I truly felt we were getting momentum going into this next month - people were excited.

Now morale is in the toilet and will stay there for a month or so.

We gotta claw our way forward and be professionals. And I'm sure we will.

But we're gonna bitch first.

Wednesday, April 27, 2016

A Too-familiar Ritual

"Why does this keep happening?"
-Sisyphus 

Four minutes.

I timed it.

Inadequate.

And immediately after, I'm screwing my guts back together in a conference room - trying to look like a professional.

*     *     *

This morning started out normal, mostly. Crate the dog, corral the kids. Out.

Runner's setting up the gear for a charity run that NerdHaven is participating in. Passing out the swag. I'm opting for the green water bottle right about the time I get a notice on my phone.
Living Room movement.
I have DropCam. The dog is up to something. He's in his crate, so he's probably not up to much, but I check and-

he's not in his crate.

I check the history and see that Mr. Dog tried the side door (which we forgot to latch) and happily escaped into the kitchen. He's probably doing God-knows what kind of damage to the house, right before he leaves an epic steamer on the new couch.

I gotta bug Gumby about something first, but their door is shut. So I get some coffee and head into an in person meeting I have to. Afterwards I'll bop home and work remote until noon. I have a presentation to the SMEs this afternoon and I need to be in the office for the video conf.

I get a desk check with HellBoy over in our west coast office - HellBoy is killing it on a story I wrote for this big feature Sprint's running. HellBoy spots all kinds of issues and (this one time) I actually am ahead of them, since the UX group went over all the crazy edge cases yesterday.

Well, almost all of them, Sprint caught another one this morning, but... anyway. The story is going well. Should go to QA today.

I take my machine and head home to uncover the horrors the dog has inflicted on my home. I don't see him in the window... but-

-he's happily greeting me at the door. I check everywhere, but nothing is ruined. The dog has....been good. I don't know how to express my disbelief of this, but perhaps he was just stunned into inaction by the amount of choices he had.

Which should I destroy first? OOhhh! I can't decide...!

I set up my VPN and go back to virtual work. Right away, I get IM'ed by Source. They want me to call them.

I start explaining why I'm out of the office, and Source laughs.

"Y'know, it's probably a good day to be out of the office. Put your feet up a bit, there's news."

Source is pretty good about knowing things, it's kinda how they got this gig.

"There's gonna be a team meeting today."

As I have said before, sudden meetings with the boss are never good.

Still, this doesn't have to be bad.

"Remote is in town."

Sh!t.

Remote lives on another plane of corporate existence. Runner's been saying money is tight, lately - so if our corporate masters have deemed it necessary to fly Remote out here, something is about to go down.

"This will be an announcement of a force reduction."

Bad.

"UX will be affected."

Really bad.

"The West Coast dev team is being let go."

Are you F*#k-ing kidding me? We can't lose Pirate and Thespian, that's not possible...! Nobody can do what they do...!

Source backtracks a bit, but repeats that the west coast team is going to be hit hard.

And then they say it "You are safe." The words I've been afraid to ask for.

I am safe. But somebody on UX isn't.

Source has to go, they swear me to secrecy until the appointed hour. I'm supposed to cancel my presentation to the SMEs.

"They won't want to talk to you anyway, their team will be affected, too."

Cripes.

So, now I'm in the know - about something I shouldn't be. I don't know much, so there wouldn't be much point in sharing what I've heard. When it comes to issues like these - only dead certainties count. But you're never allowed to share them.

I don't want to go back to the office. I don't want to face people today.

I go walk the dog to clear my head.

I start thinking about our group. If we're losing someone, there are two main candidates: Red and Gumby.

Red's on a contract and keeps getting jerked around by NerdHaven. They were supposed to make Red an FTE months ago - and pointedly hadn't. Red was starting to get more than a little nervous, but their project work is never ending. If Red goes, a metric sh!t-ton of work will fall on someone. Red's been absolutely great. They've inherited all of Dash's old work and kept up with their original team's work besides.

It will suck if it's Red. They are good people.

Gumby... I admit that's a bit of a long shot. But Gumby was strong-armed out of the UX director job and into Product - where... I don't know. They don't seem to have distinguished themselves. They probably do a lot more than I realize, but my interactions with them have not gotten better since they shifted jobs. Gumby always wants to have more meetings, more discussions - and they never seem to push back against the factional foolishness going on at higher levels. Easy for me to say, I know - but a criticism of Gumby's project always seems to turn into hip shooting a solution to appease the critic. Instead of, "Hey, is this criticism something I should give a sh!t about? No? Then screw it." Or some other, more professional version of that. Just because someone else isn't happy isn't a reason for a complete do-over.

And Gumby does not seem to be making allies with the powerful set at NerdHaven. It's not really a lot to base a theory on, but it's just a feeling.

Source thought Sprint and Data were safe, too. I have to think Dash is, as well. Their project is a colossus and no way they get pulled off it.

I get back and log in. Cancel my SME meeting - and I see that the team meeting is scheduled to start in the next 30 minutes.

!!!

I put the dog back in his crate - making sure to latch both doors, this time - and bolt back to the office. No time for lunch, and no real appetite. I grab a snack at the ground floor cafe and jump into an elevator.

With the meeting starting in the next....geez!...five minutes! People who are getting their notice will probably know by now.

The 'vator opens and I see two co-workers from Service headed towards me. One of them is sobbing, the other is telling them to just breathe. "You're okay, you're okay."

*     *     *

They don't have a box in their hands, but it's full on obvious what is going on. I clear a path and head towards my desk. I see Drool in the hallway, they're looking grim, but they are still here. They have the look of forced stoicism.

Scan fob, duck through the door. I know the bad news a bit early, so I'm going to shut my mouth until the meeting. In four minutes.

I'm almost at my desk and see Runner. They smile.

"Hey, I'm packing up my sh!t"

No.

They're chucking pens and such into a box.

No.

All I can manage is "Whu-?"

No. No. No.

"I got laid off."

Not Runner. 

Runner and I started on the same day. Literally went through all the same sh!t in the rampup. We were joined at the hip on Arwafn. Then Runner became the go-to on two huge internal projects and,

and now?

Runner says Remote was trying to get their attention all morning, so they knew. Walked into Remote's temporary office, saw the two other guys in suits and just said "Gimme my damn folder."

They will get a severance, it's not catastrophic, but I'm just gutted, and Runner's always talking about how they are the stable income in their family. Their spouse has good work, but it's sporadic as hell.

Gumby walks in, they hear the news and are staggered, they hadn't a whiff of this, didn't even know Remote was in town.

Red comes in, they appear to have survived the cut. Which means Runner is the only loss to UX. Runner knows that Ihaq is gone, and Balin is also gone.

Sh!t.

The team meeting with Remote starts in seconds and I ask if this is immediate, or if they will be around after the-

"I'm gone."

I hug Runner and try not to lose my sh!t in the hallway. BigDog comes in as I'm leaving and I have to just walk off.

Two years, I work with you - and now I just walk off.

After four minutes.

Inadequate.

Monday, April 25, 2016

Three Bucks

This story is about the collision of three random things.

Thing one: I'm on Twitter and see this picture.



It's a picture of Errolson Hugh, in a rain jacket he designed  - retweeted by William Gibson (who, I firmly maintain, is the most consistently interesting guy on twitter).

Because Gibson retweeted it, I look at it. It's from a website that looks to be designed by people who hate their users. It has marketing copy that practically begs you to find the author and punch them in the head.

To wit: "Full spectrum. Full frontal. Uncut. Hard R. NC-17. Overbuilt. Ultralight. Asymmetric"

Ugh.

The brand is called Acronym.

And pretty much everything they have is black. They are fronting. Hard. And then you look at the pricetags and about blow a fuse. That raincoat in the picture? It costs 1,200 Euro, which is just around $1,300.

Which is nuts.

But William Gibson loves this guy and his jackets. And Gibson (channeling Cayce) is into high quality stuff that doesn't have visual flash. No visible brand names. Just good design and high quality.

Watching a few of the Acronym videos, it's pretty clear that Errolson is huge on style - but is all about design for use and durability. Yeah, he does kung fu in the videos, but mostly to show that his pants can do that without tearing.

And there is a sick amount of cool stuff going on with his gear. I love the little collar magnets to hold your earbuds.

Still, $1,300 is madness. This company makes tee shirts that cost almost $400. Entry level? F$*k that noise.

Still, ya put it on your "If I win the lottery list."

In ink.

*     *     *

Next up is Gumby.

Last fall, Gumby comes up to me and Runner and asks us if we want to get in on a football pool. After the reflexive eyeroll, I get back to work.

Runner's into it, and pretty soon Gumby and Runner and talking about all the fun of picking winners and losers for the week.

I think of it as homework, but eventually Gumby announces that they'll sign up for me and I can pay them back later.

Uhh....thanks...?

So, next thing I know I'm being emailed a spreadsheet from the pool organizer. It's one of those pools where you pick winners for each game, and weight them based on how confident you are. Each team gets a number from 1-16 and if you end up being right, you get whatever points you assigned to the matchup.

It's more than homework, it's homework on a subject I'm not interested in.

But, high score for each week gets $5... so.... meh.

Sportsball!!!

*Eyeroll*

I pay Gumby the $20 entry fee, so I'm not a deadbeat. And get back to work.

Literally the next time I think about the pool is Thursday afternoon when Runner bugs me to get my picks in, because they are due in three hours.

I'm leaving work in fifteen minutes, so I've got less than that to make my picks and then get the boy to practice.

I go to FiveThirtyEight.com, because Nate Knows Numbers. I literally grab his picks with print screen and paste them into paint. I move the chunks around until they are in first to worst order and then type in my point assignments 16, 15, 14...

Runner is asking me all kinds of questions about whether or not the Cards are good this year or if the Ravens are back on their game. I have no idea about any of this $hit. I pay literally zero attention to the sport these days and what little I have managed to observe has been forgotten so I can free up enough RAM to remember where I work.

I email FM my picks and bail - regretting that I ever got into this stupid thing.

Next Tuesday, the scores come in. Runner has won the week, and I'm down somewhere in the last 4. Not dead last, so leaning on Nate the stat guru has really helped me. But Runner's jazzed, and good on them. They actually thought about their picks. Did some research.

Three weeks in, I've resigned myself to coat tailing on Nate Silver's odds, because I know absolutely nothing about what is going on. Knowing that I have points at risk makes Sunday Googling a little more interesting: Hey, did my teams win? Well, sorta.

"Sorta" is good enough to get me into the middle of the pack. A few weeks after that, I actually get the high for the week.

Yea! Five bucks! Three more like this and I'll break even.

Hah.

But the organizer keeps emailing a list of who won the week, and who has the highest number of points across all the weeks so far. It's just bragging rights, but I'm up in the top three. I guess my week to week numbers aren't winners, but I'm more stable than most of the players, who bounce from worst to first and then back again.

I'm using the same stats every week, so... I guess I would be stable. It's not putting me top of a given week, but I won't be the anchor man overall.

That's cool.

And then I win two more weeks. Fifteen bucks, total!

After those two weeks, I'm ahead in the overall score. Runner is mad at me. They got the first week and pretty much nothing afterwords.

I'm getting coffee one morning in the breakroom and TierI starts razzing me, "You gonna let anyone else win the pool, murph?"

Ha, ha. Yeah, I'm on fire at the moment, but don't worry. It'll pass. 

Two weeks later, I haven't won another week, but I'm still ahead on the overall.

Next time, its Ehl giving me grief in the breakroom. "Geez, let somebody else catch up, will ya?"

Ha ha, Well, if I win another week, I'll have gotten back my entry fee, so...

Ehl's incredulous. "Screw the weekly winning, the overall pool must be over four hundred bucks..."

!!!!!

I nod and head back to my desk.

WHAT???

Okay, I re-read the contest rules and find that the overall score is not being included for laughs, The person with the most total points at the end of week 18 gets 80% of the total pot.

I count the total number of players and we're around 36 people. That's like $700! which means....

*calculating sound*

Over $500 bucks!

Holy crap, I'm an idiot.

I literally had no idea about this, but (duh) of course there would be a pot. Imagine paying $20 per person and paying only $5 per week.

Great work, if you can get it, but...

Okay, so now I'm looking at the overall and trying to figure out how I got to this point. Looks like most of the other players are bouncing around wildly from week to week, but there are about three or four that really have been cruising along with me. These folks have a method, too.

My method is simply: ask Nate, but it's a method I've used consistently for almost ten weeks. Better still, Five Thirty Eight's stats improve over time because more is known about the various teams each week. No odds are bulletproof, but these odds are the result of quants pumping data through all kinds of scenarios to see what shakes out.

Folks who pick however the mood strikes them are not going to beat the likes of Nate.

Now, I'm getting grief from a number of people in the office who (unlike me) have known that this pool was for real dollars since the beginning. One of those is PD, who is chomping at the bit in the overall - barely 10 points behind me.

They ask me, "How are you doing this?" I've led in the over all for seven straight weeks.

I could say "I'm using odds from Nate Silver." But then, that would help them. So, I say (disingenuously, but accurately) "I have a spreadsheet, and I plug in the odds."

Which is true, I have the spreadsheet the pool organizer gave that lists the matchups for each week. Everyone has the same spreadsheet.

And yes, I do enter the odds into this spreadsheet - but the only odds I have are the odds I take from Nate Silver.

Five weeks from the end of the pool, some dude comes out of nowhere to overtake me in the overall.

I knew this would happen. Just about the time I'd start to think I could win the thing, my method craps out on me. And - thinking logically - there's lots of reasons I should have expected it to.

Nate Silver's method is to compare the team strengths and run through all the probably scenarios to see what percentage result in wins vs losses. But that ignores a key aspect of the late season: when a team has their bye in hand, or is assured of their playoff slot regardless of their remaining record, they may just choose to tank a game or two. Why should they risk injury to their stars in a meaningless game against an opponent that is never gonna make the postseason?

Screw that. And so Nate's clean numbers on how often this team's starters should beat this other team aren't really relevant - since the coach is benching his starters after the first quarter.

I have two crappy weeks in a row and some dude is pulling away. I'm starting to wonder what system they are using. They probably have a real spreadsheet with odds in it.

And then I go back and check all my scores, because the organizer keeps saying "errors can happen." And I find an error - and unfortunately, it's an error where I got 14 points I shouldn't have.

I check and double check, and find out that Runner's score was too low that week. Oof.
I contact the organizer and fess up. They dock me the points and I'm solidly in second place

But then some dude has a truly brutal week when I net 119 outta 136 points. I'm back on top, with two weeks to go. PD is faltering and some dude is the only one who can catch me. Second from the last week, I get pummelled on the Pats and the Hawks tanking, but so does everyone else. I'm still up.

Some dude gets the exact same score I did. Hmmm.

Last week of the pool, the Pats bone it again, but they are my only double digit fail, and I end the week with 90 points out of 136. I'm averaging 68.8% of the available points overall.

Some dude misses me by five points.

I've won the pool. The pool I didn't know existed.

A few weeks later, the organizer comes by to give me my winnings in cash.

Five hundred and twenty three dollars, thank you very much.

*     *     *

At which point, E steps in to ruin things. I'm jazzed about having a big wad of bills and E's like "What should we spend the money on?"

Now, I'll admit, that at this stage of the game - Es plans for the winnings had not entered into my thinking.

At all.

I'm pretty sure she was yanking my chain, too. But the point was made.

You think that money is yours, do you?

And I don't know where to go with that. The closer this money got to reality, the more my brain entertained thoughts of getting something for myself. After all, this money was "off budget."

The bills will still get paid, our savings deposits will not falter - and this money will arrive and become... something I wouldn't normally get.

*     *     *

Runner wasn't exactly helping. Soon as they saw the cash, they were like "Now you can get that jacket."

Ha ha ha. This is like, a third, of what that jacket costs. Ha ha.

Ha.

But that's about all the pollination that idea needed. I know there are five stages of grief, but I'm not sure how many stages of pining there are.

Let's count, shall we?

First: Denial.  Ha ha ha.

Second: Advocacy masquerading as doubt. No, no. It's completely impossible. But WOW would it be amaze-balls, right? Look at the way they did that pocket...

Third: Feigned Logic. Well, it would probably be the last raincoat I would ever buy. And really, it's a good thing to increase the amount of things in life that make you happy. Think of the Nest - every time you use it it makes you happy. Or your Tom Binh bag - that makes you happy, right? This would be just one more thing like that. And hey, its not like you're going to get a $400 tee shirt, that's nuts. A jacket is a long lasting thing. You can wear it and still dress down.

Fourth: Actual Logic. Ermagawd, that is a lot of money. Don't you have car repairs to do? Wouldn't the responsible thing to do be to put the money in savings and watch it get devoured by some stupid household expense?

Fifth: Anger. WhytheFark should this money get gobbled up buying a duvet and some pants for the kids?

Sixth: Bargaining. Hon? I'm wondering what you'd think of buying one of these jackets. I don't want to buy anything that is going to cause resentment or that will blow a hole in our budget. I think we can do this without breaking our bank, but I wouldn't think of buying such a thing without talking to you.

*     *     *

That was about a week ago.

Two months ago, E's surfing the web and shows me a picture of a puppy called Tobias. We've been looking to complicate our lives with a dog for some time now, and have not been having much luck.

I want a dog that looks like a dog, which poses a problem, because apparently only I know what this means. Moreover, our local shelter is blessed with the problem of more demand than supply. This is great for the doggies, but hard on potential owners.

The day after our shelter got over 60 puppies in and put them up for adoption, I'd called them to ask if they still had puppies and was told "yes." So we dragged the kids down there after work to look at the doggies.

All were cute.

All were taken. A fact that is not apparent until after you find a suitable puppy and ask their staff. "Oh, that one is taken. Guess again!"

It is not a fun game. Particularly when all but 1 or 2 dogs are spoken for.

Finding out which dogs are available is something that can only be done away from the kennels. We've spent the bulk of our visit staring at the cute puppies in the kennels, oblivious this fact. All the while, people who reviewed the dog inventory online have been snapping them up at the adoption desk.

The kids resigned themselves to a dogless existence.

E and I got back to being ground down by work.

So, weeks later, E spots this dog, Tobias.

Tobias looks like a dog.

E's done this game too many times, so showing me the dog was more of a forlorn hope than anything else.

"I'm like, if we want this dog, we need to go now."

E takes this to mean, there is no hope. As E has to take little e to an appointment soon, this is it for her. Not this dog, then.

But this is not where I'm going with this. E takes off and I drag the boy out of the basement, because the shelter opens in about 30 minutes. I understand that people are usually there early.

The boy is cranky and I manage to stand on him hard enough to get him in the car and out. Google tells us we will be there about 15 minutes before they open. Good enough?

When we pull up, there are at least a dozen vehicles in the parking lot. Most with people in them. The boy and I wait in the car before we see a father and daughter walk up to the doors of the shelter and go in.

??!!

The Boy and I go in and discover that - in addition to the ten or so people in the parking lot - there are about a dozen people in the entryway of the shelter. The staff tells us all to wait until they make the announcement that the shelter is officially open.

It is nice of the staff to let us in early, but literally everything about getting to see a dog is opaque and difficult. Which dogs in the kennels are available? Who knows? How do I go about seeing a dog? You'll figure it out!

When the appointed hour arrives, the staffs gives us the go-ahead and the Boy and I all but bolt over to the adoption desk. It's more than a bit unseemly. I'm thinking of the people in the parking lot, who waited for someone to turn on the "Open" sign. They will be too late. Or the people who are headed into the kennels, they are hosed. I'm trying to move fast without being tacky. I get body blocked by some senior citizen, utterly clueless to the fact I need to get by. I dodge around them, so much for not being tacky - and then we scramble up to the desk like we're in an event.

Even then, we are fourth in line.

The first person in line asks to see a cat.

Huzzah!

The second person is asking for a dog, but not Tobias.

Third person also wants a dog, but inexplicably wants one of those dogs that look like cats.

We're up and blurt out "Tobias, I want to see Tobias."

And he's available. They give me his folder (the coveted, tangible symbol of  "I got dibs on this animal") so I snap a picture of it and text it to E.

We get to meet him and he's a dog, not one of those freak cat/dog hybrids. More importantly, he's a very calm animal. Dog, dragged out of a kennel, after being picked up as a stray - plopped into a room with two new people including a child.

Dog's like: whatevs. Got anything to eat?

This is impressive. Too many dogs in this situation are freaking out, or jumping/chomping, or hiding or any number of things that are the opposite of calm.

This dog is calm. I tell them that barring a sudden, violent attack, we will go forward with adopting this animal when my wife arrives. We're in an observing room and more than a few families (fresh from the kennels) are emerging to ask if they can see Tobias next. The staffer helping us says there are a few more people on Tobias' list who want to see him.

Yeah, that's not gonna happen.

And I feel bad for these folks. They are learning the hard lesson I acted on when I came in. Ignore the kennels. Know which dogs you want to see when you show up, and ask for them immediately. We are going to get this dog - and I feel like a thief.

E and little e show up to formally say "Yes" to Tobias. We are going to rename him - the shelter name doesn't suit him at all.

Thankfully, once you agree to get a dog, the process is very smooth and easy. Some light paperwork, they recommend getting a microchip, and we buy some dog gear: a crate, a leash, collar and two chew toys.

It takes about 20 minutes to get him chipped. Meantime, they ring up the charges.

Five hundred and twenty dollars.

*     *     *

I resist that math. What did you get with your football winnings? I bought a dog.

Not a jacket, or a cool, once in a blue moon extravagance. But a dog. Something the household was planning to buy anyway.

I swear, it's almost as if the Dog is trying to make his case. He's mostly housebroken, takes to his crate well, loves people, and aside from the occasional, unauthorized gnawing - is a pretty solid dog.

He gets us up early.
Makes us clean up our floors.
Gets me to walk almost every day.
Makes me familiar with my neighborhood.
I've actually met some people (they're nice).

He helps get the kids up in the morning.
He's gotten us to go on family walks - and to dog training classes.

But I'm still resisting the urge to erase the line item in our ledger marked "football pool" and accept that this is where that money went.

I just...



Oh, fine, dog...

You win.

Last stage of pining: Acceptance.

But I'm keeping the last three bucks. Gonna start me a jacket fund.

Thursday, March 10, 2016

Showcase

Every two weeks, the Agile process demands that a dev team appoint a representative to demonstrate the work that has been completed since the start of the iteration.

At NerdHaven, the representative is typically a member of UX. Policy within UX is that if the completed work is your story, you showcase it. Which makes sense. The UXer wrote the story, they can describe what should happen, why the work was done, and if things get brutally technical, they can have a Dev or QA jump in to spell out the details.

I generally enjoy showcase - mostly because I enjoy explaining things, and (so long as I know the material) I'll talk to anyone. There's some AV hassle setting up a showcase (since a significant number of attendees are remote) but the procedure is known, and most of UX has it down pat.

We used to schedule a mini-meeting in the showcase room, for the 15 minutes immediately prior to showcase - just to get the webex setup and the conference call going. Eventually we got to the point where we could fly though setup given a minute or two.

Conference calls are horrid (everyone knows this) and we compound that by having part of our showcase be a video call with the west coast office alongside the webex/conference call. It's great to see the west coast folks when we talk, but it is an added complication.

Again, though - we've got the drill down pat.

  • Fire up the webex in the non-chrome, non-IE browser (because chrome is wonky with our POS webex software, and because IE is our demo browser - if we crash it, the webex would die, too).
  • Use the webex software to call the room (this saves us from having to punch in a long passcode on the room's cantankerous touchpad saucer.
  • Mute our computer's speakers to avoid reverb
  • Call the west coast on the video phone
  • Launch IE and log into our demo environments
  • Start recording the webex, pause it
  • Wait until the royalty arrives
  • Start recording
  • Present our stuff
There's always something going south somewhere, but this - plus a few debug steps - gets it done for showcase.

And we've tried to improve on our showcase. A lot of our audience is not getting our message. We've tested this. Dash took an informal survey of what we showcased and what people remembered and, well - folks were not getting a lot of what we said. Some are just touring the showcase, but some of those folks will need to support the features we demo-ed. If they don't get our message, we are doing things wrong.

Then there are the SMEs. Our SMEs are smart folks, but as I've said before - they live in a different universe than we do. UX is neck deep with Devs and QAs, and now we are Product, so we are up to date on what work is planned, and where it is at.

The SMEs are in the field, demoing features and helping clients set up our product. They have advanced degrees and are specialized experts in things folks like me cannot possibly understand. This is why we have them. When we are designing a feature for our clients (who often have the same advanced degrees) we need to lean on the SMEs to make sure we are not screwing things up with our non-SME ignorance.

The SMEs get this. UX gets this.

Sadly, this understanding is a one way street.

UX are designers, SMEs are not. And when I say designers, I don't mean detached "creatives" (a word I loathe beyond measure) - but designers in the Mike Monteiro "Design is a [Goddamn] Job" sense. UXers are paid to understand problems and design solutions for our end users. We are tasked with designing comprehensive, consistent designs that delight our customers. And we must do this in the Agile methodology (meaning no comprehensive redesigns, but improve what you touch - when you touch it). And do user research, and write requirements (as well as more and more business analysis).

The SMEs at NerdHaven have little patience for UX. We are in their way. I have mentioned this before - and I will keep mentioning it, I guess. Because right after I feel we are mending fences with the SMEs, we will have a meeting where they basically tell us that UX is entirely staffed with morons.

To give them their due, they have spent more time at NerdHaven than I have - and have had to deal with the likes of Noddy, the Professor, Ahh and Heater. Noddy has poisoned the well to an incredible degree - and my recent struggles with Arwafn has not improved things.

When Arwafn went over the cliff, Runner and I were suitably mortified - but the SMEs were out in the field with clients, trying to explain to them why the report was showing incorrect data. One of our SMEs - an incredibly sharp person I'll call Whitelake - has routinely pronounced Arwafn to be of limited value and perhaps something we should abandon.

The SMEs give the impression that if UX would just get out of the way, they could tell our Devs what to build and everything would be grand. They share the belief that our Devs just make things complicated and that an approach that "keeps it simple" would shorten timelines and result in more deliverables in a shorter amount of time.

The SMEs are smart people - but in this regard, they are completely wrong.

When Arwafn blew up, I remember the then-lead SME moving to ensure that future development would have greater SME oversight - sign-off, even. The thinking being that, had we greater SME involvement in Arwafn, the feature would have launched without problems.

But Arwafn's problems were deep, under-the-hood, data problems. SMEs are experts in their domain, but they are not data experts. They do not design databases, and they assuredly do not design user interface.

But they want to. And while I am not so much a UX snob to believe that the SMEs cannot help design good interface, they fall victim to the same fallacy that launched countless crappy user experiences. Designing screens is easy!

No. First, its not about designing screens - it's about discovering the actual problem the user wants to solve and designing a solution. A solution could be a screen - or it could be a phone number to call - or an incredibly complicated database-driven web application that synthesizes heaps of unseen data to present the one calculation the user cares about - when they care about it.

"I could tell you what the user needs in about 5 minutes. Here, I'll draw you a sketch..."

Being UX, you should always hear these kinds of comments out - but when they break down into "we get the right data and give it to our users, easy!" UXers like myself want to jump out a window.

Yes, I know we should show them the right data. Now, can you tell me how we distinguish from good data and bad data - so I can tell the Devs how to write their query?

And then... the handwaving begins - or references to data elements by their NerdHaven-given name, rather than the names of client-supplied data elements. Elements that should conform to a standard, but often don't.

Oh, we should use the date when event X happens? Do you realize that there are three different data elements that could have that information? Do you realize there is no way for us to look at those dates in those elements and know which of them is correct - if any? Do you realize that each client could use any of these elements - or one of their own devising? Do you understand that even if they send us the right data in the data element we expect, low level interface code could adulterate it or prevent our application from using it? Do you realize the amount of effort would be involved in getting a detailed picture of what our clients are sending and what is actually making it into our application - for even a single site?

I have been working to pin down an elusive bit of data, PofC and the forensic analysis has stretched into months. We've built new upstream processes, moved mountains and we're still barely there. Our solution for Arwafn's PofC problem will still only work for most of our clients. Not all.

Some of our SMEs are incredulous at this. "PofC is basic data, send to us in a DAT message. Don't you know how to read a DAT message? This is really very basic."

Yes, we know how to read a DAT. What we cannot read is the DAT message our clients don't send to us. Some clients only send us DAT messages half of the time. Does your 'basic' solution account for this? Are you aware that years of legacy code exists that parses DAT messages differently for different clients? Do you understand that they will send us DAT messages in parallel for the same record, forcing us to either guess which thread is the correct one, or merge the threads into a single thread? Each of these approaches has weaknesses, depending on the originating system (or systems). Do you have a recommendation for how we would approach this for all our clients, each of whom may have a different configuration?

We have explained this to the SMEs ad nauseum. Sometimes, it clearly has no effect. Other times, I see a nod of comprehension and resignation. But always, always, we seem to end up in the same place. The SMEs think we are fools for not grasping the simplicity of their solution. We are incompetent - bunglers.

I have personally explained to Ihaq the difficulties in solving the PofC problem. They seemed to get it - then later in showcase, they have asked why a (long abandoned approach to PofC) has not solved the issue so that this new work (that I am showcasing as completed dev work) is unnecessary. On the one hand, I should be happy that an explanation of our work from last year has been retained by a SME - yet I am frustrated that they had completely forgotten the in-person demo I'd given them less than two weeks ago.

And I know they are frustrated, too. Always, always - the feature work is incomplete. We'll address their concerns in a future story. They've heard this ad nauseum, too. They are sick of waiting. Every story we present is "the early version" or "for beta" so we can "refine it later." They know what they want - and we are just not getting it.

A particular sore spot with me was the printed output of Arwafn. UXDirector (way back when I first started) had flat out told me that we were not simply going to repeat what we'd done in the past. Namely, make the report output into a .CSV file. UXDirector's point was hammered home "we don't want to tell our clients that - in order to solve your data problem - the first thing to do, is to leave our application and open another program."

You could look at this a lot of different ways - but I took it as: the boss wants us to try new things. So, we talked with clients and found out what they wanted to do with Arwafn's output. They wanted modest editing, but nothing that required Excel - so we provided the ability to edit the view in Arwafn - and a PDF output that mirrored the view.

What we soon discovered, was that the client data was extensive enough to require a multiple page PDF output - which was universally unpopular. We intended to revise the approach so we would support all our client's data in two page-sized chunks - but before we did, all of our data issues blew up and we spent the next year fighting them. The SMEs were angry with the PDF, they wanted an Excel file output and could not believe we hadn't built one yet.

Now, we're rounding the bend on our data issues and the SMEs are back banging on the issue of the export to Excel. Being beaten up for a design choice I was driven into, then berated for not having fixed it by now is particularly galling. The SMEs think the PDF was some crazy "designers" idea. That it is in its final form - rather than the orphaned feature that it is.

I will ask to fix the PDF, but I am virtually certain that I will be told to make an Excel export instead. When this happens, the SMEs will nod their head and confirm each other's wisdom - and the work of the PDF export will be truly wasted. I beyond furious about this. There is no way to explain this to them - but I will keep trying.

This is UX.

*     *     *

Where was I?

Oh yeah, so I'm reviewing the few stories I have to do for the showcase that starts in an hour, when Red walks by.

"Did you realize that showcase is in BigLake?"

Uh....

BigLake is the largest meeting room we have and it has the worst video conferencing gear. I have had a series of catastrophic AV failures there, to the point where I have abandoned the room and made my remote attendees call into a new room. I hate BigLake. I had promised myself that I would set up a trial webex/vidcall with the west coast just so I can learn how the hell to make everything work when I don't have the entire company watching me. But there has not been time. Now, it will be trial by AV fire in BigLake.

But Red's not done. "They've changed all the AV gear in BigLake, too."

Uh......  sh!t?

I go immediately to Servicedesk and ask for the how-to for the new gear. Servicedesk is very precise, but it still learning the ropes themselves. They make a few things very clear:

  • Don't touch anything on Remote #3 (there are, naturally, three remotes)
  • There is a secret button on Remote #1 that makes the number buttons do what you'd expect them to
  • There is special software to share your screen with the west coast office folks, but don't use it if you are doing webex, because it causes crippling lag
  • We will not be able to video conference with the west coast, since the main line can only support the audio bridge call
These are not good things to learn 30 minutes before showcase, but I take note of them and thank Servicedesk, who then disappears into a puff of smoke.

BigLake's AV setup is VASTLY different. Where we used to have a desktop machine with a USB keyboard and some mic pads around the room - we now have a wireless ergo keyboard that connects to a completely invisible box whose only video display is the overhead projector that is either off, or currently receiving input from another source (guess which! such fun!) There's a wireless mouse (that lags incredibly) and no video cable to connect to if I want to use my machine. I will have to the room's machine. There's a TV for video calls. I power up the projector and - a minute or two later - I can see the faint projection of a Windows 7 screen. That I can deal with, so long as the phone hookup is working.

I test dial into the audio bridge and get it working - and watch the Window 7 screen projection on the wall get replaced by a bright blue field of nothing. There is a TV, which shows me the status of the outgoing call and soon I see the west coast office. But the room's computer display is still gone. I can't see what I'm doing on the box, and can't demo, or do anything.

F*&k.

Nugget walks in and I grab them, since they just worked this room with Red. Nugget immediately begins pressing the button on Remote #3 that Servicedesk said not to touch. The blue screen on the wall becomes a black screen with an input error message. Five minutes to showtime, folks are starting to come in and sit down.

F*&k-ity F*&k, F*&k...

Nugget then hangs up the phone. TV goes black and the projector, too. I grab Remote #3 and press the one button Servicedesk said we should mess with other than power - HDMI1. Which reconnects the overhead projector to the room's invisible PC. 

I can see what I'm doing on the PC again. I start firing up Firefox to get the webex running and immediately realize that this machine has none of our bookmarks. All of our demo sites have incredibly convoluted URLs that I cannot remember (which is why I bookmarked them). The webex URL is pretty straightforward, so I fire it up-

-and am told that the invisible PC's version of Firefox needs a plugin to run the webex.

-which requires admin rights on the box.

-which I don't have.

Two minutes to showtime.

Chrome usually works for webex, but sometimes not - I go for IE (accepting the risk that we will crash IE in our demo and take out our webex). 

Won't this be fun? Let's go.

IE fires up and (merciful God) does not need a plugin to use the webex. It's spooling up when the west coast calls us on the videophone-

-which turns the projected PC view back into a blue field of nothing. Sprint's on the videophone.

One minute...

I ask Sprint to bail out on the video call and dial the audio bridge until we sort our sh!t out over here. Sprint does so without a fuss - they know the drill, and they know we wouldn't ask if it didn't matter. 

We get our projected PC back, the TV goes black and Sprint hails us over the bridge.

Sprint? They just get it done. Sprint is great.

I have the webex working and have fired up another tab to go to our demo site... and I can't remember the damn URL. I was hoping the prior showcase would have put it into our history, but-

I'll IM it from my machine!

But I can't because the invisible PC is a room PC and doesn't have IM, because: Bullsh!t. Some security jerkoff decided that a room can't be a user, so if you want to IM a room machine, you have to sign into the IM as yourself, then log out when you are done. As those are (naturally) separate credentials that you use exactly never (Button reads: "Remember-my-password-so-I-can-forget-it?" YES) I can't log into the IM.

Showtime!

Dash shows up. I like Dash, but they are habitually late in arriving to these things. They know their sh!t, and get it done, but as they are up first - with most of the demos - their late arrival is not helping. Sprint does the into over the bridge and asks if Dash is ready to go.

Dash says they are and the room projector flips to show the image of Dash's PC on their demo site. Dash is using the spiffy new software that came with the new AV gear and it's slick.

But wasn't there something that I'm supposed to remember about...?

Dash is partially into their first story when I realize the problem. Dash's PC is connected to the projector in BigLake (so we see it on our wall) and the projector in the big room in the west coast (which is not the room that Sprint and their team is in) but it is NOT connected to the webex at all. 

So only the people in BigLake can see Dash's PC. I cut Dash off and ask if the remote callers can see the screen. 

"No"

"No"

"No"

etc

I had the meeting over to Sprint, so they can go first now, while I get Dash up to speed on what they need to do: stop using the fancy room software and log into the epically sh!tty webex software we always use.

While they do that, Sprint is polishing of some solid demos because all Sprint knows how to do is get it the hell done. I'm realizing that I still don't have the demo URLs onto the invisible PC and I briefly think of doing what Dash is doing: use my machine to log into the webex, but - as if in answer - my laptop chose that moment to spontaneously switch itself completely off.

It had been doing that for a few weeks, usually within 30 minutes of undocking and Servicedesk was in the process of staging me a new machine, but y'know... as of now I'm just screwed.

I reboot my machine, and wait for the nastygram about not shutting it down properly.
Listen, bud - YOU shut you down improperly, don't go blaming me for your fail...

Sprint's wrapping up their stuff when it finally boots up. I use the invisible PCs awkward ergo-keyboard and laggy wireless mouse to set Dash up as a presenter (because Dash's webex account has never been promoted to Host or presenter).

Dash gets rolling. I call up my list of URLs and attempt to print them and -

I wish to GOD I was making this up- the nearest TWO printers are out of paper. So the room is treated to watching me walk in and out of the room not once, but twice.

I can't get the printout, and I don't dare risk using my "guess-when-I'll-switch-off" laptop. So, I'm stuck using the invisible PC with no bookmarks.

Great.

Dash finishes up and it's my turn. I have three things to demo, and each requires a separate demo site. Plus, if I'm going to reference the story cards, where I have all my notes, I need to log into our workflow webapp.

-Whose URL I have not failed to memorize.

I take a flyer at it hoping that the prior showcase used it, but no. The entire company is now watching a member of UX who apparently doesn't know where anything is - guessing at URLs they use every damned day (with bookmarks and history-autocomplete, neither of which this PC has).

With help from Nugget, I get into our workflow webapp and start showing the cards of the stories I will demo. I go into the first demo site and discover that I'd made a typo in my notes and find myself unable to log into the first demo site. When I try to refresh the page, I discover that the function keys are dual use and the standard function of F5 has been toggled off and the key now does some other (completely unhelpful thing). There is a toggle to regain normal function key behavior, but on this ergo-keyboard they (ha HA, creativity!) have placed it somewhere I cannot find.

Awesome!

To force the reload, I have to (laggy) mouse into the address bar and hit 'Enter' and plow forward like I just don't care. I muddle through the 1st story, but the ergo-keyboard makes me type like a drunk, and the wireless mouse (between sensitivity and lag) is like throwing darts at the app.

Click. Miss!

Click. Miss!

At some point, over the audio bridge, I hear music. It's the theme from Jeopardy.

Someone is playing the theme from Jeopardy. While I'm struggling to get through the demo, someone has decided that I am taking too long.

So they decided to play the theme from Jeopardy.

You know, for fun.

And I know exactly who it is. The same SME who mocked Ahhh when they were struggling in their showcase ages ago. It wasn't funny then, and I'm even less amused now.

I call them out. "I'm assuming that's you, Balin."

Balin fesses up. "Guilty as charged."

Most of our offices are watching, so I just say "Appreciate your input."

I finish my two other stories and wrap up. I'm absolutely livid and say so. I'm in Gumby's office venting about how utterly sh!tful it is to be mocked by a SME, to be made a fool of, when literally everything about the AV was falling down on my head. Gumby hears me out, although God knows why they put up with me. 

It is - so far as I know, the first time I yell at work.

UX's relations with the SMEs has always been problematic, but really? This is where we have sunk to? Were the situation reversed and Balin was up there sweating out a demo, would anyone on UX razz them about it? Never.

I go off for far too long in Gumby's office and then seethe my way home. Gumby has tried to respond to any and all critiques of showcase and apparently the Dragon showcase was far worse than the one I was in. Gumby is looking to change things up and make improvements to the process, because that's the Gumby's answer to everything: more process.

Never mind what needs to happen is that we sort out our goddamn AV gear before this kind of crap happens again.

*     *     *

The next day, Balin emails me to apologize. They say they only meant to add a bit of levity to the meeting and were sorry to have upset me. Somebody has clearly asked them to contact me.

But it doesn't matter. I'm so glad to have an opening to explain where I was coming from. I cataloged the utter insanity of that day (in brief) so they would know why I wasn't laughing. I want them to understand - we are on the same team. I was having a bad day, a very bad day. I swore I'd be up for humor on any other day, but that day was not right time for me.

Balin was great about the whole thing. It was a great clearing of the air. The SMEs and UX will still be at loggerheads about a lot of things - but I want them to know we are people, we work hard, and we want NerdHaven to succeed. And that we believe the same about them.

We have to get past the animosity. 

In a very weird way, the Jeopardy theme - and Balin's subsequent email - may represent a thawing of the ice.