Teamworks Software Enginiering
Teamworks Software Enginiering
chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://www.cs.purdue.edu/homes/bxd/
307/Teamwork.pdf
What is a team?
A team is a small group of people with complimentary skills who are committed to a common
purpose for which they hold themselves and each other accountable.
Small Team Size
Teams usually work best with a small group of people. Smaller numbers make team
administrative tasks easier, such as deciding where and when to meet. Meetings are generally
shorter when fewer people need to speak. Small size also makes it easier to develop a common
purpose with mutual goals and mutual accountability, which is so important for good teamwork.
In addition, a small team of people avoids the "herd" mentality of large teams. In a large team
people tend to go along with popular opinion rather than thinking for themselves. In general, the
larger the team of people, the harder it is for the team to work well together.
Complimentary Skills
Complimentary skills are also important for a team. Necessary skills include: technical,
problemsolving, decision-making, and interpersonal skills. Technical skills are needed to provide
the
expertise to meet the goals of the team. The other skills are necessary for the team to work
effectively together.
Commitment
High performance teams must make a strong commitment to a common purpose and goals. A
common, meaningful purpose sets the tone and aspirations of the team. The team's purpose must
then be translated into specific, measurable goals, often called milestones. The milestones help to
focus the team and make it more productive. Meeting milestones also gives the team small
victories that are crucial to its commitment and morale. This combination of purpose and goals is
important for the success of the team.
Common Approach
The members of a team must also make a commitment to a common approach. What are the
standards of behavior? How will the team go about its tasks? Who will perform which task? How
will schedules be assigned and how are decisions made? These are the nuts-and-bolts issues that
need to be agreed upon by all members of the team.
Accountability
The members of the team must also share a sense of mutual accountability. In other words, they
must hold themselves and each other answerable for meeting the team's goals. All of them must
know what they are responsible for both individually and as a team.
Why have teams?
Teams are commonplace in industry today. Most companies organize their employees by
function, such as engineering, finance, and marketing. Even within a function such as
engineering, people are usually organized into smaller groups by their specialties. Companies
then use teams when people from different groups are needed to meet a goal, such as developing
a new product. Some of the reasons for organizing a group of people as a team, instead of a
committee or other group structure, are discussed below.
Enhanced Cooperation and Coordination
With tasks that need cooperation and coordination, teams can perform better than individuals or
functional groups. Cross-functional teams reduce the number of hand-offs and the amount of
coordination needed between the functions. Because more of the expertise to do the job belongs
to the team, there is less need to pass work on to another group. This improved coordination can
provide strategic advantages to companies such as reduced time to market.
Working Together
Teamwork is more than getting along or being helpful. In a real team the members work toward
a common goal. By working together, team members help each other to accomplish tasks. A
team working together usually gets more results in less time than other types of organizations.
Organizational Flexibility
An organization can be more flexible by using teams. Management can put a team together to
accomplish a specific task and then can disband it. Or, a team can be kept together more or less
permanently to address an ongoing need -- such as running an operation or developing a series of
new products.
Organizational Parity
Teams allow each member to have an equal say in decisions and discussions. By considering all
ideas and proposals equally, teams can produce more creative and optimum results.
Job Satisfaction
Another advantage of teams is that people on teams generally derive more satisfaction from their
jobs. When team members work together to overcome obstacles that stand in their way, they
Job Satisfaction
Another advantage of teams is that people on teams generally derive more satisfaction from their
jobs. When team members work together to overcome obstacles that stand in their way, they
derive satisfaction not only from achieving the goal, but also from the trust and confidence they
build in other team members. The enjoyment is heightened even further because they can see that
they are taking part in something larger than what they can accomplish by themselves.
Common Phases of Team Development
Teams often go through steps or phases during their development. There are many ways to
describe these phases, but perhaps the best known are: forming, storming, norming, and
performing. These terms were developed by Bruce Tuckman in 1965 (see reference below) to
describe how the members of small teams tend to act as the team develops. Each phase is
described below.
Forming
This phase occurs when a team first comes together. Sometimes this phase is called the
"honeymoon" period because everyone is nice to each other. Team members are usually cautious
and polite with each other, while exploring their new circumstances. A good way to expedite this
phase is to have "icebreaker" activities that allow team members to understand each member's
capabilities and motivations.
Storming
During this phase, team members begin challenging and disagreeing with one another. They
often jockey for position and use their expertise as weapons. Teams can get stuck in this phase
and as a result can fail. They key to moving quickly through this phase is explicitly defining the
roles and responsibilities of each team member.
Norming
In this phase, team members start offering ideas and suggestions. They reveal their preferences
for performing tasks. Standards of behavior and team processes are defined. By defining team
processes, one can move on to performing.
Performing
This phase is the ideal phase for a team. They work hard together. Team members anticipate
problems, changes in direction and each other's moves. The focus of the team is on
accomplishing their goals and not on blaming each other.
Optimal Team-Development Steps
While these team-development steps are well known, there is no need for a team to have a
storming phase. Even though storming is a common part of team development, it is not a
desirable or productive time. Your team can bypass the storming phase by Clarifying the team's
mission, Defining goals and milestones, Establishing roles and responsibilities, and Creating
processes for getting the work done. These steps are described in the following sections.
Clarifying the Mission
The mission is the purpose of the team and the reason it exists. In this course, the team's mission
is to produce a product that satisfies the Project Charter using the Agile Software Engineering
process. Understanding the mission begins with understanding the product the team will produce.
The team will develop a detailed description of the product for the mission by creating the
Project Charter, Product Backlog, and Design Document.
Defining Goals and Milestones
A goal is the end toward which effort is directed and milestones are significant points in
development. Project milestones help to define a project in greater detail and are a useful way to
track team progress. In this course, the team's goal is to produce the product that they specify in
the Project Charter. Project milestones are the three Sprint reviews.
Establishing Roles and Responsibilities
Defining Roles and Responsibilities
A role is a function performed for a position in an organization. Roles are present whether we are
aware of them or not. It is better to choose and assign the roles on a team rather than just to let
them happen. Each role has a set of responsibilities associated with it. Responsibility means
being answerable for performing the duties and tasks.
The roles of team members, with the associated responsibilities for those roles, are dependent
upon the project and the expertise of each team member.
For this course, define the roles of each team member according to their interests and skills. For
instance, one person may be responsible for the Graphical User Interface, another for a database,
another for a group of algorithms, and so forth.
As you can see, the division of the roles depends on the project, the skills of each team member,
and an understanding of how to fairly divide the work of developing the product. Thus it is a
good idea to discuss the roles of each team member after selecting the product and while
deciding on the major sub-sections of the design. Then each team member will have the
responsibility for the design and implementation of a sub-section of the product.
Other Team Member Responsibilities
There are some responsibilities that are common to all team members. These responsibilities
exist because the team needs to work together to accomplish its goals. These responsibilities are
based on the need for cooperation. As a memory aid, the responsibilities for good cooperation
have been organized under the headings of Follow through, Assertiveness, Communication,
Timeliness, and Spirit (FACTS). Team members have a responsibility to enhance
cooperation on
their team using these FACTS.
Follow through
When team members cooperate, they follow through on commitments. With this follow-through,
you show an awareness that as part of a team, everything you do affects someone else. You also
know that if you forget to do something, you become a weak link -- an obstacle in the work
process. Lack of follow-through impedes the performance of others and reduces trust. It is hard
to trust people who do not do what they say they will do.
Other team members will interpret lack of follow-through as a lack of respect for others. This
seems obvious since it is tiresome to "remind" college students that something is due, and
annoying to sit through meetings where people offer excuses about why things did not get done.
When individuals do not do what they say, it is demoralizing and leads to a contagious lack of
effort. On the other hand, when team members keep commitments, they inspire their colleagues
to do the same.
Assertiveness
A team member has a responsibility to speak frankly and openly when there is a difference of
opinion. A team is more likely to succeed when members are willing to risk conflict with other
team members and to stand their ground when required. This helps the team to avoid making bad
decisions and then implementing them because everyone went along just to be part of the team.
At the same time, you must not become so entrenched in your position that you ignore the team's
purpose and goals. Members should show flexibility, an ability to meet halfway, and a
willingness to work for the common good. Team members should negotiate their differences so
that both parties can win. In highly cooperative teams, there are few turf wars, little
competitiveness, and an ability to forgive and forget.
Communication
For a team to reach its full potential, team members must be willing to say what they think, ask
for help, share new or unpopular ideas, give the status of their activities, and risk admitting
mistakes. This can only happen in a setting where team members show concern for one another,
trust one another, and look for answers together. When communication is friendly, open and
positive, teams are more productive and team members feel more satisfied.
Friendly interaction happens when people get to know each other and respect each other. Such
behaviors provide an atmosphere for risk-taking and cooperation. When team members ask each
other about their lives beyond this project, and on the whole make each other feel welcome, they
are creating conditions for good team communication.
Open, honest communication is key to a team's success. Nothing reduces trust faster than when
members say one thing within the team and something else outside of the team. When people are
confident enough to say what they need to say directly to the right people, and to refrain from
talking behind each other's back, they enhance trust.
Timeliness
Attention to timeliness, which is doing things on time (or even before they are due), is also a
responsibility of team members. When members are cooperating well, they respect each other's
time and schedules. People show up on time for meetings. Meetings begin and end on time. They
return emails as promised. There is a sense of urgency about team tasks, reflecting a willingness
to make the team's actions a top priority.
Members share important information promptly and succinctly. People ask each other for
comments on their plans and ideas often, but not so often that it blocks the workflow. Team
members tend to cluster their questions and comments so that they share them all at once instead
of repeatedly interrupting each other's workday.
People know each other's calendars and schedule important meetings (like the Daily Scrum
Meeting) so that everyone can attend. You might also hear people thanking each other for their
time and asking, "Is this a good time?" It is hard not to cooperate with those who respect your
time.
Spirit
Being on a team is a bit like being part of a family. You can't have your way all of the time. To
make the team perform, all members must have a tolerant spirit.
When spirit is high in a team, you can sense the positive attitude. Members value individual
differences, speak kindly about individual talents, offer compliments on individual contributions
-- but also form a team identity. Members develop mutual trust and talk openly to each other.
When there is good team spirit, members make decisions by consensus, not by voting. Voting
divides a team into winners and losers, whereas consensus encourages each team member to
cooperate. Team members must listen to each point of view, modify his or her own stand to fit
the will of the team, and support the decision that seems best for the team.
When team spirit is high, members recognize individual successes such as solving a vexing
problem, or team successes such as reaching a project milestone. The congratulations are always
sincere and the message is very clear: "We celebrate each other's milestones and successes
because we are all on the same team. A win for one is a win for all." Such camaraderie is a good
sign that spirit within the team is high.
The Team Leader
Why does a team need a leader? Someone needs to look at the big picture: the project as a whole.
This allows the other team members to focus on their parts of the project knowing that someone
is thinking about how everything fits together.
The team may choose one person as the team leader, and give her or him a smaller workload as
compensation. Optionally, the team may decide to rotate leadership during the project and allow
everyone to gain some experience in the team leader's role. If your team decides to rotate
leadership, then the Sprint boundaries are a good place to change leadership. The current leader
has the responsibility to guide the team in reaching their next milestone.
Team Leader's Role
Team leaders are not like "traditional" bosses. The team does not work for the team leader; the
team leader works for the team. The role of the team leader is to lead the people and manage the
resources of the team to meet the team's goals. Leadership is the ability to get people to do what
needs to be done in such a way that they like it.
Team leader skills can be learned over time. The most important thing that the team leader can
do is to believe in the team's purpose and understand the capabilities of the team's members. The
stronger this belief and understanding, the more easily a team leader can overcome a lack of
skills or training.
No matter how much you know or how skilled you are, it's an obvious fact that people will
respond better to your leadership if they like you than if they don't like you. The ability to make
people like you is one of the most valuable talents you can possibly develop. It makes all your
other talents more productive.
So what makes people like you? Good humor, kindness, and appreciation of people's interests
and feelings. Understanding that they are just as important to themselves as you are to yourself.
Fairness in considering their interests as well as your own. Complete lack of snobbishness
toward team members.
Team Leader's Responsibilities
The main responsibilities of the team leader are as follows:
Keep the purpose, goals and process meaningful
A team leader should help team members clarify and commit to their purpose, goals, and
processes. At the same time, it's important that the team leader's suggestions not come across as
mandates. Sometimes the best approach is to sit quietly and let the other team members solve the
problems.
Monitor the performance of the team
The team leader must monitor actual performance of the team in meeting its goals. When
necessary, the team leader must force the team to make decisions and change strategies to ensure
their success.
Build commitment and confidence in the team members
Intimidation might work in some situations, but it will kill enthusiasm in a team. Team leaders
need to focus on positive reinforcement. When a negative event must occur to ensure the success
of a team goal, such as moving tasks from one member to someone better suited, the leader must
approach the situation with tact and understanding to prevent demoralization of team members.
Manage relations with outsiders
The leader must have the courage to stand up for the team and to take action to remove obstacles.
This includes obtaining resources for the team. The leader must be able to communicate the
team's goals and act on behalf of the team to anyone (such as the Project Coordinator) who can
help the team or who might get in the way.
Create opportunities for team members
Good leaders don't keep all the good jobs for themselves, nor do they take all the credit.
Decisions should be made to help the team's performance, not the leader's ego.
Do real work
Every team member must do roughly equal amounts of work and that includes the team leader.
Often times the leader must set an example by volunteering to do jobs that no one else wants to
do.
Creating Processes
For a team to work efficiently, it needs a standard way of operating. By defining processes, team
members know how to accomplish team tasks and they spend more time working on problems
that contribute to the goal of producing the team's product. Some of the processes that a team
needs to agree upon are as follows:
Standards of behavior: Set some clear rules for behavior. These rules should promote
focus,
openness, trust, and commitment. Following these rules can prevent conflicts from other
members from getting in the way of team tasks. They can also help people keep focused on the
real work of the team, which is finding solutions to problems. Team members should not argue
with each other or complain about the project.
Team communication: How will you keep each other informed of progress? When does the
team
plan to have the Daily Scrum Meeting and when are other communication methods, like email or
texting, appropriate? These questions and more need answering by the team.
Making decisions: What decisions can individuals make and what decisions must the team
make? Will the team decide actions by voting or consensus? The best approach is to make
decisions by consensus, not by voting. Voting divides a team into winners and losers, whereas
consensus encourages each team member to cooperate. The team needs to explicitly decide how
it will make decisions.
These are basic processes common to most teams. Other processes depend upon the team and the
project. Develop these processes as the need arises to improve the efficiency of the team.
Applicability to CS 30700
CS 30700 uses Peer Evaluations to measure team member contributions. With these evaluations,
you can reward particularly good team member performances or penalize particularly bad ones.
But, our goal is that everyone will contribute strongly to your project and that no one will need to
be penalized. To that end:
• Make sure that you know exactly what is expected of you. You should know exactly what you
should do in each Sprint, maybe before the end of the Sprint if someone else is depending on
your work to get theirs done.
• Everyone should attend every Daily Scrum meeting and every Sprint Review.
• Make sure that your teammates know exactly what you have done and are doing. If you are
silent about your contributions, they may think you are not being as productive as you are.
• Explain any problems you have run into and ask for help. Don't wait until too late and then
drop the bomb that you cannot get your part done on time.
• Talk to team members in the Daily Scrum meeting. Find out why their work is not getting
done. Re-organize if someone is unfairly overloaded. Help other team members if you are ahead
of schedule.
• If someone is chronically underperforming, don't wait to penalize them in Peer Evaluations.
Fix it now!
• The Team Leader should talk to poor performers. Try to fix it within the team. If that does not
turn things around, ask the Project Coordinator for help