Wednesday, October 14, 2009

so, today....

Today my boss and I mutually decided that I should be a contractor instead of an employee. If you've been following me on twitter or facebook or heard me moan for the past...a long time...you'll know that we haven't gotten along well in the last several months.

This is one story that I hope to relate to in a minute. We are near the end of a large project. A couple of weeks ago the boss feels it's in jeopardy so he starts flailing around like it's an emergency. He says that if he has to bring more resources on, he will.

Now, dear reader, you may not be versed in the experiences of software engineering. So let me introduce you to a classic of the software genre, the Mythical Man Month. Dr. Fred Brooks wrote this after his experiences working at IBM in the 70s. Probably the most famous part of the book is Brooks' Law, which states, "adding people to a late project makes it later." It's over 40 years later, and it's still a Law for a reason. It has borne itself out over and over again.

My boss apparently think it doesn't apply to him. I said something like, "It bothers me that you neglect/ignore 30-50 years of software engineering experience." He says something like, "I'll do what I need to do and what I believe in."

Here's the thing. While I know he has faults that he clearly doesn't and refuses to recognize (namely, narcissism, an inability to admit fault, difficulty admitting mistakes/responsibility, and a terrible time listening), I can't help but feel that I was at fault. Or that I did something wrong.

If you've known me while I'm working, I have an extraordinarily high standard. You don't have to be a good programmer, but you have to care. You have to be mindful of what you're doing and the ramifications and consequences of it. When I make a change in the software, I should be aware of what I am breaking if anything, what are the consequences, etc. You have to try to improve. If you know me, you'd think I'm nuts because I seem to have a high standard for a lot of things. If you do something stupid, fine, but don't keep doing it.

I was very, very outspoken towards him. I kept thinking or hoping he would want to improve, to have processes that work better. We still have not released our core software product, almost 2 years since I've been working for him. Things like small iterations and service packs are foreign concepts. Drives me crazy - again, try to learn from the experience of others.

I was a terrible employee. I feel to blame.

Should I? I mean, the guy is belligerent. I have no idea how you can run a software company and willfully ignore the experience of so many that have come before you.

The purpose of becoming a contractor was just to change the relationship. I don't want to care about the mistakes he makes. Ultimately I still do - anyway I get a paycheck is dependent upon his success or failure.

And that's what I am conflicted about. To him, I think success is being himself and doing his thing. I don't. I think success is meeting his potential. He is limiting his potential by doing what he believes in.

That bothers me. I have no idea why but it does. I wish I could encourage folks to move beyond their knowledge and see if there is something better. I have a hard time encouraging that without getting angry myself.

Anyway...

1 comment:

lance said...

wonderful post. i relate to most of it.