Coming Clean

Revelation in Progess

What Have I Done?

Once upon a time, I was a software engineer. Then someone said, “Spencer, you’re a very good software engineer. You grok our vision, you produce well designed code that aspires to and can grow into as well as beyond our vision, and you have a knack for working with the other engineers (though your relationship with your managers could improve). How would you feel about leading design and development efforts for our team?”

And I said, “Aw shucks,” and so my downwards spiral into management began.

At first all was well. I had a 3 man sub-team and my co-lead had a 4 man sub-team. My sub-team was kicking butt and taking names. I was doing mostly design, code reviews, and mentoring. I could have done with some more coding work – but I always manage to sneak in some significant chunks in under design work. But we were mostly hitting our milestones, and I saw no reason to fear. If worse came to worse, I could step in on a weekend and get us back on schedule – but I wanted these guys to do it largely by themselves. Good for morale and growth all the way around.

And then it was deemed that my co-lead, who also had a high-level architect hat, needed to wear only one hat, and so he passed his software lead hat to me. And so it came to pass that I was the one software lead to rule them all.

It’s at this point that my downwards spiral into management hell began.

I knew I had to schedule a lot of meetings to figure out where my co-lead was leaving off, where I was picking up, and where the progress of his sub-team was really at. And all the sunshine and happy flowers that I had been hearing about started to wilt and die before my eyes.

I basically picked up 2 very needy non-engineers, realized that my co-lead really wasn’t on top of requirements, design, or implementation progress, and that we needed to cut a bunch of features and rework the other half. Oh, and make sure the entire thing was REALLY being tested.

As petals wilted and flowers died, I flowed the needed scheduling information up the management chain. This, of course, caused new meetings which caused new meetings which caused new meetings which … well, you get the idea. Forget engineering (outside of dealing with my 2 very needy non-engineers). I’m just doing scheduling, tasking, and status … with a good dose of requirements analysis, requirements rejection, and a bit of upper-management scolding (most people think I’m insane because I’ll scold my management – I tell them what it is they have done, should have done, and should be doing – and why I shouldn’t be doing any of it … but the way I see it, if I get fired (and no one is ever really fired), it’s probably because things got to a point where I really am better off leaving anyways).

Ok, ok … it’s not all bad. Really, I’m enjoying it mostly. I just want to get back to the engineering side of things. But I have to fight, for the success of this project, this titanic management battle to get all that is screwed up with our engineering process and management turned around.

It seems that since I’m the only one who doesn’t mind expressing a very solid, actionable opinion, I get delegated with all the managerial crap that everyone else should be doing. What features do we need for our next release (you should be asking the architect)? What support do those features need (again, the architect)? Are we sure we’ve done a top to bottom analysis (I don’t mind helping out, but does the architect have an initial blueprint)? Do we have a tasking breakdown (if we have a top to bottom analysis, then yes)? Do we have initial tasking assignments (sure, I can do that)? Do we have estimate sizes per task and engineer (I can do that too)? Hoooooo crap, why am I doing this?! My part should be small, but I feel like I’m doing it all. I feel like I should be providing data, not doing the friggin’ work. (But the work is that data, they say, so either we’re data entry peons or you do all of it – managers don’t like being peons – and you’re the only one who really knows the data top to bottom)

Anyhow … this is a very long post to say: Sorry I’ve not been around much. Hope things change soon, but I’d expect radio silence to linger on for a while yet. If you want to mail me beer or wine (or money for either), I’ll appreciate it.

I Want Rands

So I have been reading Managing Humans and Rands in Repose the past week. Rands makes me feel less like a jerk and more like a guy with legitimate managerial issues.

I was talking with my old boss (now like 1 or 2 levels of management over me) about the book and just some of the stuff I’ve been reading, how I felt kind of validated in freaking out, the lessons a manager should learn in any and all freak outs, and just some of the communication problems I see in our group. He looks at me and dead pans, “It can’t be a very good book then.” I really love my old boss. He gets it.

Today, I decided that my current project manager is a coward. His first line of status is email and IM. No phone. Not unless the poop is about to hit the fan, and he needs the “took personal time with employee” checkbox checked.

