Review from MidTerm to Final
Lecture #45
1
Software Problems
• Technical
– Need a technical solution
– Easy to understand and solve
• Systemic
– Need a process/management solution
– Difficult to understand and solve
2
Solution to Software Problems
• Treat the software task as a process that can
be controlled, measured, and improved
• Relate the required tasks, tools, methods
with skill, training, and motivation of
people involved
3
Software Processes
• Software engineering, as a discipline, has
many processes
• These processes help in performing
different software engineering activities in
an organized manner
4
Software Process
• The software process is the set of tools, methods,
and practices that people use to produce (develop
and maintain) software and associated products ,
e.g., project plans, design documents, code, test
cases, and user manuals
• Where are the people? Aren’t they the most
important part of an organization?
5
Characteristics of Software
Processes
• Requires creativity
• Interactions between a wide range of
different people
• Engineering judgment
• Background knowledge
• Experience
6
Commit the resources to execute
the plan
7
Introduction to TSP
8
Why Projects Fail
• Reasons
– Seldom due to technical reasons
– People problems
– Excessive schedule pressure
• Solution
– People problems can be solved with the help of
good communication and good teams
– Good teams guide in handling pressure
9
• After this basic introduction about teams,
let’s talk about Team Software Process or
TSP
• Development of Team Software Process
(TSP) is another important step in software
process improvement, after the
development of CMM and PSP
• The TSP provides a disciplined context for
engineering work 10
• The principal motivator for the
development of the TSP was the conviction
that engineering teams can do extraordinary
work, but only if they are properly formed,
suitably trained, staffed with skilled
members, and effectively led
• The objective of the TSP is to build and
guide such teams
11
• A team is more than just a group of people
who happen to work together
• Teamwork takes practice and it involves
special skills
• Teams require common processes; they
need agreed upon goals; and they need
effective guidance and leadership
12
What is a Team?
13
What is a Team?
• A team consists of at least two people
• The members are working toward a
common goal
• Each person has a specific assigned role
• Completion of the mission requires some
form of dependency among the group
members
14
• The four parts of this definition of a team
are all important
• For example, it is obvious that a team must
have more than one member, and the need
for common goals is also generally
accepted
15
• However, it is not as obvious why team
members must have roles?
• Roles provide a sense of ownership and
belonging
• They help to guide team members on how to
do their jobs; they prevent conflicts, duplicate
work, and wasted effort; and they provide the
members with a degree of control over their
working environment
16
• Such a sense of control is a fundamental
requirement for motivated and energetic
team members
17
• Interdependence is also an important
element of teamwork. It means that each
team member depends to some degree on
the performance of the other members
• Interdependence improves individual
performance because the members can help
and support each other
• E.g., Design teams
18
• Team performance is further enhanced by
the social support of membership. Human
beings are social animals and few people
like to work entirely by themselves—at
least not for very long
• Because of the social context of teams, the
members will generally make a special
effort to meet their obligations to the rest of
the team
19
• Through mutual support and
interdependence, teams become more than
just the sum of their individual members
• To be effective, teams must be properly
skilled and be able to work as cohesive
units
• Effective teams have certain common
characteristics
20
• Innovation is more than just thinking up
bright ideas; it requires creativity and a lot
of hard work. Just about every engineering
task is part of an innovative endeavor
• Innovative teams must have skilled and
capable people who are highly motivated.
They must be creative, flexible, and
disciplined
21
• The best team structure depends on the
management style of your organization, the
number of people who will populate the
team and their skill levels, and the overall
problem difficulty
• The performance of a team is inversely
proportional to the amount of
communication that must be conducted
22
• The length of time that the team will “live
together” affects team morale
• Constantine suggests four organizational
paradigms for software engineering teams:
–
–
–
–
Closed paradigm – traditional, good for déjà vu projects
Random paradigm – loose, innovative projects
Open paradigm – mix of traditional and random
Synchronous paradigm – natural compartmentalization
of problem
23
HighPerformance Team
• Team members must have trust in one
another
• The distribution of skills must be
appropriate to the problem
• Mavericks may have to be excluded from
the team, if team cohesiveness is to be
maintained
24
• A jelled team is a group of people so
strongly knit that the whole is greater than
the sum of the parts…
• Once a team begins to jell, the probability
of success goes way up. The team can
become unstoppable, a juggernaut for
success
25