CS 501: Software Engineering Managing People CS 501 Spring 2002 Lecture 20

advertisement
CS 501: Software Engineering
Lecture 20
Managing People
1
CS 501 Spring 2002
Administration
Assignment 3
Remember to submit your reports and
questionnaires
Discussion Class
Attend
Speak!
Let me know out of class if you want to be
called on more often
2
CS 501 Spring 2002
Quiz 3, Question 1
Two online retailers, A and B, have agreed to merge. They
have separate computer systems. Each has separately
developed (i) a product database with information about
products, suppliers and prices, and (ii) a customer database
of customer accounts.
You are the Chief Information Officer responsible for
combining the two systems into a single system. The strategy
chosen is to combine the two product databases into a single
database, using the software developed by retailer A, but keep
the lists of customer separate. Customers should be unaware
of the change, so that, to the customers, retailers A and B
continue to appear to be separate.
3
CS 501 Spring 2002
Quiz 3, Question 1 (continued)
(a) List two technical approaches for combining the
two systems.
(b) What are the risks associated with each
approach?
(c) Select the approach that appears likely to have
the least risk.
(d) Draw a system architecture diagram for this
approach.
4
CS 501 Spring 2002
From Lecture 13
Merger of Two Banks: Options
A
???
B
???
5
CS 501 Spring 2002
Merger of Two Retailers
A
B
?
Customer
Database A
6
Product
Database A
Customer
Database B
CS 501 Spring 2002
Part (i): Technical Approaches
I. Minimal changes to the interfaces
Modify User Interface B so that it can get product
information from Product Database A.
Modify Customer Database B so that it can interact with
Product Database A (if needed).
II. Retire Customer Database B
Modify User Interface B so that it can get product
information from Product Database A and customer
information from Customer Database A.
7
Modify Customer Database A to hold both customer lists and
merge information about the customers of B.
CS 501 Spring 2002
Part (ii): Risks
I. Minimal changes to the interfaces
Need to maintain two separate systems indefinitely
Semantic differences between systems may make transparent
interface(s) impossible
II. Retire Customer Database B
Major effort required to convert Customer Database B within
short time span, very likely needing new data elements or
relations
User Interface B may need major changes
8
CS 501 Spring 2002
Parts (iii) and (iv): Option II
A
B
Customer
Database A
9
Product
Database A
CS 501 Spring 2002
Managing People
Theoretical
•
Organizational behavior
•
Industrial psychology
Group behavior
•
Cognitive fundamentals
Economic motivation
10
CS 501 Spring 2002
Maslow's Hierarchy of Needs
Self-realization needs
Esteem needs
Social needs
Safety needs
Physiological needs
11
CS 501 Spring 2002
Software Engineering Basics
• Professional staff are the major cost of software
•
Professional staff vary greatly in productivity
=> Ability
=> Education and training
=> Motivation
=> Interaction with colleagues and leaders
=> Work environment
•
12
People are productive when happy and happy when
productive
CS 501 Spring 2002
Software is Built by Teams
• Best size for a team is 3 to 8 people
• Team members may include:
developers (from trainee to expert)
domain experts
graphic or interface designers
software librarians
testers
• Teams must have:
administrative leadership (manager)
technical leadership
13
CS 501 Spring 2002
Group Working
20%
non-productive
30%
working alone
14
50%
interaction
with
others
CS 501 Spring 2002
Communication
•
Informal
Kitchen, smokers' doorway, after work, etc.
Walkabout (tours)
Ad hoc meetings
• Staff meetings (non-technical)
Example: Tektronics
• Technical meetings
Facilitation
Record of decisions
• Management of teams dispersed across locations
15
CS 501 Spring 2002
Administrative Leader (Manager)
• Personnel
Assigning tasks
Hiring, promoting, etc.
•
Resources
Budgets
Space, facilities
Equipment
• Project management
Relationships with other teams and clients
Project plan and schedule
16
CS 501 Spring 2002
Hiring Criteria
Productivity is a combination of:
•
•
•
•
Analytic ability
Verbal ability and communication skills
Education
Application domain knowledge
• Adaptability and inquisitiveness
• Personality and attitude
•
•
17
Platform experience
Programming language experience
CS 501 Spring 2002
Staff Retention
• Technically interesting work
up to date hardware and software
opportunities to learn and experiment
•
Feeling of appreciation
management recognition
money and promotion
• Working conditions
space, light, noise, parking
flexibility
•
18
Organizational dynamics
CS 501 Spring 2002
Salaries
Any software developer in the USA has plenty of money
to live on (food, clothing, heat, etc.).
Salaries are used to satisfy the top levels of Maslow's
Hierarchy:
self-realization
esteem
The absolute level of salary is less important than its
relative level and how it is presented:
"The annual raise is 5%, but you are getting 6%."
"Our salaries are in the top 25% of similar companies."
19
CS 501 Spring 2002
Firmness
Managers must be firm when needed:
• Assignment of tasks must be equitable and open;
everybody will have to tackle some of the dreary tasks
• Carrots are better than sticks, but poor performance must
be addressed.
• Nobody is indispensable; nobody should be allowed to
think that they are indispensable
20
CS 501 Spring 2002
Technical Challenges
•
Canceling projects
Example: the Andrew window manager
• Changes of environment
Example: the World Wide Web
• Technical tinkering v. needed re-engineering
21
CS 501 Spring 2002
Turning a Group Around
To turn a weak group into a strong one is the greatest
challenge of leadership
• The art of the possible
•
Promotion of the best over the old leaders
•
Using opportunities to reorganize
•
Resignations and terminations
• Respect people who try, yet refuse to accept problem areas
Brutal and abrupt rarely equals persistent and firm
22
CS 501 Spring 2002
How to be Led
As a junior member of a team, what can you do to
make it productive?
23
CS 501 Spring 2002
To Build and Maintain a Strong Team
Everybody has a different style. In my experience:
• Be consistent in how you relate to people
• Be open about problems and how you are
addressing them
• Explain your decisions
• Do not have secrets
• Ask for advice and help
• Be constructive in criticism of people outside your
team
• Support and attend social events
Set high standards!
24
CS 501 Spring 2002
Download