This afternoon I got an IM wherein he was checking status on a particular project. This came up just after I had replied to an email he had sent relaying that our intern, who is not very capable and is increasingly less reliable, bailed out of a week of work – the week where we were trying to get him spun up on a special project. This whole situation has begged the question of who should my manager be talking to with regards to what’s going on in the project, what’s our personnel situation, etc. As far as I’m concern, with no disrespect to my teammates, it should be me.

So I picked up the phone and called him.

Mgr: “So you want to talk?”
Me: “Yeah, more than just status. We’ve got a few things we need to talk about them and now is as good as any.”
Mgr: “We’re not going to talk about those things.”
Me: “Yes we are, after the status report.”
Mgr: “No we’re not.”
Me: “Yes, we are.”
Mgr: “No, I’m not on a private line.”
Me: “What do you mean private line? Why do we need a private line?”
Mgr: “Because we can’t talk about personnel.”
Me: “Well, if we talk about personnel, it will be because you make it an issue. I want to talk about higher level stuff.”
Mgr: “Oh …”

Yeah, see … when we talk, this is the way it always goes. He thinks he has a handle on the situation, but he doesn’t.

Skip forward to after status

Me: “Look, our process, my understanding was that you put so-so in a position for moderating process – not for technical control or personnel issues. I thought that was left to the team lead.”
Mgr: “It is.”
Me: “Well, then why are you talking to so-so about our technical status and personnel issues? And why are you giving so-so crap about the decisions I made the call on?”
Mgr: “Well, I didn’t realize you made the call. I thought there was team consensus.”
Me: “There was team consensus by my sheer force of will and the absence of project management. I said I’d take the fall. Everyone’s backing the decision now it seems.”

At this point, my manager begins a series of excuse making wherein we start talking about what he explicitly outlined he didn’t want to talk about. And in the process, he all but says that the hub-bub he’s created here in not letting the team manage itself has been wasted effort – he’s back to where we started. Skip a few minutes …

Me: “Mgr-person, do you want me on the project?”
Mgr: stunned silence
Me: “It’s just a question. But every time I have to work with you, it’s a fight. I don’t get it.”
Mgr: “Well, just because you don’t get what you want …”
Me: “What I want? I mean, I’m opinionated and strong wilked, sure, but when have I been wrong? I mean specifically, when?!” (hubris, it’s bad … but I do have a solid track record at the moment)
Mgr: “Look, I don’t know why we’re talking about this … how this happened. We’re both frustrated. So lets take a breather and talk about this later.”
Me: “Fine, we can do that.”
Mgr: “Just schedule a meeting …”
Me: “No, you schedule the meeting. If you want me on the project, show that you care and make the time.”
Mgr: “Fine”

By the time I left a few hours later, still no meeting notice. He did try to hit me up for another phone conversation (via IM instead of just, you know, calling me). We’ll see where we get tomorrow … but I’m ready to check out, and I’m making contingency plans for those I’m going to be leaving behind. Couple with my possible departure with the imminent departure of our resident senior free electron, and my project is pretty much screwed.

When I’m Where They Are, What I Won’t Do

The one thing that is like the central theme for all my angst at work lately is simply: I see no value in my immediate leadership and management.

And this, according to them, is a virtue of our project.

I don’t get it. I don’t appreciate essentially making up work and doing said work while they loom over my shoulder and waiting to decide when they are going to step in and take over or take “corrective action.” I know it sounds crazy – especially making up work – but that’s more or less what I’ve been doing of late.

Management, in my view, is very much a flow down activity. You work with customers, you identify requirements, you identify design needs, you work the design, then you pass off to developers but hang around to monitor the situation, and eventually take back to work things through verification/validation/QA. Nearing the end of design and preparing to hand off is when the full team begins to get engaged – this is what we’re doing, this is why we’re doing it, this is how we plan to do it … any questions? anything people think we’ve missed? lets do it then.

The dynamics of my current project is such that the developers get dragged into meetings with customers, listen to what customers say, and pretty much do all the systems engineering on our own even though our leadership/management state they are to be doing these things … and get all in a tiff when they realize they are behind or cut out.

Over the past 3 days, I’ve talked with different people on the systems engineering/leadership/management team of my project, and I’ve been overly blunt and probably disrespectful about all of this. Do I think it will change anything? … no, not really. yet here I am, with this small core of hope deep inside that won’t give up.

