Design of Secure Multi-Tier Web

Download Report

Transcript Design of Secure Multi-Tier Web

CEN 4021
Software Engineering II
Software Project Planning (POMA)
Human resources
Instructor: Masoud Sadjadi
http://www.cs.fiu.edu/~sadjadi/
[email protected]
CEN 4021
10th Lecture
Acknowledgements

Dr. Onyeka Ezenwoye

Dr. Peter Clarke
CEN 4021: Software Engineering II
10th Lecture
2
Agenda
Organizing (POMA)
– Human resources
– The Project Team
CEN 4021: Software Engineering II
10th Lecture
Class 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.
CEN 4021: Software Engineering II
10th Lecture
Project 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
CEN 4021: Software Engineering II
10th Lecture
Project Team Life Cycle


Teams need forming, developing and maintaining
Amount of management activity differs at different
stages of the team life cycle.
Developing
Relative
management
Effort
Forming
CEN 4021: Software Engineering II
Maintaining
Team Stages
10th Lecture
Project 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.
CEN 4021: Software Engineering II
10th Lecture
Project Team Life Cycle



Team formation
Team Development
Team maintenance
CEN 4021: Software Engineering II
10th Lecture
Team 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.
CEN 4021: Software Engineering II
10th Lecture
Team 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.
CEN 4021: Software Engineering II
10th Lecture
Technical 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
CEN 4021: Software Engineering II
10th Lecture
Technical 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.
CEN 4021: Software Engineering II
10th Lecture
Technical 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.
CEN 4021: Software Engineering II
10th Lecture
Soft 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.
CEN 4021: Software Engineering II
10th Lecture
Soft 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.
CEN 4021: Software Engineering II
10th Lecture
Soft 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.
CEN 4021: Software Engineering II
10th Lecture
Project Team Life Cycle



Team Formation
Team Development
Team maintenance
CEN 4021: Software Engineering II
10th Lecture
Team Development

Project manager may need to intervene in the team’s
adjustment process.
– Changing team members
– Dismissing participants
CEN 4021: Software Engineering II
10th Lecture
Team 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
CEN 4021: Software Engineering II
10th Lecture
Team 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.
CEN 4021: Software Engineering II
10th Lecture
Team 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.
CEN 4021: Software Engineering II
10th Lecture
Team 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
CEN 4021: Software Engineering II
10th Lecture
Team 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
CEN 4021: Software Engineering II
10th Lecture
Team 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.
CEN 4021: Software Engineering II
10th Lecture
Team 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.
CEN 4021: Software Engineering II
10th Lecture
Team 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.
CEN 4021: Software Engineering II
10th Lecture
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?
CEN 4021: Software Engineering II
10th Lecture
Project Team Life Cycle



Team Formation
Team Development
Team Maintenance
CEN 4021: Software Engineering II
10th Lecture
Team Maintenance




Rewarding team members
Punishing team members
Handling team attrition
Team member growth
CEN 4021: Software Engineering II
10th Lecture
Managing 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
CEN 4021: Software Engineering II
10th Lecture
Managing 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
CEN 4021: Software Engineering II
10th Lecture
Improving Team Effectiveness



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
CEN 4021: Software Engineering II
10th Lecture
Improving Team Effectiveness



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

CEN 4021: Software Engineering II
10th Lecture
Improving Team Effectiveness





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
CEN 4021: Software Engineering II
10th Lecture
Improving Team Effectiveness



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
CEN 4021: Software Engineering II
10th Lecture
Improving Team Effectiveness

Five staffing principles
1. 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
CEN 4021: Software Engineering II
10th Lecture
Improving Team Effectiveness

Five staffing principles
4. 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.
CEN 4021: Software Engineering II
10th Lecture
Improving Team Effectiveness

Project managers need many leadership qualities in
order to enhance team effectiveness
CEN 4021: Software Engineering II
10th Lecture
Improving Team Effectiveness

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.
CEN 4021: Software Engineering II
10th Lecture
Improving Team Effectiveness

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.
CEN 4021: Software Engineering II
10th Lecture