Practice 12. Build High-Performance Teams


Per Kroll

Build high-performance teams by defining a set of values and nurturing those values through everything you do.

Problem

As Walker Royce observed, "Software development is a team sport." To develop software, you need people with different functional responsibilities: analysts, architects, developers, testers, configuration managers, project managers, and so on. Further complicating matters, you may have people at different locations with different cultural backgrounds and different personal objectives. All of these variables make it harder to build cohesive teams.

This practice looks at what it means to have a high-performance team and how you can create one. A high-performance team is a cohesive team that collaborates effectively to accomplish agreed-on goals within provided parameters.

It should be noted that this practice may not be appropriate for all cultures or all companies. Your team should adopt a culture only if it is compatible with the overall culture within your company and society. Consequently, it may not be possible to implement all the guidelines in this practice within your team.

Background

Before we dive into the specifics of building a high-performance team, let's look at the importance of influencing the culture for your team and then elaborate on the differences between a team and a family.

Influence Your Team Culture

Each organization has a different culture, and you need to live within that culture. But you can often fine-tune or extend that culture in one or two areas, as long as your modifications do not go against the core values of your company. Let's look at one area that it is critical to address if you aim to build high-performance teams.

Some organizations are content with average people. They may build a culture in which all employees keep their jobs, no matter how poorly they perform. In such an environment the needs of the individual are always considered more important than the needs of the team. Such organizations will have some great teams, some bad teams, and some mediocre teams, but most teams will be mediocre or poor. Still, this may be a winning strategy for some organizations. A combination of lifelong employment resulting in low turnover and correspondingly low rehiring costs, relatively low salaries, and slow and steady project performance may lead to business successespecially if software development is a noncritical business aspect of the organization.

Other organizations focus on employing only superstars. Superstars are put in the spotlight and given all the rewards. The culture of such organizations emphasizes individual performance over team performance. When forced to make difficult choices between team cohesion and star performers, management will decide in favor of the star performers. This strategy can be very successful, especially in a highly dynamic industry focused on explosive short-term results rather than solid long-term performance. Those of us living in Silicon Valley saw this model become extremely popular during the Internet bubble of the late 1990s, only to decline somewhat after the bubble burst.

This practice will discuss a third type of culture. Looking at how to build a high-performance team that can sustain solid results over an extended period of time, we explain how to build a culture that nurtures both individual and team growth, in which the needs of the team are balanced against the needs of the individual and turnover is low because team members feel that they make a difference and are appreciated for their contribution.

A Team Is Not a Family

Sometimes people try to make a project team feel like a family. That may be the right thing for your company and the teams you try to build, but it is not consistent with building a high-performance culture. So what is the difference between a team and a family?

The greatest thing about your family is that they are always there for you. They encourage you to succeed and support you in all your endeavors. No matter how badly you fail, your family is there to help you out, even when you do not deserve it. Ideally, a family is willing to do whatever it takes to help other family members, no matter what the situation.

Imagine you are a member of a successful sports team. When you practice, you all try to help each other to become better players. You know that your team will only win if everybody is at his or her best. A player who is not good enough when the season starts is left off the team. And if a player is extremely skilled but does not get along well with the other team members, you try to find a way to integrate that player into the team. If nothing helps, you have no alternative but to remove the high-performing, but disruptive, team member.

If, in the middle of a game, you notice that one of your team members is not performing, other team members will step in to try to help. Maybe the player is tired, and just needs a few minutes to rest before returning to optimal performance. You always try to do whatever it takes to get the person back to being a high performer. But if the poor performance continues for some time, you will replace the person with another player, either during the game or at least before the next game. Similarly, in a software team, team members do whatever they can to help other team members be at their best, but if they still cannot reach a certain standard, the team has to let them go.

The previous discussion demonstrates how important it is that you should not think of a team as a family when it comes to building high-performance teams. Let everybody in the team know where the bar is, do whatever you can to help people rise above the bar, and keep only the people who can perform to your standards.

Such an environment may sound unpleasant to work in ("Will I be laid off tomorrow?"), but it is not, at least not for high performers. People who are temporarily not performing will be given plenty of warning, and plenty of help, since you want them to succeed. You may change people's positions to find them a job where they can not only succeed but excel. However, team members unwilling to put in the energy it takes to succeed or unable to perform above the bar because they just do not have what it takes will have to leave the team. That is part of the deal.