So, when I’m where they are, the people underneath me will know how I’m working for them. They will know – even if it is just a high level – what I’m doing and how I impact them and the value I provide them. I do not want to ever engender this feeling of being left to figure it out alone while also being responsible to some nebulous, unidentified higher standard that no one cares to share until after the fact. My people have a right to self confidence, empowerment, and assurance that their leader is working in their best interest and how he does that.

Quick question for all you management types out there: is that really too much to do/expect/ask?

Of Bad Bugs and Mortal Sin

If only I were to be writing an original piece for this title. But no. I’m not so creative and original.

Upon the recommendation of Geof Morris, I have purchased Managing Humans by Michael Lopp. It will arrive in the coming weeks – I’m a cheapy, and don’t like paying for shipping.

In the meantime, I started reading through the blog that gave birth to the book: Rands In Repose

I’m hoping that reading the blog won’t spoil the book.

Anyways, tonight I found a particularly lovely article: Definition of a Bad Bug

First, I’d say it’s a fair crack for defining a bad bug. Second, it scores major points for paralleling with the catechetics for Mortal Sin.

Closing in on the Age of Reason

Loose re-tellings of events of the day

Lisa: Josh, did you just do <something bad>?
Josh: … I don’t know …
Lisa: <stern look>
Josh: … yeah …

Ten minutes later

Me: Josh cut that out, you’re going to hurt yourself.
Josh: <continues crazy go nuts>
Me: <fends from crazy go nuts>
Josh: <wounds self amidst crazy go nuts>
Josh: <crying , screaming, gnashing of teeth>
Lisa: What’s going on in here?
Josh: <to Lisa:> It’s Daddy’s fault, he didn’t make me stop.
Me: <to Lisa:> The Daddy whom you gave me – he told me to stop, but he did not make me stop.
Josh: That’s not fair!
Parents: <shared , knowing smiles>

Clearly, he is starting to grasp the consequences of his actions … and already actively looking to dodge accountability … ah, stench of sin, how we know you all too well.

A Good Mane is Hared to Fend

Last night, I was in the office messing around while Josh was getting ready for bed. I saw that Lisa had a book by Flannery O’Connor, so I picked it up and start reading. It was a collection of short stories.

A few minutes later, Josh comes in yammering about something, and I absently tell him to get continue getting ready for bed. So he leaves but returns 5 seconds later, but in those 5 seconds something in the book has caught my attention.

He snuggles up behind me, still talking, but I’m still reading through the paragraph … no time to bother with him yet. Then I realize he’s saying … something … something … familiar and yet nonsensical.

“What are you saying, Josh?”
“I’m trying to reeeeeeeaaaaaaad.”
“You’re what?”
“Trying to read!”
“What are you talking about? What are you reading?”
“A .. good .. maaaane .. is hared .. to fend”
“What? Point to what you’re reading.”
Josh points to the top of the page where the title of the short story is: “A Good Man Is Hard To Find”

Awesome!!! Josh is reading! So we work through the proper phonetics, he gets all spun up, and then off to show off to momma!

After that, instead of me reading to him for bedtime, I help him read to me. It’s pretty awesome.

Planning a Covert Coup

So … one of the big jokes amongst the developers is my constant scheming to “pull one over” on management. Generally there is something that we know they (irrationally) will not want but is in the best interest of pretty much everyone else. Every now and then, I also host a game of “dream team org chart”.

Today, though, I think I hit a real resonating chord with the senior developer. He’s da’ man on the project. I’m pretty good at getting a vision of what ought to be done and how it will look – certainly better than your average bear. He’s significantly better. In fact, one of the best I have ever worked with – and I’ve worked with a number of crazy smart people. Everyone looks to his expertise, and when he isn’t brought in, quality suffers.

Today, I pitched a covert coup to the senior developer. The main thrust is that since we have the best handle on the development efforts in progress and have the most to say about design and implementation, we need to be overseeing the design process before it gets handed off to the developers. Thing is, there is already suppose to be a structure for all of this as part of the existing systems engineering team.

So, the coup is simple – we are put in charge of developers, and we manage the work that developers do. As part of that (and this is where the coup is manifest), we facilitate the process of system design becoming software design, which is where we are perhaps the strongest of anyone else on the team. This amounts to a coup because the senior developer and I almost always view the system design we’re presented with as a very rough draft that needs a lot of refinement – and in the end, we have something that kinda resembles but mostly doesn’t look like the original design.

