Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
University of Malta
Slide 1 of 48
Session 3
3. Human Resource
Management
Session 3 of the Software Engineering
Management Module
Software Development Human Resource
Management
This session should provide some insight into the nature of
software development teams and their composition.
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 2 of 48
Session Aims
The aim of this session is to introduce you to some particularities involved in the management of people involved in software development. In particular:
• To make clear that people are the most valuable resource.
• To instil a sense of appreciation that people are not easily
recruited, managed and “maintained”.
• To present some fundamental criteria determining people’s
behaviour and morale.
• To introduce some basic team structures.
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 3 of 48
Session Contents
• Managing people
• Collective culture
• Software engineering team roles
• Human Resource (HR) recruitment
• Team structures and management
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 4 of 48
Managing People
A VERY IMPORTANT MANAGEMENT ASPECT.
• People are a manager’s most valuable resource
• Is a major influence on project quality
• Is not a substitute for unqualified or not competent
staff
• Can entail cultural issues
• Is a tricky business!
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 5 of 48
Frederick W. Taylor
This gentleman first started paying attention to
management science – Frederick Winslow Taylor
(1856 - 1915)
Nationality: American (Philadelphia)
Described as: “Father of Scientific Management”
Famous quote:
“In the past man has been first.
In the future the System will be first,“
Influenced such systems as:
Ford's assembly line and Lenin's Soviet Union
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 6 of 48
The Three “Taylorist” Pillars
1. Find best practice wherever it exists
Determining procedures and techniques that yield desirable
quality, allows one to identify, draw parallels and apply
2. Breakdown a task into its constituent elements
The basis of any analytic activity – better understanding
3. Remove things that do not add value (to the
process or to the product)
Keep only justifiable overheads
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 7 of 48
The “primal” HR Management Objectives
The “Taylorist” approach:
• Select Delegate appropriate people to appropriate activities (according to competences)
• Instruct Teach people the best (to your knowledge) methods of going about their activities
• Motivate Pay, in the original “Taylorist” theory, meant more money to the most hard-working people
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 8 of 48
The Humanist Approach
Maslow’s “Hierarchy of Needs”. (Abraham Maslow:1908-1970)
Diagram corroborated from
various sources and finally
chosen from Wikipedia.
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 9 of 48
The Human Psyche
• Basically within the remit of Psychology
• People work differently in groups than they do as
individuals. The study of the way people work in
groups is known as Organisational Behaviour (OB)
• Much research is done in OB due to the enormous
influence the human state of mind has on a person’s
efficiency and productivity
• Look up information on Donald McGregor’s
“Theory X and Theory Y” (see next slide)
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 10 of 48
Activity “SEM3”
You are to look up information regarding Douglas McGregor’s “Theory X and Theory Y”. Also referred to as “Theory XY”.
Produce a short (2-page max) report including:
1) A clear and complete explanation of the theory.
2) Any pros and cons relating to it.
3) Its application to modern management
All reported work should be in your own words.
(1906 – 1964)
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 11 of 48
Prelude to HR Management
Before starting to manage your people…
• Understand your people’s and organisation’s particularities and idiosyncrasies
• Understand each team member’s value (i.e. in terms of
qualifications, experience and background – both
professional and personal)
• Associate your people with the right work for them (i.e.
highlight talent not weakness)
• Keep track your people’s morale and psyche just as you
would the technical aspect
All the of the above is collectively referred to as …
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 12 of 48
The “Group Culture”
The Group Culture is heavily influenced by the Organisational Culture*
“Culture” (in project management sense) can be seen as the established way of doing things of a particular collection of people working in close quarters, sharing common scope and goal.
* If say, all around is (“accepted”) chaos, it would be difficult to instil a sense of discipline and ordered development in a team within this environment.
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 13 of 48
Determining an Existing “Culture”
Determine:
• Organisational Culture
E.g. Accepted goals, procedures, tools, etc
• Individual Culture
E.g. Background, habits, desires, motivators, expectations,
etc
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 14 of 48
Determine Organisational Culture
By asking oneself the following:
1. What development procedures and standards are
generally used?
2. What is understood by a “successful project”? Do
many of these happen?
3. What levels of confidence exist (towards managers,
tools, methods, deadlines, etc.)
4. How are projects generally viewed by software
engineers? (i.e. level of interest, motivation, etc.)
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 15 of 48
Determine Individual Culture
By asking oneself the following:
1. What’s the person’s formal educational
background?
2. What’s the person’s job (project development)
experience?
3. What’s the person’s age? (generation
considerations)
4. What is his/her character, habits and personal
expectations like?
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 16 of 48
Emergent Cultural Roles
We all consciously or sub-consciously tend to adopt
a stance/role within a group – it’s only natural. Which
one do you “slot yourself” into?
• Leader (many think they are, few in reality can effectively lead)
• Listener (pays attention to everything, rarely speaks out)
• Talker (tends to talk about issues incessantly)
• Complainer (difficult to satisfy)
• Naysayer (can always see a potential problem)
• Expert (“know-it-all” – tendency to dominate)
• Charger (game for anything – questions come after)
• Plodder (slow but consistent – always chugs along)
Categories based on Henry
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 17 of 48
Typical Software Engineering Project Roles
• Requirements Engineer
• Systems Analyst
• Lead Designer
• Designer
• Coder
• Tools Expert
• Quality Assurance Engineer
• Client Liaison
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 18 of 48
Possible Conclusion Drawn
Different opinions may exist regarding software engineering project team roles.
In my personal opinion:
Applicability and/or effectiveness of software engineering
project roles can only be judged in relation to the prevailing
culture.
(Please remember what is meant by “culture” – not culture in the sociological
sense)
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 19 of 48
Matching People to Roles
Roles as determined in the organisation
Educational
Background
Experience
(on projects)
Personal &
Personality
Traits
Professional
preferences
Age group
(generation)
Activity 1
Activity 2
Activity n
.
.
.
Recruitment
Process
Assigned
Task 1
Assigned
Task 2
Assigned
Task n
. . . Now subject these to additional
managerial influence
(i.e. scheduled, measured,
represented, etc.)
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 20 of 48
Gender Issues
Software development is one of those areas where gender issues and natural distinctions can never be
construed to effect the role-matching process.
Any form of gender distinction in this field can be viewed
as gender discrimination.
Remember always to be fair and open-minded (this is of course applicable to both men and women)
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 21 of 48
Professional Trends
• Task oriented – Motivated by work
– Rise to a challenge, and keep “at it”
– Technically strong
• Interaction oriented – Influenced by colleagues
– Good team players
– Transparent in their work
• Self oriented – Motivated by personal achievement
– “Get the show on the road” attitude
– More flexible and manageable
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 22 of 48
The Recruitment Process
Can present itself with various attributes:
• In practice, is generally an organisational-level
responsibility (i.e. not a project-level one)
• Can offer sparse choice
• Can be of a “pre-decided” nature
• Can be of a transitory nature
• Can be deceptive (depending on time and effort
dedication)
• Can be unfair (depending on competencies of the
recruiters)
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 23 of 48
Factors Influencing the Recruitment Process
Primarily:
• Actual knowledge and skills
Partially:
• Formal qualifications
• Impressive (or not) CVs
• Listed experience
• “Wideness of spread” of
posts held
• Spread of knowledge
• References
Suitable
Eligible
Ideal
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 24 of 48
Factors not Influencing the Recruitment Process
• Race issues
• Gender issues
• Social status/background issues (However, in certain cases,
monitoring after recruitment is a good idea)
• Generation issues (Although this factor can indirectly impinge on areas
of knowledge, and therefore, on recruitment decisions)
• Personal prejudices
• Physical disability issues (Mental disabilities do not necessarily preclude people from software development. However, this remains a highly selective issue)
• Hearsay or conceived rumours
• Appearance and Mannerisms (For some conceived roles this could
however, be a serious issue. If so, clarify during the recruitment process)
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 25 of 48
Structuring Recruitment (1/2)
If you have the luxury to do so, then…
• Create the actual job specification
• Create the “virtual profile” of the ideal person who would
fit the post
• Prepare a realistic and descriptive public announcement
• Get the list of applicants (to have a feel of the level of
interest and therefore get some feed-forward on how to
behave in during the interviews)
• Get and examine applicants’ CVs
and…
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 26 of 48
Structuring Recruitment (2/2)
• Hold interviews (applicants to appear in person, avoid
phone, video or other remotely-held interviews)
• Follow up any references of potential choice applicants
• Inform of final decision, or short-list applicants and hold
a second interview session
• Formulate letter/s of acceptance
• Meet, introduce and induce the new person/s
In some cases interviews may include (or be supplemented by)
aptitude and/or psychometric tests. These type of tests require extra
effort to create and organise, but can yield a lot of insight into an
applicant’s aptness and suitability for the job. This is the subject of
debate amongst project managers.
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 27 of 48
Dealing with One’s Own People
Existing staff generally falls into one of two categories:
• Good and improvable;
• Already there!
Both types of staff need to be managed, with one
difference – the former could be made better before
being managed.
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 28 of 48
Making Good People Better
• Make people think of professional self-betterment as one of the aims of the project they are working on
• Allow people to set their own improvement goals
• Ask people to manage their own time (for their individual activities)
• Determine, and distinguish between, temporary short-term and longer-reaching long-term staff professional development goals
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 29 of 48
Managing Good People
• Monitor and assess the process and product – NOT the people
• Conduct without interfering
• Make use of your knowledge – NEVER your position
• Act as a conduit for your people’s effort – NOT as an
obstacle or critical filter
• Forget the trapping of managerial authority (those are
always present anyway) and concentrate on project
and people needs
• Be always there for your people without seeming
intrusive
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 30 of 48
Attributes of a Good Manager
• Confidence both in yourself and your people
• Don’t allow personal relationships to interfere with work
relationships
• Admit that you too can make mistakes and be prepared
to have them corrected through your people’s scrutiny
• Be punctual and your people will follow suit
• Set positive examples
• Know your people and tap all their talents
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 31 of 48
In a Nutshell
Therefore, in a nutshell, management of people in an software engineering project is:
• Managing group effort and individual cultural attributes
• Careful management of highly motivated, intelligent and responsible people
• Managing your people’s professional development
• Setting the right examples and standards, and elevating project and team needs above everything else
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 32 of 48
Working in Groups
• This is what software engineers end up doing most of the time.
• Group effectiveness (or ineffectiveness) will dictate the outcome of any project
• Managing how a group works is not a trivial affair and entails many aspects
• The project manager has considerable, but not absolute, influence on group work
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 33 of 48
Group Building & Management Aspects
This aspect was discussed earlier on
This will be discussed shortly
• Individual characteristics of group members
• Group cohesion
• Group communication
• Group organisation
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 34 of 48
Cohesive Groups (1/2)
Such groups can offer many advantages:
• A collective standard can be “cultivated”
• A sense of loyalty will persist
• Foster project/procedure continuity
• Team members tend to help each other
• A collective body of experience can be formed
• Personal egos are less likely to surface
• Communication comes naturally
…but they also exhibit a few disadvantages
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 35 of 48
Cohesive Groups (2/2)
Cohesive groups can however also offer
some disadvantages:
• Foster a relatively strong resistance to changes in
management /leadership
• Allow the build up of what is called “groupthink” (i.e. the
suppression of individual thought, initiative, and/or creativity
• May induce a sense of rejection, or resistance, of new team
member composition
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 36 of 48
Typically, a modern software engineer working in a
team would utilise his/her time as follows:
• Individual work: 20%
• Non-productive effort: 20%
• Interacting: 60%
From this follows that communication plays a major role in
modern software engineering management
Communication
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 37 of 48
Factors Influencing Internal Team Communication
• Procedures and standards currently in place
• Size of the team
• Structure of the team
• Gender composition of the team
• Work environment
• Management disposition and attention
• Personal individual characters and habits
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 38 of 48
Group Management Aspects
Effective group management is heavily dependent
on team organisation.
Types of team structure:
• Chief Programmer
• Democratic
• Matrix
• Hybrid
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 39 of 48
Chief Programmer Team
• Introduced in the 1970’s
• Main hub is the Chief programmer
–directs and reviews work of other team members
–does design and complex implementations
• Requires a backup chief programmer
• Actual coding done by other programmers
–specialized; work on detailed design and coding
• Administration done by programming secretary (librarian)
– maintains project library (code, test cases, etc.)
– compiles, executes and runs test cases
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 40 of 48
Schematic of Chief Programmer Team
Chief
Programmer
Programming
Secretary Back-up
Programmer
Programmer 1 Programmer 2 … Programmer n
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 41 of 48
Impracticalities of The Chief Programmer Approach
• Good chief programmers are hard to find
(must be both a good programmer and good manager)
• Good backup chief programmers are even harder to
find
• Nowadays programmers compile, run and test their
software at their workstations
• The chief programmer is present at code reviews and
also does evaluation of members – this does not
foster positive attitude toward finding faults
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 42 of 48
The Democratic Team
Group works for a common cause with no single leader;
each member finds faults in others’ code
• Advantages
– Positive attitude towards finding faults
– Especially productive in solving hard problems
• Disadvantages
– Management has difficulty working with egoless team
– Senior members may resent review by beginners
– Communication can become difficult to manage (see next
two slides)
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 43 of 48
Communication Patterns in a Democratic Team
Drawings taken from McGraw-Hill, 1999.
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 44 of 48
Matrix-Oriented Teams
Java coder C# coder Analyst Tester QA
Project “A” X X X
Project “B” X X X
Project “C” X X X
In the above table:
Project “A” requires the participation of a Java coder, an analyst,
and a quality assurance person. For example, if only one analyst is
available, then the three projects need to be co-ordinated.
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 45 of 48
Hybrid (the modern) Approach
• Team leader
– Responsible for technical aspects
– Attends all code reviews
• Team manager
– Responsible for non-technical aspects (budget,
performance appraisals)
– Does not attend code reviews, but assesses performance
based on periodic team meetings
• Can be scaled up for large projects
• Decentralised decision-making
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 46 of 48
Team management 1
Team management 2
Schematic of Hybrid Approach
Team
Leader 1
Team
Leader 2
Programmer 1 Programmer 2 … Programmer n
Project
Manager
Team
Manager 1
Team
Manager 2
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 47 of 48
Group Evolution Cycle
These are the six basic group life stages:
• Formative
• Hectic (aka Storming)
• Normative
• Productive (aka performing)
• Introspective (my personal addition to the established five)
• Wind-up (aka Adjournment) [based on Tuckman and Jensen]
Faculty of ICT
Ernest Cachia
Department of Computer Science
University of Malta
Slide 48 of 48
Summary (Session 3)
• The various factors making the management of people
something fundamentally different from the management of
other resources.
• The notion of a “self-forming culture” that is inevitable when
groups of people work together.
• The inherent character types we can all see ourselves in, and
the classification of roles in a software development team.
• Building, and/or augmenting, a software development team
Faculty of ICT
Ernest Cachia
Department of Computer Science