Sie sind auf Seite 1von 51

Managing people

z Managing people working as


individuals and in groups

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 1


Objectives
z To describe simple models of human cognition
and their relevance for software managers
z To explain the key issues that determine the
success or otherwise of team working
z To discuss the problems of selecting and
retaining technical staff
z To introduce the people capability maturity model
(P-CMM)

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 2


Topics covered
z Limits to thinking
z Group working
z Choosing and keeping people
z The people capability maturity model

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 3


People in the process
z People are an organisation’s most important
assets
z The tasks of a manager are essentially people
oriented. Unless there is some understanding
of people, management will be unsuccessful
z Software engineering is primarily a cognitive
activity. Cognitive limitations effectively limit the
software process

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 4


Management activities
z Problem solving (using available people)
z Motivating (people who work on a project)
z Planning (what people are going to do)
z Estimating (how fast people will work)
z Controlling (people's activities)
z Organising (the way in which people work)

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 5


Limits to thinking
z People don’t all think the same way but everyone
is subject to some basic constraints on their
thinking due to
• Memory organisation
• Knowledge representation
• Motivation influences
z If we understand these constraints, we can
understand how they affect people participating
in the software process

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 6


Memory organisation
From
senses

Short-term
memory

Working memory

Long-term memory
(Large capacity, slow access)

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 7


Short-term memory
z Fast access, limited capacity
z 5-7 locations
z Holds 'chunks' of information where the size of
a chunk may vary depending on its familiarity
z Fast decay time

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 8


Working memory
z Larger capacity, longer access time
z Memory area used to integrate information from
short-term memory and long-term memory.
z Relatively fast decay time.

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 9


Long-term memory
z Slow access, very large capacity
z Unreliable retrieval mechanism
z Slow but finite decay time - information needs
reinforced
z Relatively high threshold - work has to be done
to get information into long-term memory.

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 10


Information transfer
z Problem solving usually requires transfer
between short-term memory and working
memory
z Information may be lost or corrupted during this
transfer
z Information processing occurs in the transfer
from short-term to long-term memory

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 11


Cognitive chunking
Loop (process entire array)

Loop (process unsorted part of array)

Compare adjacent elements

Swap if necessary so that smaller comes first

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 12


Knowledge modelling
z Semantic knowledge knowledge of concepts
such as the operation of assignment, concept
of parameter passing etc.
z Syntactic knowledge knowledge of details of
a representation.
z Semantic knowledge seems to be stored in a
structured, representation independent way.

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 13


Syntactic/semantic knowledge

Task knowledge Computer knowledge

Semantic knowledge Syntactic knowledge

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 14


Knowledge acquisition
z Semantic knowledge through experience and
active learning
z Syntactic knowledge acquired by memorisation.
z New syntactic knowledge can interfere with
existing syntactic knowledge.
• Problems arise for experienced programmers in
mixing up syntax of different programming languages

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 15


Semantic knowledge
z Computing concepts - notion of a writable
store, iteration, concept of an object, etc.
z Task concepts - principally algorithmic - how to
tackle a particular task
z Software development ability is the ability to
integrate new knowledge with existing computer
and task knowledge and hence derive creative
problem solutions
z Thus, problem solving is language independent

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 16


Problem solving
z Requires the integration of different types of
knowledge (computer, task, domain,
organisation)
z Development of a semantic model of the solution
and testing of this model against the problem
z Representation of this model in an appropriate
notation or programming language

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 17


Problem solving
Partial
Problem solutions Solution

New knowledge
Working
Existing knowledge memory

Long-term memory

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 18


Motivation
z An important role of a manager is to motivate the
people working on a project
z Motivation is a complex issue but it appears that
their are different types of motivation based on
• Basic needs (e.g. food, recreation, hygiene )
• Personal needs (e.g. respect, self-esteem)
• Social needs (e.g. to be accepted as part of a group)

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 19


Human needs hierarchy

Self-
realization needs

Esteem needs

Social needs

Safety needs

Physiological needs

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 20


Motivating people
z Motivations depend on satisfying needs
z It can be assumed that physiological and safety
needs are satisfied
z Social, esteem and self-realization needs are
most significant from a managerial viewpoint

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 21


Need satisfaction
z Social
• Provide communal facilities
• Allow informal communications
z Esteem
• Recognition of achievements
• Appropriate rewards
z Self-realization
• Training - people want to learn more
• Responsibility

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 22


Personality types
z The needs hierarchy is almost certainly an over-
simplification
z Motivation should also take into account different
personality types:
• Task-oriented
• Self-oriented
• Interaction-oriented

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 23


Personality types
z Task-oriented.
• The motivation for doing the work is the work itself
z Self-oriented.
• The work is a means to an end which is the
achievement of individual goals - e.g. to get rich, to
play tennis, to travel etc.
z Interaction-oriented
• The principal motivation is the presence and actions
of co-workers. People go to work because they like
to go to work

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 24


Motivation balance
z Individual motivations are made up of elements
of each class
z Balance can change depending on personal
circumstances and external events
z However, people are not just motivated by
personal factors but also by being part of a group
and culture.
z People go to work because they are motivated
by the people that they work with

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 25


Group working
z Most software engineering is a group activity
• The development schedule for most non-trivial
software projects is such that they cannot be
completed by one person working alone
z Group interaction is a key determinant of group
performance
z Flexibility in group composition is limited
• Managers must do the best they can with available
people

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 26


Time distribution

20%
Non-productive
activities

50%
Interaction with
other people
30%
Working alone

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 27


Group composition
z Group composed of members who share the
same motivation can be problematic
• Task-oriented - everyone wants to do their own thing
• Self-oriented - everyone wants to be the boss
• Interaction-oriented - too much chatting, not enough
work
z An effective group has a balance of all types
z Can be difficult to achieve because most
engineers are task-oriented
z Need for all members to be involved in decisions
Nitin V Pujari
which affect B.E–
theCS -group
Software Engineering – Managing People Slide 28
Group leadership
z Leadership depends on respect not titular
status
z There may be both a technical and an
administrative leader
z Democratic leadership is more effective that
autocratic leadership
z A career path based on technical competence
should be supported

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 29


Group cohesiveness
z In a cohesive group, members consider the
group to be more important than any individual in
it
z Advantages of a cohesive group are:
• Group quality standards can be developed
• Group members work closely together so inhibitions
caused by ignorance are reduced
• Team members learn from each other and get to
know each other’s work
• Egoless programming where members strive to
improve each other’s programs can be practised
Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 30
Developing cohesiveness
z Cohesiveness is influenced by factors such as
the organisational culture and the personalities in
the group
z Cohesiveness can be encouraged through
• Social events
• Developing a group identity and territory
• Explicit team-building activities
z Openness with information is a simple way of
ensuring all group members feel part of the
group
Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 31
Group loyalties
z Group members tend to be loyal to cohesive
groups
z 'Groupthink' is preservation of group
irrespective of technical or organizational
considerations
z Management should act positively to avoid
groupthink by forcing external involvement with
each group

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 32


Group communications
z Good communications are essential for effective
group working
z Information must be exchanged on the status of
work, design decisions and changes to previous
decisions
z Good communications also strengthens group
cohesion as it promotes understanding

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 33


Group communications
z Status of group members
• Higher status members tend to dominate
conversations
z Personalities in groups
• Too many people of the same personality type can
be a problem
z Sexual composition of group
• Mixed-sex groups tend to communicate better
z Communication channels
• Communications channelled though a central
coordinator tend to be ineffective
Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 34
Group organisation
z Software engineering group sizes should be
relatively small (< 8 members)
z Break big projects down into multiple smaller
projects
z Small teams may be organised in an informal,
democratic way
z Chief programmer teams try to make the most
effective use of skills and experience

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 35


Democratic team organisation
z The group acts as a whole and comes to a
consensus on decisions affecting the system
z The group leader serves as the external interface
of the group but does not allocate specific work
items
z Rather, work is discussed by the group as a
whole and tasks are allocated according to ability
and experience
z This approach is successful for groups where all
members are experienced and competent
Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 36
Extreme programming groups
z Extreme programming groups are variants of
democratic organisation
z In extreme programming groups, some
‘management’ decisions are devolved to group
members
z Programmers work in pairs and take a collective
responsibility for code that is developed

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 37


Chief programmer teams

Specialist pool
Nucleus of chief programmer team

Administrator
Chief Backup
Toolsmith programmer programmer

OS specialist

Tech. author Librarian Outside


Communication
Test specialist

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 38


Chief programmer teams
z Consist of a kernel of specialists helped by
others added to the project as required
z The motivation behind their development is the
wide difference in ability in different programmers
z Chief programmer teams provide a supporting
environment for very able programmers to be
responsible for most of the system development

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 39


Problems
z This chief programmer approach, in different forms, has undoubtedly
been successful
z However, it suffers from a number of problems
• Talented designers and programmers are hard to find. Without
exception people in these roles, the approach will fail
• Other group members may resent the chief programmer taking
the credit for success so may deliberately undermine his/her
role
• High project risk as the project will fail if both the chief and
deputy programmer are unavailable
• Organisational structures and grades may be unable to
accommodate this type of group

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 40


Choosing and keeping people
z Choosing people to work on a project is a major managerial
responsibility
z Appointment decisions are usually based on
• information provided by the candidate (their resumé or CV)
• information gained at an interview
• recommendations from other people who know the candidate
z Some companies use psychological or aptitude tests
• There is no agreement on whether or not these tests are
actually useful

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 41


Factor Explanation
Application domain For a project to develop a successful system, the
experience developers must understand the application domain.
Platform experience May be significant if low-level programming is
involved. Otherwise, not usually a critical attribute.
Programming language Normally only significant for short duration projects
experience where there is insufficient time to learn a new
language.
Educational background May provide an indicator of the basic fundamentals
which the candidate should know and of their ability
to learn. This factor becomes increasingly irrelevant
as engineers gain experience across a range of
projects.
Communication ability Very important because of the need for project staff to
communicate orally and in writing with other
engineers, managers and customers.
Adaptability Adaptability may be judged by looking at the different
types of experience which candidates have had. This is
an important attribute as it indicates an ability to
learn.
Attitude Project staff should have a positive attitude to their
work and should be willing to learn new skills. This
is an important attribute but often very difficult to
assess.
Personality Again, an important attribute but difficult to assess.
Candidates must be reasonably compatible with other Staff selection
team members. No particular type of personality is factors
more or less suited to software engineering.
Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 42
Working environments
z Physical workplace provision has an important
effect on individual productivity and satisfaction
• Comfort
• Privacy
• Facilities
z Health and safety considerations must be taken
into account
• Lighting
• Heating
• Furniture

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 43


Environmental factors
z Privacy - each engineer requires an area for
uninterrupted work
z Outside awareness - people prefer to work in
natural light
z Personalization - individuals adopt different
working practices and like to organize their
environment in different ways

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 44


Workspace organisation
z Workspaces should provide private spaces
where people can work without interruption
• Providing individual offices for staff has been shown
to increase productivity
z However, teams working together also require
spaces where formal and informal meetings can
be held

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 45


Office layout

Meeting
room

Office Office Window


Communal
area
Office Office

Office Office
Shared
Office Office documentation

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 46


The People Capability Maturity Model

z Intended as a framework for managing the development of people


involved in software development
z Five stage model
• Initial. Ad-hoc people management
• Repeatable. Policies developed for capability improvement
• Defined. Standardised people management across the
organisation
• Managed. Quantitative goals for people management in place
• Optimizing. Continuous focus on improving individual
competence and workforce motivation

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 47


Optimizing
Continuously improve methods Continuous workforce innovation
for developing personal and Coaching
organisational competence Personal Competency Development

Managed
Quantitatively manage Organisational Performance Alignment
organisational growth in Organisational Competency Management
workforce capabilities and Team-based Practices
establish competency-based Team Building
teams
Mentoring

Defined
Identify primary
competencies and Participatory Culture
align workforce Competency-based Practices
activities with them Career Development
Competency Development
Workforce Planning
Knowledge and Skills Analysis

Repeatable
Instill basic
discipline into Compensation
workforce Training
activities Performance Management
Staffing
Communication
Work environment

Initial The People Capability Maturity Model


Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 48
P-CMM Objectives
z To improve organisational capability by
improving workforce capability
z To ensure that software development capability
is not reliant on a small number of individuals
z To align the motivation of individuals with that of
the organisation
z To help retain people with critical knowledge and
skills

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 49


Key points
z Managers must have some understanding of
human factors to avoid making unrealistic
demands on people
z Problem solving involves integrating information
from long-term memory with new information
from short-term memory
z Staff selection factors include education, domain
experience, adaptability and personality

Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 50


Key points
z Software development groups should be small
and cohesive
z Group communications are affected by status,
group size, group organisation and the sexual
composition of the group
z The working environment has a significant effect
on productivity
z The People Capability Maturity Model is a
framework for improving the capabilities of staff
in an organisation
Nitin V Pujari B.E– CS - Software Engineering – Managing People Slide 51

Das könnte Ihnen auch gefallen