Low performers will not like this type of workplace. They will not seek a job in such an environment, and they will often leave such an organization voluntarily rather than wait to be fired. This self-selection is a good thing, because it means that once you have established such a high-performance culture, the forces in place make it easier to maintain a high-performance team.

A family is based on unconditional love and support.


The bottom line is that whereas a family is based on unconditional love and support, and as such does not push out or abandon other family members who are less capable, a team is based on effective collaboration to achieve common objectives. If certain team members cannot or will not be valuable contributors, you should first seek to improve their performance; but if that approach does not work, you must remove those team members from the team.

A team is based on effective collaboration to achieve common objectives.


Applying the Practice

Building high-performance teams is difficult. It may be possible in situations of turmoil to achieve results quickly by hiring a lot of new people, but you have to change the culture more slowly when managing teams in stable environments. Building high-performance teams is an ongoing effort; you are never "done." You must instill the appropriate values and provide organizational clarity. You must hire the right people onto the team. You need to build trust among team members to ensure that they work well together, and you must help them establish the right means of communication. Finally, you need to get people excited about being on your team, that is, you must be able to "create a winning team." Let's have a look at each of these topics.

Instill the Right Values

To build an effective team, you need to have shared values that provide a set of explicit and implicit rules to live by.[3] These values provide a foundation for the interactions among team members, guiding your team in what is desirable and accepted behavior and what is not. The values constitute a manual against which you can assess alternatives in your decision-making process. Lack of adherence to a set of values will likely cause friction among your team members and make it more difficult for them to make appropriate decisions in their daily work. But how do you establish a set of values that can guide your team and help build team cohesion?

[3] Lencioni 2000.

First, focus on a small set of critical values. Many values are potentially desirable: honesty, breakthrough thinking, customer focus, quality, fairness, devotion, customer success, revenue focus, fiscal responsibility, community involvement, integrity, ethics, teamwork, and so on. Identify a small set of values that can be used to differentiate between a good and an excellent performer in your organization. Look around you. Pick out your star performers, and identify the values they demonstrate that the average performers do not.

Identify the values star performers demonstrate.


Second, values need to be continuously communicated. Over the last few years, value posters have become common in the corporate world. You see posters extolling the importance of teamwork, integrity, and so on, but these posters risk being laughed at if they become the primary way of communicating values. Discuss the values of your team when you recruit new team members or when you start a new project. Does each team member understand the values, and are they committed to adhering to them in their work? In team meetings, make sure that the values of the organization come across as you discuss your work. If one of your values is customer focus, explain to your team how a new feature being added relates to that value. As you praise people for the work they have done, explain how they showcased the values of your team.

Values need to be continuously communicated.


Another important communication vehicle is that of rewards, which leads us to our third important way to establish a set of values. Your reward system can support adherence to your organization's values in many ways. You may institute special rewards, such as being able to attend more conferences or courses, or having greater input into what projects to work on. If you want to promote teamwork, also make sure that some of the rewards are given to the team when they meet their collective targets, not just to individuals when they meet their individual targets. Adherence to values must be an essential part of the standard performance evaluations that determine bonuses, raises, and promotions. The best way to make people abide by a set of values is to ensure that such behavior really pays off and is truly valued by managers at all levels of the organization.

Adherence to values must be an essential part of the standard performance evaluations.


As an example, in my organization we do rankings every six months. During the ranking sessions we discuss how each person has performed relative to our established values, ensuring that both the management team and the employees truly understand and live by the values of the organization. To excel, therefore, you need to reach out to the extended team, drive collaboration between your team and other teams, show that you can effectively mentor other team members, and help the extended team to improve their performance. You cannot just do a great job on your individual tasks. When you use ranking sessions, it becomes obvious that the organization really lives by its values. If you want to get promoted, if you want to receive bonuses, you need to leave your ego at home and focus on team performance, innovation, and respect in all your relationships, in addition to customer success.

Provide Organizational Clarity

For your team to work effectively, all team members need to understand and agree on the answers to some basic questions, including the following:

  • What is the mission of your team?

  • What is the vision of the application to be delivered?

  • How will you measure team success?

  • Who are your project stakeholders?

  • How will you measure project success?

  • Who is responsible for what?

  • What procedures should you follow to carry out the work?

