It’s Better to Have Great People Than a Great Process

greatteamImagine you had a team of ace software developers. This team is fabulous. They know how to get stuff done. They work well together and they work well with other teams. They always find a way to deliver good software.

Now imagine that they are given a terrible software development process to follow. The process is big, complex, redundant and bureaucratic. Every decision has to be validated, reviewed and approved. They are also given inadequate tools, poorly defined requirements, and a poor project manager. How could any team possibly succeed in such circumstances!

Yet, great teams overcome enormous obstacles. They find ways to succeed no matter what it takes. That’s what great teams do. They rally. They swarm. They fight. They win. The underlying process is simply a formality. The poor support structures are mere impediments.

The Opposite Won’t Work

Now imagine the opposite. Your team is given the world’s best software development process. This process is lean, efficient and simple. Many teams have followed it and its track record is nearly perfect. The team is also given excellent tools, clear requirements and a terrific project manager.

Unfortunately, the team members are rejects from other software development teams. They struggle with every decision. They argue amongst themselves constantly and they argue with everyone around them. They can’t agree on anything. Will this team find success by following the perfect process and having a great development environment?

No, they won’t. No development process, management support or technical training will save this team. They’re doomed!

Your Team Needs More Great People

Of course, real world software development teams are a mix of great people and not-so-great people. That’s why we need good processes, good tools, and good management support structures. These added elements help with team discipline and offer a path to consistency.

Want to improve your software development track record? Hire better quality people and pull all the stops to retain them. As for the poor performers, reassign them or fire them. Just get them off the team. They will only drag everyone else down.

It takes great people to build great software.

photo credit: michaelcardus via photopin cc

Updated: May 14, 2013 — 10:29 pm

7 Comments

  1. Good advice. How do you get ‘great’ people? There are only so many of them going around. And if everyone follows your advice, it sounds like there could be intense competition for ‘great’ people driving the price up beyond affordability.
    Of course, then there is the issue of defining ‘great’. You have not defined what a ‘great’ person is. I suppose anyone who performs in a way that is successful without needing a process might be great?
    Grady Booch and Barry Boehm among many others challenge the notion of acquiring only ‘great’ people by pointing out such people are perhaps the top 10% of the available population, and how many organizations can staff their needs with only the top 10%?
    How do you get the bottom 20% or the middle 20% to perform successfully? Give them a process to follow, at least until they can learn to be ‘great’.
    Other than those issues I agree with Tom DeMarco’s somewhat tongue-in-cheek answer to always having project success:
    ‘Get the right people
    Make them happy so they don’t want to leave
    Turn them loose”
    Mr. DeMarco, perhaps purposefully, does not mention how to define or find the “right” people, nor how to keep them happy.

    1. Terrific comment, Steve! “Great” is a relative term. I don’t think of great people as being only 10% of the population. Those folks are the movers and shakers. They drive organizations to new heights. You only need one of those on your team.

      Being great can be as simple as enjoying what you do, working hard, and keeping your commitments. You don’t have to be a genius or have brilliant insights. You can focus on one narrow skill area and be great at it. That’s all it takes. Perhaps being great is simply a matter of being the best you can be.

      1. That is a nice description of what someone might do or the attitude someone might have to be considered “great”. However, your reply does not tie back to your blog. You are suggesting that the employers and organizations hire these great people, not that they be the great people, so how does the organization know a person is the best he or she can be?
        Since you have apparently reduced the qualifier from “great” to “better than average” you are still talking about a 50-50 chance. Again, not every company can have this better than average person. Mathematically speaking, of course.
        Here’s the thing: you are coming from an agile perspective, of course, citing the first tenet of the Manifesto. Cool. If we have the great people, like Kent Beck, Ron Jeffries, Ward Cunningham, Eric Gamma, Jeff Southerland et al, we don’t need a process, and in fact don’t need agile.
        However, we don’t. So here is the irony. Scrum. XP, FDD, DAD, and all the rest have very specific processes that, according to the agile pundits and coaches must be followed exactly in order to work correctly, ‘great people’ or not. I find a bit of a paradox here: if you don’t need a process to develop software successfully, just great people, and agile espouses having great people (as you describe) then why do the agile processes place so much emphasis on their processes? Why not instead emphasize creating ‘great people” per your description? Unless, of course, there is no way (or ‘process’) to create or engender ‘greatness’ into people?

        1. As my blog post says, “Of course, real world software development teams are a mix of great people and not-so-great people. That’s why we need good processes, good tools, and good management support structures. These added elements help with team discipline and offer a path to consistency.”

          I stand by my definition of great.

          1. Good point. But, again, how do you know? It’s easy to tell the top 10%. But how do you know someone is great until you have worked with them for a while?
            Your blog seems to espouse a philosophy similar to the recent trend in companies to remove the bottom 10% of the workers annually, thus always improving the entire work force. Are you really suggesting that if someone does not measure up, you should get rid of them? Do self-organizing teams have the authority to kick people off the island? Is the determination of who goes a ‘gut’ feeling that the other person is not as committed as I am? I am also seeing a paradigm I witnessed in the US Federal government wherein, because of the paperwork and time involved with removing a weak link, the person was instead transferred from team to team returning occasionally like a bad penny because they had to leave one team and the only available position was back on the original team).
            I agree with the philosophy of obtaining ‘great’ people. It is the cry of (or perhaps to) Human Resources for centuries. The managers’ plaint for centuries has been ‘get me good people and I can change the world’. Movies such as Magnificent 7 (and just about any movie where a team of good guys beats an army of baddies) espouse the concept of “A Few Good Men”. My question is, since you are bringing it up: how do you do it? And how do you maintain it? Or is it good enough just to say it?

          2. Well, Steve, when dealing with people, there are no simple answers. Human beings are complex organisms. We change continuously. We are often unpredictable. At times, we are even irrational.

            Even if you could hire a great person today, would she still be great in a year? The organization will change. The person will change. What is a great match today, may be a poor fit in a year. Who knows? Ultimately, it’s a judgment call. Hiring and nurturing great people is hard to do. Every company and every hiring manager must make their own decisions. There is no secret formula. (Though it’s interesting that small companies are much better at it than large ones. Go figure!)

            As for getting rid of poor performers, yes, that has to be done also. It’s better for the team and it’s better for the person who is not fitting in. Each of us needs to find an environment where we can excel. Just hanging on and hoping things will improve is a poor choice for both parties. The alternative is to hire temps and contractors who are easier to replace. (And, please don’t talk to me about the Federal government. We all know how bad they are at getting anything done!)

          3. I think I understand, Vin. I did not mean to be critical. Since I assume that everyone – hiring manager, project manager, agile team, CEO – is looking to hire or grow “great” people or at least ‘great’ workers, I figured that suggesting that we do so is somewhat redundant or lily gilding. Of course we want great people, and we want to keep them great. And of course we should take steps to keep our teams great by removing the impediments, including non-great people, except of course for some organizations not to be mentioned again.
            As a result of this assumption, I also assumed there was something else behind your comments, perhaps some insights as to how to acquire the great people, retain them, and maintain their greatness. I apologize for my persistent questions in an effort to unearth those insights.

Comments are closed.