CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/...

40
CEN 4021 10 th Lecture CEN 4021 CEN 4021 Software Engineering II Software Engineering II Instructor: Masoud Sadjadi http://www.cs.fiu.edu/~sadjadi/ [email protected] Software Project Planning (POMA) Human resources

Transcript of CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/...

Page 1: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

CEN 4021 10th Lecture

CEN 4021 CEN 4021 Software Engineering II Software Engineering II

Instructor: Masoud Sadjadi

http://www.cs.fiu.edu/~sadjadi/

[email protected]

Software Project Planning (POMA)Human resources

Page 2: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

AcknowledgementsAcknowledgements

Dr. Onyeka Ezenwoye

Dr. Peter Clarke

2

Page 3: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

AgendaAgenda

Organizing (POMA)– Human resources

– The Project Team

Page 4: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Class activityClass activity

From soft skills and personal traits, pick 3 traits that you believe are especially important for team work. Rank them. Would your list be different if you were only concerned with individual performance.

Page 5: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Project Team Life CycleProject Team Life Cycle

Very few projects can be completed by individuals. Group becomes a team through proactive efforts by

members and project manager. Typical project team life cycle goes through three

stages:– Team formation– Team development– Team maintenance

Page 6: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Project Team Life CycleProject Team Life Cycle

Teams need forming, developing and maintaining Amount of management activity differs at different

stages of the team life cycle.

Relative management

Effort

Team Stages

Forming

Developing

Maintaining

Page 7: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Project Team Life CycleProject Team Life Cycle

Team building activities center on education and training on areas like:– Building trust– Negotiation skills– Listening skill– Responding to pressure

Project manager must ensure that there is enough time in the project schedule for such training.

Page 8: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Project Team Life CycleProject Team Life Cycle

Team formation Team Development Team maintenance

Page 9: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Team FormationTeam Formation

Having the best people does not guarantee success unless experts work effectively as a team.

Project might be delayed or fail due to personnel conflicts. Tasks may be independent but interrelated.

Page 10: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Team FormationTeam Formation

Project manager will review tasks and decide on the skills required to complete them.

Team members should possess other behavioral characteristics or “soft skills”.

No perfect person exists, managers should not look for mythical candidates.

Page 11: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Technical Software skillsTechnical Software skills

Technical skill– A specialized skill in a subject that is needed to perform the

activities in that subject domain. Usually requires knowledge and training in a scientific, engineering, or business discipline.

– The skill areas include: Requirements solicitation and specification Database design Design, programming and debugging Test design and test script writing

Page 12: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Technical Software skillsTechnical Software skills

Complementary set of skills and experience related to tools that support these areas is needed.

Project manager should be aware of the value of these tool-specific skills.

Learning curve for tools might be long.– Having ready-made experts can be an advantage.

Page 13: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Technical Software skillsTechnical Software skills

Roles should be clearly defined for people with multiple technical skills.

Many people with impressive skills may come with impressive egos.

Having highly skilled people in the same area might become a source of conflict.

Page 14: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Soft skills and personal traitsSoft skills and personal traits

Traditionally, managers tend to focus on technical skills and experience.

Managers should look for other characteristics, many of which are “soft skills”

Soft skills– A non-technical skill that can be utilized on multiple

occasions and is not restricted to any specific domain.

Page 15: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Soft skills and personal traitsSoft skills and personal traits

These personal traits might include:– Personal ambition– Interpersonal communication skill– Sense of urgency– Strongly held likes and dislikes– Attention to detail

Some team member may have negative personal traits.– E.g., Personal ambition over team goals.

Page 16: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Soft skills and personal traitsSoft skills and personal traits

Teams need a mix personalities– E.g., ambitious leaders as well as less ambitious followers.

Recruiting team members is based on best “guess” and not guaranteed to succeed

New members may have had erroneous expectations which can later lead to disappointment and degradation in performance.

Page 17: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Project Team Life CycleProject Team Life Cycle

Team Formation Team Development Team maintenance

Page 18: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Team DevelopmentTeam Development

Project manager may need to intervene in the team’s adjustment process.– Changing team members– Dismissing participants

Page 19: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Team DevelopmentTeam Development

Some key activities for project managers– Ensuring communication is taking place– Ensuring member are treated with respect– Ensuring clear understanding of roles and assignments– Ensuring the team is not harboring a chronic laggard– Ensuring members understand team goals– Ensuring that members follow the agreed-upon process

Page 20: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Team DevelopmentTeam Development

Project managers need to bring members together and review these topics at the inception of the project and a new members come on board.

Page 21: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Team DevelopmentTeam Development

To promote team building, managers may sponsor:– Off-site meetings– Motivational speakers– Team games, e.g., softball– Team presentations– Remembering birthdays

Group events create strong bond through trust– Member can relate experience to need for interdependence

in software project.

Page 22: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Team DevelopmentTeam Development

Team members behavior need to be continuously monitored

Project managers should perform conscientious socializing– Informal data gathering to pick up any signs of team disorder

(e.g., non-return of emails).

With remote and virtual teams– Communication is a major source of team related problems.