Providing clarity around these issues is essential for effective teamwork. In a RUP project you find this type of information in the Vision Document, Software Development Plan, and Development Case.

Hire the Right People

Hiring is your most important decision. We cannot overemphasize the importance of getting the right people onto your team.[4] Obviously you need to ensure that the person you hire has the right skills, but there are also other considerations.

[4] See Rothmann 2004.

  • Does the person share the values of your organization? Will this person fully adopt and live by the value system of your organization? The answers to those questions are not typically found by asking straight out whether the potential team member "wants to work in a high-performance team" or "respects and trusts their team members." The appropriate answer is obvious, and few people would answer no. Instead, when recruiting you should pose behavioral questions, asking the interviewee to recall his or her behavior in a particular situation, thereby revealing attitudes that the answer to an abstract, theoretical question would not. For example, you could find out whether or not a candidate trusts/respects the people he or she has worked with in the past by asking, "Tell me about a time you exercised leadership in a situation where you knew not everyone in your work group was supportive of your idea." As the interviewee spins out a tale to answer your question, he or she is much more likely to give you useful information than if you had asked simply, "What is leadership?" or "How do you get along with other people?"

    Ask the interviewee to recall his or her behavior in a particular situation.


  • Do other team members respect and support the person joining the team? It is a good idea to have eight to ten people in your team interview any new people, even when you know that they are qualified. It helps the team gel, and team members cannot then say that they were never asked for an opinion. Sure, not everybody in a larger team can interview every new team member, but to the extent possible, you should make sure that people are (1) aware of who is about to be employed and (2) have a chance to give their opinion. Sometimes you need to go against the advice of some people on your team, but even in those cases, you can have a clear dialogue explaining why you disagree and why you still plan to recruit the person.

  • Does the person have a feel for your team and project? By having the new person interview with a large cross-section of your team, she or he will hopefully know ahead of time what the team environment is like. Each team member will hopefully communicate some of the team values, and if there is a mismatch, the new person may choose not to join the team.

Build Trust

Trusting your peers means trusting that they will not try to harm you.


Many people think that trusting your peers means not questioning the quality or correctness of their work. Nothing could be more wrong.[5] Trusting your peers mean trusting that they will not try to harm you, and that they will consider only what is best for the project. When you trust your peers to this degree, you will be glad when they (constructively) provide feedback on your work to help you improve, question your conclusions, or ask you to improve the quality of your work. You know that they are just trying to help you to be a better team performer.

[5] 5. Lencioni 2002.

If your team meetings are boring, you probably do not have a high-trust environment.


A team built on trust is a team that has a lively and healthy debate about issues and project risk. If your team meetings are boring, you probably do not have a high-trust environment. During team meetings in a high-trust environment team members engage in heated discussions on how to solve various problems your project is facing and often challenge the way the project is currently being executed. At the same time, people respect each other. They let people finish making their point rather than interrupting them. They admit when they were wrong, and they give credit to whoever came up with great ideas. They attack the issue, not the person. They believe in challenging each other and being open to new ideas, not bringing down other team members.

It is sometimes difficult to encourage healthy feedback and lively debate in projects. As Patrick Lencioni points out in his admirable Five Dysfunctions of a Team, "It is only when team members are truly comfortable being exposed to each other that they begin to act without concern for protecting themselves. As a result, they can focus their energy and attention completely on the job at hand, rather than being strategically disingenuous or political with each other."

Often, cultural differences get in the way, and in many cultures (including some parts of the United States) people are very careful not to say anything that can be construed as direct criticism of another team member. Also, in some cases certain team members are elevated to a "super hero" status, making it virtually impossible to challenge their judgment. In those situations you must continually push for a more open and direct form of communication, stepping in if necessary by asking pointed questions when you feel that other team members are too vague or indirect to open up a challenging discussion.

Establish Rules of Communication

With all of today's communication technology, you might think that communication is no longer a big issue. Wrong. Although we have the tools we need for effective communicationcellular phones, telephone conferences, instant messaging, videoconferences, team rooms, and discussion technologythese technologies are often used inappropriately and in fact even get in the way of effective face-to-face communication.

Tools for effective communication are often used inappropriately.


