Category Archives: Uncategorized
Just writing this to inform you that I’m switching blog platforms, head over to Medium to read more recent material. 🙂
Part of the reason is that I will soon no longer be a CTO. Starting after the summer I’ll be project / process / change management consultant, and will focus more on that in my new blog.
I’ve been a manager for several years now. A leader? That, I’m still working on.
Leading is difficult stuff. Managing, I’m actually quite good at. Leading people, now that’s a totally different ball game. There are all sorts of mushy, feely stuff involved. And when I said it was a different ball game, I did that because I’ve heard there’s coaching involved. It’s not enough to find great people, apparently you need to help them get even better. This isn’t going to end well.
As I mentioned recently, I just want us to not suck. Surely people should be able to do that all by themselves. No? So now I have to pretend to like people (I’m a hopeless introvert that would probably be better off living in a cave on the top of some remote mountain) and even try not to hurt their feelings when I tell them to suck it up and.. well, not suck.
Luckily, I read a lot of books (good cave activity). The other day I found one that reminded me that even as a leader, especially as a leader, you’ve got to tell people what they need to hear, not what they want to hear. You just got to tell them nicely.
So when I tell people I don’t want them to suck, I try to do so nicely. I start by asking them about their day. And then I tell them please don’t suck.
Seriously, I tell people when I’m not happy about something, but I try my best to assume good intent. If someone did something wrong, they probably didn’t mean to. And if someone did something wrong, at least they’re doing something. And they’ll most likely do it different next time around. So by doing the wrong stuff, they’re actually improving. Hey, that’s what I was supposed to help them with, wasn’t it?
Maybe I can become a leader, after all?
Rest assured that on those rare occasions I do come across as a leader, I will be dead set on coming across as a good one. There are so many bad bosses out there, I’m not sure there are even room for more.
Even though I still find it challenging to improve others, I work hard on improving myself. In one year, I will be a better leader than I am today. In three years I will be even better. In five, the people who work for me will go “Hey, that shit you just said actually made sense!” when I tell them stuff.
Until then, I guess when I’m not managing, I’ll be in my cave. Reading. Probably about self managing teams and silly stuff like that. I mean, if the guys managed themselves, what on earth would I do?
The main problem with sharing information, is that most of the time people just don’t listen very well.
“What do you mean the project is late?!”
“Boss, It was always going to be late. It was doomed from the start.”
“So why the hell didn’t you say so?”
“Actually, I did.”
Being a software developer isn’t easy. Working on projects that don’t deliver as expected are common. However, most software projects don’t end up late unexpectedly – they were bound to be late before they even started.
Let me share a few typical reasons:
- The project manager allocates 8 hours of your time to the project each day, even though he knows all too well that you spend 2 and sometimes even 3 hours per day handling support, production issues and answering questions from management and sales. Some days you even have lunch, even though it’s against company policy. Now you’re 20-30% behind schedule already. Swell!
- Someone set a deadline before anyone have a clue what to solve, and much less how. In reality, most deadlines don’t even signify an important event for the project or product. It’s just an artifical date set because the customer decided “It has to be done by December 1st!”. No, it really doesn’t.
- You’re only allowed to spend an absolute minimum amount of time analyzing customer needs. And by all means, don’t attempt to figure out the best way to solve the problem. “The deadline is set already, we don’t have time to sit around thinking and wiggling our toes! Start DOING something, for heavens sake!”
- Management ignores any concern or warning voiced by the development team, and the team accepts any assignment, however unreasonable. “But boss, this is never going to be done on time!” “Well, it has to be! You’ll just have to find a way!” “Oh, okay. I guess we’ll have to figure out a way to deliver everything you’ve promised on our behalf without reducing quality or functionality. I mean after all, we’re basically wizards over here.” No, I’m afraid you’re not.
Bosses and sales people insist that you try to deliver, however unrealistic the goal may be. “We can’t let the customer down!” In the long run, giving in to unrealistic expectations actually hurts the customer. Each time the development team takes on more than it can handle, it compromises either quality or time. More time spent on one customer, means less time spent on another. Delivering bad quality and bugs, means even less predictable availability later on.
In order to satisfy all our customers in the long run, we need to be as effective as we possibly can, and deliver consistent quality at a pace that the team can handle over time. That may mean some difficult discussions and difficult decisions. However, it is better to adjust the expectations of the customer now, than to disappoint him with an inferior product or a missed deadline later.