Members may need counseling on basic working etiquette

Page 23: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Team DevelopmentTeam Development

Continuous focus on details is one of project managers’ major assets

Sometime more capable members carry one or a small number of team members and perform their responsibilities.– Team laggards

Page 24: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Team DevelopmentTeam Development

Some reaction to team laggards are:– The team does not seem to mind– The team minds but does not want any change– Team minds but is waiting for management to fix it

Project managers need to fix matters or risk having a demoralized team.

Page 25: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Team DevelopmentTeam Development

Team or personal Issues One or more people are upset about something and

its negatively impacting the team.– E.g., personal (“I can’t stand working with Fred”)– E.g., systemic (“I hate how we do code reviews”)

Start by talking one-to-one to people involved Ask what is going on and what can be done? Seek out causes not just symptoms.

Page 26: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Team DevelopmentTeam Development

Disagreement and conflict People openly disagree on what should be done

(which can be healthy)– Debate only the merits of different ideas– Treat each other with respect– The important thing is how people treat each other when

they disagree.– Disagreement and debate must be converted into positive

action.

The disagreement is preventing progress.

Page 27: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Team Development Team Development

The disagreement is preventing progress.– Seek mutually beneficial outcomes (do not compete)– Find a point of unification (e.g., project need to be on time)– Don’t let personality traits distract you from the goal.– Force people to talk about interests (not positions) and reach

agreement– Be strong but supple

Know points of flexibility If you can’t give more time, can you allocate more money?

Page 28: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Project Team Life CycleProject Team Life Cycle

Team Formation Team Development Team Maintenance

Page 29: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Team MaintenanceTeam Maintenance

Rewarding team members Punishing team members Handling team attrition Team member growth

Page 30: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Managing the teamManaging the team

Primary task of the manager is to have the right people do the correct work on time.

Managers job is to delegate– Understand the goal and limitations of each task– Be able to offer real guidance

Solving programming problems creates:– Lack of direction from manager– Demotivates members

Page 31: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Managing the teamManaging the team

Avoid common management pitfalls:– Base decisions on facts, not solely on intuition and gut

instincts.– Unfairly questioning team’s honesty, integrity or skill– Making politically motivated decisions.– Oversimplifying tasks or avoiding internal detail.

Don’t expect consensus always Avoid micromanagement Address performance problems early

Page 32: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Improving Team Improving Team EffectivenessEffectiveness

It understood that differences in personnel account for the greatest swing in productivity

Some estimation techniques (COCMO) take into account skill and experience of team

In practice it is risky to assess a team as being skewed in either direction

Page 33: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Improving Team Improving Team EffectivenessEffectiveness

For large teams (>50 people) there are often wide variations in experience

It is impossible to staff a nontrivial project with personnel who all have optimal experience, and are fully trained in tools and technology

It this was possible, the team would likely be dysfunctional

Page 34: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Improving Team Improving Team EffectivenessEffectiveness

Having good people does not imply having a good team

It is more important to have a good team balance and coverage are two of the most important

aspects of a good team When a team is out of balance, it is vulnerable. Great teams need coverage across different position

with strong individual players

Page 35: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Improving Team Improving Team EffectivenessEffectiveness

A team with individual all competing to be team leader will be less effective than a balanced team that is focused on team result

Teamwork is much more important that the sum of the individuals

The project manager needs to configure a balance of solid talent with highly skilled people in the leverage positions

Page 36: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Improving Team Improving Team EffectivenessEffectiveness

Five staffing principles1. The principle of top talent: use better but fewer people.

There is an “optimal size” for most jobs, being over or under is bad for team dynamics

2. The principle of job matching: fit the task to the skill and motivation of the people available

Personal agendas do matter, also people sometimes get promoted prematurely

3. The principle of career progression: an organization does best in the long run by helping its people to self-actualize

Page 37: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Improving Team Improving Team EffectivenessEffectiveness

Five staffing principles4. The principle of team balance: select people who will

complement and harmonize with one another. Dimensions include raw skills, psychological makeup (leaders,

followers, risk takers, conservatives, etc)

5. The principle of phaseout: keeping a misfit on the team does not benefit anyone

A misfit will demotivate, and disrupt team balance.

Page 38: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Improving Team Improving Team EffectivenessEffectiveness

Project managers need many leadership qualities in order to enhance team effectiveness

Page 39: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Improving Team Improving Team EffectivenessEffectiveness

Crucial attributes of successful project managers:– Hiring skills: placing the right person in the right job may not

be simple to achieve– Customer-interface skill: avoiding adversarial relationships

among stakeholders is key for success.– Decision-making skill: obvious but hard to define.

Page 40: CEN 4021 10 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ sadjadi@cs.fiu.edu Software Project.

10th LectureCEN 4021: Software Engineering II

Improving Team Improving Team EffectivenessEffectiveness

Crucial attributes of successful project managers:– Team-building skill: teamwork requires that a manager

establish trust, motivate progress, consolidate diverse opinions into a team direction

– Selling skill: must sell all stakeholders on decisions and priorities. Selling requires negotiation, compromise and empathy.