The present justification we can use is that, really, the systems engineering team is presently too busy to address the needs and concerns of the developers … and we get bugged by all the developers when systems engineering is not available (i.e. all the time). There’s also the added benefit that the system architect doesn’t need to be a language weenie – he can focus on being a systems engineer, which is what he really only has time for it seems.

Right, so how is this covert. We’re making this covert in that we’re going to try to make this the system architect’s idea. This is the tricky part, but … it’s doable. The system architect already knows he’s overworked and too spread out. He freely admits to this. So, the plan is to bring up his workload, try to get him to express his frustrations (which he rightly has), and then do the whole “so what I think I hear you saying is …” and voila. It’ll take some time for it to ferment and mature for him, but it is so logical and “duh” that I don’t think it’ll take long for him to get on board. And if/when he comes on board … score!

This will free us to really optimally design our software and keep the engineers engaged and busy as appropriate. It lets us manage people we’re already managing more or less. And it lets us decide to take some risks within reason of our areas of responsibility to get things done.

All in all, I’m really pumped about this. I just need to make sure senior engineer is with me to follow through on it.

What Have I Done?

So, in between being heard by upper management and being offered a promotion … I forgot my immediate situation: my current management sucks.

Today, I had a urinary joust with my project lead. Loads of fun. I have a hard time being told to do something I don’t want to do … and I have a tendency to throw it back: “You want it so bad, do it yourself. In my judgement, it’s unneeded.”

Then I had a rant fest with #2 on my project. I leveled with him – I don’t know what he does, I’ve expressed interest in knowing, I feel like I have a right to know, and in the absence of knowing, I’m left to assume that it’s zero value added because I never see any product coming from the management team to help us do our job.

He didn’t like that. He was fine when I said they should be doing more by way of leadership; he was not fine when I said I had a right to know what they did.

After all of this, I found myself wondering … why did I stay?! Oh yeah, I have a get out of jail free card. I think I had better play it sooner than later.

Meaning

If in trying to find meaning, today is without any, then why should any of the others? I ask because today felt like a pretty meaningless day.

Whatever meaning there is, we should be able to relate to it at any given moment. Perhaps it is just the soft silhouette of a setting sun upon my childhood, but I seem to remember a time when I knew why all things were special yet reasons were unneeded.

It seems to me our hallowed souls have been harrowed hollow by the wisdom of the age. We know instinctively that there is something to draw us awake from our sleep, to put one foot in front of the other, and continue on with the trappings of life … yet when we ask ourselves what that is, the resounding echo of a faithless soul is too familiar and near overwhelming. For some, the words of faith come to us by rote and litany – as empty as that may seem, I can take comfort that there is at least that much.

It all makes the lyrics terrifyingly familiar:

There’s not time for hatred
Only questions:

what is love?
where is happiness?
what is life?
where is peace?
When will I find the strength
to bring me release?

Where is the love
in what your prophet has said?
Man it sounds to me
just like a prison for the walking damned.

Well I’ve got a message for and your twisted head!
You better turn around and kiss your hope goodbye
to life eternal
Angel

Individuality gives way to hedonism and self righteousness. Corporate identity gives way to thoughtless anonymity and slothfulness. Surely there is a middle way.

I think I’ve lost taste for mere ideas. I want to see the example I seek living before me. And I pray I’ll be found willing to follow.

What Will You Say?

It’s been such a long time
And I was just a child then
What will you say when you see my face?

Time feels like its flown away
The days just pass and fade away
What will you say when they take my place?

It’s funny now
I just don’t feel like a man
What will you say when you see my face?

Mother dear, the world’s gone cold
No one cares about love anymore
What will you say when you see my face?

Father do you hear me?
Do you know me?
Do you even care?
What will you say when I take your place?

Well my heart can’t take this anymore!
What will you say when you see my face?

I can feel your time crawling
to a slow end.
I can feel my time crawling
to a slow end.

Mother dear, the world’s gone cold
No one cares about love anymore
What will you say when you see my face?

Father do you hear me?
Do you know me?
Do you even care?
What will you say when you take my place?

Well it’s funny now
I just don’t feel like a man
What will you say?

–Jeff Buckley in concert