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,
Post on 18-Jan-2018
224 Views
Preview:
DESCRIPTION
Transcript
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
2 / 28
Outline
People in the Software Process Limits to Thinking Group Working Choosing and Keeping People
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
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
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
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
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
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)
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
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
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
12 / 28
Limits to Thinking: .Problem Solving Problem solving [Fig. 22.4, Somm00]
New knowledge
Existing knowledge
Long-term memory
Partialsolutions SolutionProblem
Workingmemory
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
14 / 28
Limits to Thinking: .Motivation Human needs hierarchy [Fig. 22.5, Somm00]
Physiological needs
Safety needs
Social needs
Esteem needs
Self-realization needs
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
16 / 28
Group Working: Main Factors
Factors that influence group working: Group composition Group leadership Group cohesiveness Group communications Group organization
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
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
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”
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
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
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
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
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
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
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.
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
28 / 28
…Choosing and Keeping People Office layout [Fig 22.8, Somm00]
Office
Office
Office
Office
Office
Office
Office
OfficeCommunalarea
Meetingroom
Window
Shareddocumentation
top related