1 / 28 cs 425/625 software engineering managing people based on chapter 22 of the textbook [somm00]...

28
1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley, 2000 and on the Ch22 PowerPoint presentation available at the book’s web-site: www.comp.lancs.ac.uk/computing/resources/IanS/SE6/Slides/index.html November 24, 2003

Upload: amelia-whitehead

Post on 18-Jan-2018

229 views

Category:

Documents


0 download

DESCRIPTION

3 / 28 People in the Software Process. n n People are an organization’s most important assets n n The manager’s tasks are essentially people oriented n n Software engineering is a cognitive and social activity n n Cognitive limitations should be taken into consideration in the software process

TRANSCRIPT

Page 1: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

1 / 28

CS 425/625 Software Engineering

Managing People

Based on Chapter 22 of the textbook [Somm00] Ian Sommerville,Software Engineering, 6th Ed., Addison-Wesley, 2000 and on theCh22 PowerPoint presentation available at the book’s web-site:www.comp.lancs.ac.uk/computing/resources/IanS/SE6/Slides/index.html

November 24, 2003

Page 2: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

2 / 28

Outline

People in the Software Process Limits to Thinking Group Working Choosing and Keeping People

Page 3: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

3 / 28

People in the Software Process.

People are an organization’s most important assets

The manager’s tasks are essentially people oriented

Software engineering is a cognitive and social activity

Cognitive limitations should be taken into consideration in the software process

Page 4: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

4 / 28

.People in the Software Process

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

Page 5: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

5 / 28

Limits to Thinking

People are very diverse, and do not all think in the same way

However, all people are subject to the same constraints on their thinking due to: Memory organization Knowledge representation Motivation influences

Awareness of the limits to the way people think is important in software process management

Page 6: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

6 / 28

Limits to Thinking: Memory Organization.

Memory organization [Fig. 22.1 Somm00]

Working memory

Long-term memory(Large capacity, slow access)

Short-termmemory

Fromsenses

Page 7: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

7 / 28

Limits to Thinking: .Memory Organization Short term memory:

Fast access time Limited capacity Holds 5-7 “chunks” of information Fast decay time

Working memory: Larger capacity Longer access time Used for information processing Can retain information longer than the short term memory Relatively fast decay time

Long term memory: Slow access time Very large capacity Somewhat unreliable retrieval mechanism (we forget things) Relatively high threshold (work/time/repetition needed to retain

things in long term memory) Slow decay time

Page 8: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

8 / 28

Limits to Thinking: Cognitive Chunking

Cognitive “chunking” [Fig. 22.2, Somm00]

Swap if necessary so that smaller comes first

Compare adjacent elements

Loop (process unsorted part of array)

Loop (process entire array)

Page 9: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

9 / 28

Limits to Thinking: Semantic and Syntactic Knowledge. Knowledge types:

Semantic knowledgeSemantic knowledge,, knowledge of concepts knowledge of concepts such as the operation of assignment statement, such as the operation of assignment statement, the notion of an object class, etc.the notion of an object class, etc.

Organized, structured, acquired through experience and active learning, deeper and less volatile than the syntactic knowledge

Syntactic knowledge, knowledge of details such as how to write a class description in UML, etc.

Disorganized, arbitrary, acquired through memorization, easier to forget than the semantic knowledge

Page 10: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

10 / 28

Syntactic and semantic knowledge [Fig. 22.3 Somm00]

Task knowledge Computer knowledge

Semantic knowledge Syntactic knowledge

Limits to Thinking: .Semantic and Syntactic Knowledge

Page 11: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

11 / 28

Limits to Thinking: Problem Solving.

Problem solving requires integration of different types of knowledge, e.g., computer, task, domain, and organization knowledge

A semantic model of the problem as well as a corresponding model of the solution are built

The process of program design involves:1 Integration of computer and task knowledge to create new

knowledge and understand the problem2 Development of a semantic model of the solution and

testing of this model against the problem3 Representation of this model in an appropriate notation or

programming language

Page 12: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

12 / 28

Limits to Thinking: .Problem Solving Problem solving [Fig. 22.4, Somm00]

New knowledge

Existing knowledge

Long-term memory

Partialsolutions SolutionProblem

Workingmemory

Page 13: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

13 / 28

Limits to Thinking: Motivation. A manager must know how to motivate the people

working on a project Different types of motivation are related to:

Basic needs (e.g., food, sleep, etc.) Personal needs (e.g. respect, self-esteem) Social needs (e.g., to be accepted as part of a group)

Motivation should also take into account different personality types: Task-oriented Self-oriented Interaction-oriented

Page 14: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

14 / 28

Limits to Thinking: .Motivation Human needs hierarchy [Fig. 22.5, Somm00]

Physiological needs

Safety needs

Social needs

Esteem needs

Self-realization needs

Page 15: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

15 / 28

Group Working: Introduction

Software engineering typically requires group activity The development schedule for most non-trivial

software projects is such that they cannot be completed by one person working alone

Group interaction is a key factor of group performance But flexibility in group composition is often limited and