Especially when you have distributed teams, it becomes essential to establish some rules of communication to maximize effectiveness and team cohesion. You may want to consider some of the following rules:[6]

[6] Also see Cockburn 2002 and Ambler 2002.

  • Encourage face-to-face communication whenever possible. For example, if you have to have a telephone conference with participants at other sites, have all participants at your site get together in the same conference room, rather than having them call in from their individual desks.

  • Use phone discussion or face-to-face meetings to resolve e-mail debates. An e-mail debate that has led to two series of responses (B responds to A, A responds back to B) must be followed by a phone call or face-to-face meeting between A and B to minimize confrontation and endless e-mail discussion. The resolution coming from the phone conversation can be summarized in an e-mail to all participants.

  • Consider forcing all team members in a distributed team to use instant messaging. The ability to see which team members are at their desks makes it easy to resolve minor issues quickly through instant messaging or over the phone. Some teams working in multilingual environments find that instant messaging actually works better than a phone call, since some team members may have problems communicating orally with other team members.

  • Strongly encourage joint lunches or other get-togethers that are not directly related to work. This tactic strengthens team cohesion and allows a lot of work issues to be resolved in their infancy while team members enjoy each other's company. Often, new ideas are brought to birth that would otherwise not be voiced. The increasingly common practice of eating lunch at one's desk while trying to work is in fact highly inefficient. It leads to a loss of productivity and reduced team cohesion.

  • Consider using team room capabilities, allowing you to have one place for all team-related activities and artifacts. Provide repository-based tools, making it easy for all team members to reach current requirements, defects, and other relevant information. Leverage a common version control system for versioned artifacts.

  • Place team members in close proximity to each other. To facilitate osmosis of information, whenever possible place team members in the same room or in close proximity to each other. Make sure that you use the same water fountain and soda machine, and that you constantly run into each other.

Create a Winning Team

Winning is fun. We all love to win. It certainly beats losing. By ensuring that yours is a winning team, you will attract talented people, and people working for your project will be more enthusiastic and willing to put in the extra effort needed to reach your next milestone, whether it is a weekly build, a monthly iteration, or a twelve-month project. But how do you go about creating a winning team? Here are some guidelines:

  • Succeed with the first iteration. If you do iterative development, make sure you succeed with your first iteration. Many teams try to accomplish too much in the first iteration, and as a result the project starts off with a failed iteration. Try to take on less than you expect you can manageearly iterations often take longer than you expect.

    Winning is fun. It certainly beats losing.


  • Limit commitments. Try to limit the number of commitments your team makes, but ensure that you do a great job delivering on those commitments. By pushing back on the number of requests you get, you create an environment where the workload is manageable enough for the team to have a chance of succeeding.

  • Just do it! Instill a "just do it" attitude. Many teams and people waste too much time preparing, discussing, and thinking about how to do something and too little time just doing it. Iterative development is, among other things, about instilling a "just do it" attitude on a larger scale, and you should bring that mindset to smaller tasks too.

  • Let team members assign and estimate tasks. Have team members sign up for tasks and do their own estimates. They are more inclined to enjoy a task that they chose and more likely to be committed to an estimate they made themselves.[7]

    [7] See Beck 2004, principle Accepted Authority.

  • Positive attitude. Instill a positive attitude. Attitude has a huge impact on our well-being and that of the people around us. A positive attitude allows the team to put in the extra effort it takes to succeed.

Other Methods

All the agile methods offer a great deal of guidance in the areas of building effective teams and the softer issues concerning team collaboration. For example, XP gives explicit values for effectively developing software: communication, simplicity, feedback, courage, and respect. The principles and practices in XP are there to support these values and their effective implementation.

Enterprise Unified Process [8] provides guidance in some of the areas related to people management covered here, such as how to obtain and keep highly qualified staff.

[8] See Ambler 2005.

Scrum and XP both focus on self-organized teams, meaning that the teams are responsible for how to do the work. As an example, in Scrum teams have the freedom to execute upon an iteration (Sprint) using whatever approach they like, as long as they meet the Sprint goal. They can, for example, hire a consultant, change working hours, and change what requirements to implement, as long as they stay within budget and overall corporate guidelines. By providing developers with the responsibility for delivering a quality end product, and the associated ability to take the necessary action, you motivate teams to perform at their best. At the same time, management can have its say at the end of the Sprint, which is never more than thirty days away, so the risk for management in letting the team loose is limited.

