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.)