+ All Categories
Home > Documents > CS 5150 Software Engineering Lecture 23 People 1 (and a little Reliability)

CS 5150 Software Engineering Lecture 23 People 1 (and a little Reliability)

Date post: 01-Jan-2016
Category:
Upload: lily-warren
View: 215 times
Download: 0 times
Share this document with a friend
Popular Tags:
31
Software Engineering Lecture 23 People 1 (and a little Reliability)
Transcript

CS 5150Software

EngineeringLecture 23

People 1 (and a little Reliability)

2CS 5150

Administrivia

• Quiz 3 this evening

• Design patterns

• Security/privacy

• Reliability

3CS 5150

Final Milestone

• Client satisfaction

• In previous milestones my evaluation of client satisfaction has been informal

• This time I will ask them to send me an email a few days after receiving the final deliverable, with answers to a couple simple questions about how well the project went

4CS 5150

SE in the News

•Adobe user data leak

•Weak password hash function

•Double Irish and Dutch Sandwich

5CS 5150

Determinism => Reproducibility

• It is very hard to fix bugs that cannot be reproduced reliably

• Do not introduce unnecessary non-determinism into your programs

• Random numbers

• Address-based data structures

• Multithreading

• Time limits vs effort limits

• Environment dependencies

6CS 5150

Fault Injection

• While the system is running, force some component to break

• Is used in production systems

• Must be handled carefully

7CS 5150

Safety-Critical Systems

• Much more emphasis on validation and verification

• Beyond the scope of 5150

8CS 5150

Managing People

• Software Development Staff

• Professional staff are the major cost of software

• Staff vary greatly in productivity:

• Ability

• Education and training

• Motivation

• Interaction with colleagues and leaders

• Work environment has an impact on productivity

• How do you lead, motivate, hire, reward, and retain good people?

9CS 5150

Managing People

• Theoretical

• Organizational behavior

• Industrial psychology

• Group behavior

• Cognitive fundamentals

• Economic motivation

10

CS 5150

Maslow’s Hierarchy of Needs

11

CS 5150

Management Implications of Maslow's Hierarchy

• Physiological needs:

• Food, water, breathing, sleep

• Safety Needs:

• Security of person, health, family

• Social Needs:

• Friendship, colleagues, intimacy

• Esteem Needs:

• Self esteem, confidence, achievements, respect of others

• Self-Actualization:

• The opportunity to reach full potential

12

CS 5150

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

• etc.

• Teams must have:

• administrative leadership (manager)

• technical leadership (may be the manager)

13

CS 5150

Administrative Leader (Manager)

• Personnel

• Assigning tasks

• Hiring, promoting, etc.

• Resources

• Budgets

• Space, facilities

• Equipment

• Project management

• Relationships with other teams, management, and clients

• Project plan and schedule

14

CS 5150

Group Working

15

CS 5150

Communication

• Staff meetings (non-technical)

• Technical meetings

• Facilitation

• Record of decisions

• Informal

• Kitchen, smokers' doorway, after work, etc.

• Walkabout (tours)

• Ad hoc meetings

16

CS 5150

Communication

• Management of teams dispersed across locations

• Creating a team sense

• Face-to-face meetings

• Occasional but regular, e.g., once or twice per year

• Entire team, including support staff

• Remote meetings on a regular schedule (e.g., conference calls)

• Technical and administrative groups

• Clear division of responsibility between locations

17

CS 5150

Meetings

• Meetings require leadership and a willingness to be led

• Time keeping -- do not be late; end on time or earlier

• Clear purpose for meeting, with agenda

• e.g., progress reports, design review, budget

• Preparation

• materials circulated in advance with time to prepare

• studied by all participants

• Facilitation during meeting

• opportunities for all to speak

• summing up to check agreement

• Notes taken during meeting (scribe) and circulated promptly

18

CS 5150

Meetings

• For excellent advice on how to run a meeting (with highly humorous examples of how not to), see:

• John Cleese and Antony Jay, Meetings, bloody meetings. Video Arts, 1976, revised 1976. [DVD in Hotel School Library]

• There is a trailer on YouTube:

• http://www.youtube.com/watch?v=ZWYnVt-umSA

19

CS 5150

Hiring

• Productivity is a combination of:

• Analytic ability

• Verbal ability and communication skills

• Education

• Adaptability and inquisitiveness

• Personality and attitude

• Platform experience

• Programming language experience

• Application domain knowledge

20

CS 5150

Staff Retention

• Technically interesting work

• up to date hardware and software

• opportunities to learn and experiment

• Feeling of appreciation

• management recognition

• money, benefits, and promotion

• Working conditions

• space, light, noise, parking

• flexibility

• Organizational dynamics

21

CS 5150

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-actualization

• esteem

• The absolute level of salary is less important than its relative level and how it is presented:

• "The average raise is 4%, but you are getting 5%."

• "Our salaries are in the top 25% of similar companies."

22

CS 5150

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

23

CS 5150

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, but refuse to accept problem areas

• Persistent and firm is better than brutal and abrupt

24

CS 5150

Technical Challenges

• Changes of environment

• Example: Apps -> the Web -> Apps

• Canceling projects

• Example: the Andrew window manager

• Technical tinkering v. needed re-engineering

25

CS 5150

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!

26

CS 5150

How to be Led

• As a junior member of a team, what can you do to make it productive?

• Follow the team's style of working

• Understand the context of your work

• Make practical suggestions

• Ask for help if you need it

• Accept less interesting tasks

• Attend social events

• Do good work

27

CS 5150

Outsourcing

• When might you contract with another organization to carry out some or all parts of the software development process?

• The other organization might have expertise that your organization lacks.

• Your organization might not have a large enough staff.

• The other organization might have lower costs (e.g., it might operate in a country, such as India, where costs are lower).

• Example

• Most software for the US government is built by contractors

28

CS 5150

Outsourcing Risks

• The other organization may not be as skilled as you expect

• Staff have their first loyalty to their own organization

• The other organization may have use different terminology or have a different culture (e.g., the organization may not report problems to the client)

• Communication faces geographic and cultural differences

• Unless the task is well understood, it may be difficult to write a contract that manages costs and results (e.g., government contracts are notorious for cost over-runs)

• If your organization contracts out all interesting work, your good staff will leave

29

CS 5150

Outsourcing: Conclusions

• When work is out-sourced, the client must be vigilant.

• The client must take responsibility for managing the relationships between the project and the client's organization

• The client must have a management and technical team that can track the work being done, monitor quality, review changes to scope, etc.

• The contract should be explicit about expectations, deliverables, ownership of software, and mechanisms for payment

• The client must be closely involved with user testing and must control the acceptance testing

30

CS 5150

Careers in Computing

• What will you be doing:

• One year from now?

• Ten years from now?

• Careers outside computing

• Careers in which you personally continue to do technical work

• Careers in which you are responsible for the technical work of others

31

CS 5150

Careers outside Computing

• A computing background can be valuable in any career:

• management, government, law, medicine, philanthropy, etc.

• Education in computing is an asset:

• Computing is a vital part of almost every organization

• Education in logical thinking and tackling large tasks systematically

• Education in computing is a potential weakness:

• Not every problem can be solved by rational thinking alone

• Importance of skills with people, judgment, etc.


Recommended