Magazines, Books and Articles

Friday, July 15, 2011

Great People, Great Teams

Bill Taylor’s post Great People Are Overrated on the HBR Blog Network has generated a lot of heat. His post was triggered by a statement Facebook CEO Mark Zukerburg made in an interview: “Someone who is exceptional in their role is not just a little better than someone who is pretty good,” he said. “They are 100 times better.” It emphasised what Marc Andreessen had told him: “Five great programmers can completely outperform 1,000 mediocre programmers.”
Bill Taylor does not agree with them. He goes on to make a case that a team of average performing individuals is better than high performing superstars, and concludes: “Most of business life isn't really a choice between one great person and 100 pretty good people, but if that is the choice, I'm not sure I'd make the same choice as Mark Zuckerberg — especially if those 100 pretty good people work great as a team.”
The last I saw, his post had received 272 comments, mostly from software practitioners, and the majority pilloried him.
Here are some samples:
“This article demonstrates such profound lack of understanding of the art of managing technology projects that I don't even know where to begin disassembling the profoundly wrong-headed people-as-widgets abstraction the author has attempted to apply to the field.”
“Yes, this article is vociferously ignorant about the reality of large-scale software engineering. I started writing a comment about it, but I realized that it is a supreme waste of my time to try to build up an explanation from the ground up. Suffice it to say, Bill Taylor needs to go back and read The Mythical Man Month.”
“... would you rather have one Shakespeare or 100 Bill Taylor's? ...”
The Indian software industry also finds mention:
“The big software giants in India have close to 30,000 warming up the bench. Put 10,000 of them together and you still cant make a Google.”
“If only a large number of average software engineers were required to create great software, India and China would kick the ass of every U.S.-based software company.”
Bill Taylor followed up with Great People Are Overrated, Part 2.
I contributed my 2 cents to the debate: “I read this recently: Boeing went downhill after their primary strategic focus shifted from being passionate about building great planes, to a focus of delivering ‘shareholder value’. Bill Allen, the Boeing CEO from 1945 – 1968 described their purpose as to ‘eat, breathe, and sleep the world of aeronautics’. The downhill spiral began when the new Boeing CEO, Phil Condit explained the new focus ‘we are going into a value based environment where unit cost, return on investment, shareholder return as the measures by which you’ll be judged’.
If a business has the ability to manage high caliber talent, it can create teams passionate about their work. Customer value, shareholder value fall in place. You then have a business with a very long lifespan. Business that focus on profits try to build around teams of average talent. The passion is missing, it’s a 9-5 job. Business has to make extra efforts to achieve customer and shareholder value. On the technical front, it plods on. Which business would you work for?”
And a few days ago I came across this: When Smart People are Bad Employees.
My take on ‘Great/ Smart’
I agree with Bill Taylor that a team is the way to go - the sum is greater than the individual, etc. I agree that a maverick superstar is not upon whom you can sustain a business.
I do not agree to the composition of the team that he advocates - “100 pretty good people”. I also do not agree to his implied surmise - correct me if I am wrong - that a superstar is a maverick and prefers to work alone.
I have worked with many individuals I would like to work with more often. Why? These are some of the traits I observed in them. I’m not sure if these traits make them superstars, but they certainly are very passionate about their work.
a. Humility.
Remember Isaac Newton, considered as one of the two (the other being Albert Einstein) who has had the greatest effect on the history of science. In a letter to another scientist, he wrote: “..If I have seen a little further, it is by standing on the shoulders of Giants.” And in his memoir: “..I do not know what I may appear to the world, but to myself I seem to have been only like a boy playing on the sea-shore, and diverting myself in now and then finding a smoother pebble or a prettier shell than ordinary, whilst the great ocean of truth lay all undiscovered before me..”
Humility keeps you grounded. You know and acknowledge there are others around you equally good if not better; you know there are more things to know and learn. It’s the trait of a superstar individual.
b. Understand the importance of collaboration.
In engineering, it takes engineers from different disciplines to complete a project: mechanical, electrical, civil, process. These disciplines are themselves so vast, that you have mechanical engineers who are specialized in piping or boilers or fabrication; electrical engineers who are specialized in low voltage circuits, or high voltage circuits, or lighting systems; civil engineers who are specialized in structural engineering or environmental engineering; process engineers who have specialized in different process lines. And many of these specializations have super specializations.
In software, technology evolves at breakneck speed, making it impossible for an individual to keep up on all fronts.
No individual can know all that is required to complete a project. Collaboration then becomes very important, and the smart ones know this instinctively.
c. Honesty.
Individuals who understand the importance of collaboration are straight forward people; honest, with themselves, with others. They know their strengths and skills and these they willingly share; they know what they don’t know, understand it is not a weakness, and they own up to it. This makes them receptive to learning.
There is absolutely no hidden agenda. If such an individual is looking for another job, his supervisor will know. When he leaves, he won’t be secretive of where he is going to.
d. Continuously evolve.
When fresh engineers enter the work force, they are full of enthusiasm, ready to make a mark. On a project, they are lost. Engineering, including software engineering, in practice, is not like they taught in college. Internship helps, but it depends on where you interned.
Smart individuals evolve. It starts with whatever code they know, then they get a better grip on the language they use, they learn and practice design principles and patterns, evaluate and assimilate new technology, understand software processes, they evolve to create architecture, work on their communication skills, manage projects, take on added responsibilities willingly, and so on.
It is hard work they put in, they are focused on their evolution. Software is a career to them, not a job. They train and re-train themselves continuously. They have learnt to learn - and unlearn. They have great energy about them. They are an inspiration to others.
e. Think
These individuals have the ability to think through a requirement, a problem. They spend a lot of time on this. They use pen and paper, or a white board; they brainstorm, if required. Eventually, when they write code, it takes them a fraction of the time they put into the thinking.
Such an individual may take the same time to complete a given task as an individual who rushes to code. My experience is that the work turned in by the former meets the task objectives, conforms to best practices, requires no or little re-work, and has way fewer bugs. This trait alone makes them worth their weight in gold.
f. Have interests in areas other than software.
These individuals invariably have other interests too. Some do community work, many play musical instruments, play games, spend quality time with family and friends.
Does the Indian software industry nurture such talent?
The business model of the Indian software service industry is focused on selling a ‘resource’ - they don’t even term them people - at the highest possible dollar value. This looks like a win-win situation for everybody: the resource gets paid well, the provider makes a decent profit and it still works out cheaper for the customer. The resulting onrush of outsourced work has given rise to a cottage industry of private and public institutions who churn out MCAs, Computer Science and Information Technology graduates by the thousands, a majority of whom can’t write a select statement to retrieve data from a table in the database, think OOP is another way of procedural programming. The workforce, in general, lacks quality, and as a consequence, the industry is highly inefficient.
The Indian software service industry is a very frustrating one for talented people.
Will this change? Not very quickly. The industry operates in its comfort zone and is unlikely to bring about change on its own. It will have to be pushed to change. Some forces, on the horizon at the moment, may provide this push:
• Countries in South East Asia, Eastern Europe, Latin America already provide the same level of service we do and at a cheaper cost. We may argue that we have a much larger population of software developers, but China is catching up.
• The USA and Europe are yet to fully recover from the last recession and this has led to protectionist actions. If the past is any indication, the upcoming US Presidential election will only tighten this trend.
• And the cloud. I am not sure the Indian software service industry understands how to embrace this. When it does it will have to change the way it does business.
If these forces mature and act in unison, the industry will be forced to provide service and quality and innovation. It will have to morph from being a cheap resource provider to one that “eats, lives and breathes the world of software”.
It is then that talented people, and teams consisting of them, will come into their own.
I hope I live long enough to see it happen.