RUP and OpenUP/Basic provide organizational clarity by clearly defining roles and responsibilities, as well as providing guidance on how to capture project stakeholders, realize the project vision, and measure project success. RUP and OpenUP/Basic also incorporate many of the techniques listed in this section, many of which are derived from Scrum, XP, and other agile processes. Both RUP and OpenUP/Basic currently focus on including this set of "soft" techniques.

A key message for agile processes is that all team members have equal value as human beings.[9] Many people in the agile community cry out against measuring individual performance. For example, some reviewers of this book pointed out that ranking is inconsistent with agile values, but we believe that part of respecting people is being clear about what they are doing well and where they can improve, in line with the agile values of feedback and courage. We believe that as long as ranking and individual performance measurement are carried out in an honest and open fashion, with clear communication about values and which delivered results lead to a certain ranking, they align very closely with agile principles. Scrum is very clear about the need to weed out team members who consistently fail to perform.

[9] See, for example, Beck 2004, value Respect.

Levels of Adoption

This practice can be adopted at three levels:

  • Basic. Ensure that you provide organizational clarity through clear communication of project vision and project responsibilities. Make each team member responsible for overall project success.

    The basic practice of clear communication should minimize bureaucracy and thus allow you to have shorter iterations.

  • Intermediate. Establish and live by the values of your organization. Agree on how you will deal with team communication issues. Even when many problems in a project are known, people do not want to talk openly about them. Establish trust, and encourage constructive feedback and open communication so that you can discuss issues and resolve them.

    The intermediate practice of trust and constructive feedback is crucial for any team doing iterative development; it allows you to minimize bureaucracy and thus have shorter iterations.

  • Advanced. Use a performance evaluation system that effectively evaluates adherence to established values.

    The advanced practice of coupling your performance evaluation system to your values should allow you to instill the right values effectively in your organization. Done correctly, this should not cause a lot of extra overhead but should instead allow you to minimize bureaucracy and thus have shorter iterations.

Related Practices

  • Practice 7: Everyone Owns the Product! addresses how all team members need to orient their mindset and the way they collaborate within the team to enable effective teamwork. This is a key aspect of creating a high-performance team.

  • Practice 19: Rightsize Your Process shows how to work more effectively by focusing only on the activities in your process for which the benefit of doing the activity is greater than the cost, thus creating higher-performing teams.

Additional Information

Information in the Unified Process

OpenUP/Basic and RUP provide guidance on clear communication of the vision to the team and team organization and apply many of the techniques listed in this practice. OpenUP/Basic and RUP currently stay away from topics related to team culture, but we propose to add guidance from this book and other sources to provide more coverage in this domain.

Additional Reading

For books that cover people aspects of software projects, see the following:

Murray Cantor, Software Leadership: A Guide to Successful Software Development, Addison-Wesley, 2001.

Walker Royce, Software Project Management: A Unified Framework, Addison-Wesley, 1998.

Scott Ambler, John Nalbone, and Michael Vizdos, The Enterprise Unified Process: Extending the Rational Unified Process, Prentice Hall, 2005.

Alistair Cockburn,Agile Software Development, Addison-Wesley, 2002.

Sanjiv Augustine,Managing Agile Projects, Addison-Wesley, 2005.

For nonsoftware books that deal with teamwork, productive and less productive behavior, and people skills in general, see the following:

Patrick Lencioni, The Five Dysfunctions of a Team, Jossey-Bass, 2002.

Patrick Lencioni, The Four Obsessions of an Extraordinary Executive, Jossey-Bass, 2000.

John R. Katzenbach and Douglas K. Smith, The Wisdom of Teams: Creating the High-Performance Organization, HarperBusiness, 2003.

Dale Carnegie, How to Win Friends and Influence People, Pocket Books, 1990.

Johanna Rothman, Hiring the Best Knowledge Workers, Techies & Nerds: The Secrets & Science of Hiring Technical People, Dorset House, 2004.



Agility and Discipline Made Easy(c) Practices from OpenUP and RUP
Agility and Discipline Made Easy: Practices from OpenUP and RUP
ISBN: 0321321308
EAN: 2147483647
Year: 2006
Pages: 98

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net