Monday, April 8, 2013

I've been managing software developers for well over 15 years. As a software developer myself, I've done better than most, figuring out how to make the projects that I'm in charge of successful. Counting up the projects I've worked on and looking back on how they've turned out, I found the success rate over my entire career as a manager of developers is just north of 80%. That makes me feel pretty good. As a reality check, I Binged “what percentage of software projects fail or succeed”. With 14 million hits, I didn't have time to go through and add them up, but most of the results that had research behind them indicated that the success rate across the industry is less than half. Many studies put it at far less.

That's not to say that I haven't made mistakes. I have, and plenty of them over the years. Some of them were epic. Also, I don't take credit for everything. Some of my projects were saved or doomed by things beyond my control. Some days I just got lucky. Also, I'd like to say that my success rate has improved over the years, but it hasn't really. It's been more of a constant struggle than a learning curve.

What's the secret to successful projects? I don't pretend to know for sure or that what works for me will work the same for you, but I am willing to share my experiences with you, and that's what this column is about. I understand that there are very good reasons for the low success rates in our industry. Creating software is hard! On the other hand, I think we must improve. I'm not especially proud of being in an industry that still fails more often than it succeeds.

For this issue, I want to talk about a way of thinking about managing that HAS worked for me. It's the concept of “it is what it is,” and originally I learned it outside of work while trying to figure out how to cope with an unpleasant situation. Simply put, we tend to spin every piece of knowledge that comes to us by trying to fit it into what we already know and believe. It's not a bad trait and in fact, it works out very well most of the time; it doesn't take a lot of brain power and we can process information and make decisions very quickly. The downside is that we're sometimes wrong (I know! I couldn't believe it either) and thinking this way all the time makes us wrong for much longer than we need to be. I don't like being wrong and even more than that, I don't like to admit being wrong. But the fact is that we're all wrong a lot more often than we'll admit to.

The phrase “it is what it is” resonated with me for some reason. When it was said to me, I realized that I was wrong, whether I admitted it or not. The facts were as clear as the nose on my face, but they didn't line up with what I thought and I didn't see it because I hadn't taken the time to step back and look at it objectively. Taking that step back and looking at things objectively is part of my job and I must do it in order to do my job well. So I bucked up, did my job and said I was wrong and things improved.

I began to realize that I have better outcomes when I quit being wrong and start being right as soon as possible. The more I practice taking a fresh look at things, occasionally by looking at measurable things and by being brutally honest about the outcomes I see, the more I find that I'm not necessarily wrong because of some bone-head move or big mistake. It's usually just something I didn't know at the time or hadn't re-evaluated in a while. I am now kind enough to myself to say: “I was wrong, that isn't working, and it needs to be changed.” To my astonishment, I find that admitting when I'm wrong and fessing up when I don't know something has made me more credible instead of less. Go Figure! It turns out that everyone knew when I was full of it after all, despite how much I believed they didn't!

Lest this sounds too much like a self-help book, I'm telling you this in my professional capacity as a manager of developers and development projects. You can do more with it if you like, but speaking purely within the confines of our jobs I find that many of the things that have worked for me are built on this idea and I think it's worth sharing that. If you can't bring yourself to admit that you're wrong outside of work, I honestly don't care. If you can't take a fresh look at how things are really going in your project and your team and say: “I was wrong about that and we need to do this instead,” then it's hurting your team. You need to step up and be a professional.

If you manage developers, please write me and tell me what your personal success rate is and over how many projects and how many years of managing developers. Be honest. Remember, “it is what it is,” and pretending it isn't doesn't help any of us. If you want to be anonymous, create a free Gmail account. I'll post the results in a future column.