managers must do the best they can with available people

Page 16: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

16 / 28

Group Working: Main Factors

Factors that influence group working: Group composition Group leadership Group cohesiveness Group communications Group organization

Page 17: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

17 / 28

Group Working: Composition

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

An effective group has a balance of all types However, this can be difficult to achieve because most

engineers are task-oriented Also, there is a need for all members to be involved in

decisions which affect the group

Page 18: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

18 / 28

Group Working: Leadership

Leadership depends on respect, not on titular status In a team, there may be both a technical and an

administrative leader Democratic leadership is more effective than

autocratic leadership A career path based on technical competence

should be supported

Page 19: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

19 / 28

Group Working: Cohesiveness In a cohesive group, members consider the group more

important than the individuals Advantages of cohesive groups:

Group quality standards can be developed Group members work closely together Team members learn from each other Egoless programming can be practised

Cohesiveness can be build through: Social events Developing a group identity and territory Explicit team-building activities Open access to information

Strong, cohesive groups can lead however to irrational resistance to leadership change and to “groupthink”

Page 20: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

20 / 28

Group Working: Communications

Good communications are vital for group working Information must be exchanged on the status of work,

design decisions and changes to previous decisions Good communications also strengthens group cohesion

and promotes understanding Factors that influence the effectiveness of group

communications: Group size Group structure Group composition Physical work environment of the group

Page 21: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

21 / 28

Group Working: Organization…

Software engineering group sizes should be relatively small (at most 8 members)

Small teams can follow a democratic team organization On the other hand, chief programmer teams try to make

the most effective use of skills and experience Extreme programming involves democratic team

organization

Page 22: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

22 / 28

Group Working: .Organization..

In democratic team organization: The group acts as a whole and comes to a

consensus on decisions affecting the group The group leader serves as the external interface of

the group but does not allocate specific work items The work is discussed by the group and tasks are

allocated according to ability and experience This approach is successful for groups where all

members are experienced and competent

Page 23: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

23 / 28

Group Working: ..Organization. Chief programmer teamsChief programmer teams consist of a kernel of specialists consist of a kernel of specialists

helped by others added to the project as neededhelped by others added to the project as needed This group organization allow very capable programmers to be This group organization allow very capable programmers to be

responsible for most of the software developmentresponsible for most of the software development

Test specialist

Tech. author

OS specialist

Toolsmith

Administrator

Backupprogrammer

Chiefprogrammer

Librarian

Specialist poolNucleus of chief programmer team

OutsideCommunica tion

Page 24: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

24 / 28

Group Working: …Organization

Issues with chief programmer teams: Talented designers and programmers are difficult

to find Group members may resent the chief programmer

taking the credit for the group’s success Projects will fail if both the chief and deputy

programmer become unavailable Organizational structures may not be able to

accommodate this type of group

Page 25: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

25 / 28

Choosing and Keeping People…

Hiring people for a project is a major managerial responsibility

Appointment decisions are based on: Information provided by the candidates in their resumés Information obtained at an interview Recommendations from people who know the candidates

Some companies use psychological or aptitude tests

Page 26: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

26 / 28

.Choosing and Keeping People.. Staff selection factors [Fig. 22.7 Somm00]

Factor ExplanationApplication domainexperience

For a project to develop a successful system, thedevelopers must understand the application domain.

Platform experience May be significant if low-level programming isinvolved. Otherwise, not usually a critical attribute.

Programming languageexperience

Normally only significant for short duration projectswhere there is insufficient time to learn a newlanguage.

Educational background May provide an indicator of the basic fundamentalswhich the candidate should know and of their abilityto learn. This factor becomes increasingly irrelevantas engineers gain experience across a range ofprojects.

Communication ability Very important because of the need for project staff tocommunicate orally and in writing with otherengineers, managers and customers.

Adaptability Adaptability may be judged by looking at the differenttypes of experience which candidates have had. This isan important attribute as it indicates an ability tolearn.

Attitude Project staff should have a positive attitude to theirwork and should be willing to learn new skills. Thisis an important attribute but often very difficult toassess.

Personality Again, an important attribute but difficult to assess.Candidates must be reasonably compatible with otherteam members. No particular type of personality ismore or less suited to software engineering.

Page 27: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

27 / 28

..Choosing and Keeping People.

Working environments: The physical workplace has an important effect on individual

productivity and satisfaction (comfort, facilities, privacy) Health and safety aspects must also be taken into

consideration (e.g., lighting, heating, furniture)

Important environmental factors: Privacy: each engineer should have his or her work area Outside awareness: people prefer natural light Personalization: different people organize their work

environment in different ways Spaces for group meeting: teams working together need

spaces for holding formal and informal meetings

Page 28: 1 / 28 CS 425/625 Software Engineering Managing People Based on Chapter 22 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

28 / 28

…Choosing and Keeping People Office layout [Fig 22.8, Somm00]

Office

Office

Office

Office

Office

Office

Office

OfficeCommunalarea

Meetingroom

Window

Shareddocumentation