You are on page 1of 5

CS1SE16 PROJECT MANAGEMENT

Project management

Good management cannot guarantee project's success but bad management usually results in project's
failure.
The general success criteria for a project are:
 Deliver the software to the customer at the agreed time.
 Keep overall costs within budget.
 Deliver software that meets the customer's expectations.
 Maintain a happy and well functioning development team.

Software engineering is different from other types of engineering in a number of ways that make
software management particularly challenging:
 The product is intangible
 Most projects are one-off – there is no point creating the same software twice, so experience
from previous projects may not be transferable to the next one.
 Software processes are variable and organization-specific – it's hard to predict reliably when a
particular software process is likely to lead to development problems.

Most software project managers do:


 Project planning – planning, estimating and scheduling project development, assigning tasks,
supervising the work
 Reporting – communicating the progress to the customers and company managers
 Risk management – assessing risks, monitoring them, taking actions when problems arise
 People management – choosing people to do particular tasks and establishing an effective way
of working
 Proposal writing – describing the objectives of the program and how it will be carried out

The factors influencing project management are:


 Company size
 Software customers
 Software size
 Software type
 Organizational culture
 Software development process

Risk management
Risk management is anticipating risks that may affect the project schedule or the quality of software
being developed and taking actions to avoid those risks.
There are 3 categories of risks:
 Project risks – affecting the project schedule or resources, e.g. loss of an experienced designer
 Product risks- affecting the quality or performance of the software, e.g. failure of a purchased
component to perform as expected
 Business risks – affecting the organization, e.g. a competitor introducing a product
Risk management is particularly important for software projects because of the inherent uncertainties
most projects face.

Outline of the process of risk management

Risk identification – identifying possible project, product and business risks – first stage of the process.
There is at least 6 types of risks that should be thought about:
 Technology risks
 People risks
 Organizational risks
 Tool risks
 Requirements risks
 Estimation risks

Risk analysis – assessing the likelihood and consequences of the risks. Requires thinking about each
identified risk and assessing its probability and seriousness. To do that, you need to rely on your
judgement and experience from previous projects. The risk should be assigned to a band according to:
 Probability – very low, low, moderate, high, very high
 Seriousness – insignificant, tolerable, serious (causing major delay), catastrophic (threatening
the survival of the project)
Then the results should be tabulated. The table needs to be updated as more information about the
risks become available. The most serious risks should be monitored.

Risk planning – making plans to avoid the risks or minimize the consequences. Each risk needs to be
considered and a strategy to manage it should be developed. There are several risk management
strategies:
 Avoidance – reducing the probability of the risk occurring
 Minimization – reducing the impact of the risk
 Contingency plan – a plan to deal with a risk if it does arise

Risk monitoring – assessing the risks regularly and revising plans for risk mitigation when more is
learnt about them. It includes checking that the assumptions about risks haven't changed. Each of the
risks should be regularly assessed to see if its probability or effects has changed

The risk management process is an iterative process that continues throughout the project.

Managing people
People are an organization's most important asset. Poor people management is an important factor
contributing to project failures.
Good software engineers are not necessarily good managers.

Critical factors in people management are:


 Consistency – people in the team should be treated in a comparable way
 Respect – each member of the team should be given opportunities to make contributions;
differences between people should be respected
 Inclusion – all views should be listened to and taken into account
 Honesty – a manager should be honest about what's going on well and badly in the team and
about his own level of knowledge

Motivating people
Motivation means organizing the work and working environment to encourage people to work as
effectively as possible.
According to Maslov, people are motivated by having their needs satisfied. The needs are arranged in
levels:

Personality types also affect motivation. Bass and


Dunteman classify professionals into 3 types:
 Task-oriented – motivated by the work they
do and intellectual challenge of software
development; very good people to have on
the team, altough they may lack
communication skills.
 Self-oriented – motivated by personal
success and recognition, interested in
software development as a means to
achieving their own goals. May be dangerous for the team as they tend to undermine the work
of others to get ahead.
 Interaction-oriented – motivated by the presence and actions of coworkers.

Teamwork

It is a critical management task to put together a group that has the right balance of technical skills,
experience and personalities. A good group is cohesive and has team spirit. Members of a cohesive
group think of the group as more important than the individuals.
Benefits of creating a cohesive group:
 The group can establish its own quality standards – they're more likely to be followed than
external standards imposed on the group
 People learn from and support each other
 Knowledge is shared – if a member leaves, others can take their tasks
 Refactoring and continuous improvement is encouraged

One of the most effective ways of promoting cohesion is to be inclusive. Members should be treated as
trustworthy and information should be freely available.
There are 3 factors that affect a team, apart from the nature of a project and organizational issues:
 People in the group
 Group organization
 Technical and managerial communications

Group organization
Informal groups can be successful particularly when most members are competent and experienced. If a
group is composed of inexperienced members, they might need an authority to direct their work.

Hierarchical groups have clear organizational structure, decisions are made on the top and
implemented by the people on the bottom, there is little upward communication. These groups don't
formally recognize ability differences between team members.

Chief programmer team – a team build around an individual, highly skilled programmer. The problems
with this group are: it is overdependent on the chief programmer, other team members may become
unmotivated.

Group communication
It is essential that group members can communicate effectively with each other and other project
stakeholders. Effectiveness of the communication is influenced by:
 Group size – it is harder to communicate effectively in bigger groups
 Group structure – informal groups tend to communicate better
 Group composition – people with the same personality type may clash with each other
 Physical work environment
 Available communication channels
Communication must be two-way to be effective.

Summary

 Good software project management is essential if software engineering projects are to be


developed on schedule and within budget.
 Software management is distinct from other engineering management. Software is intangible.
Projects may be novel or innovative so there is no body of experience to guide their
management. Software processes are not as mature as traditional engineering processes.
 Risk management is now recognized as one of the most important project management tasks.
 Risk management involves identifying and assessing major project risks to establish the
probability that they will occur and the consequences for the project.
 People are motivated by interaction with other people, recognition of management and their
peers and by being given opportunities for personal development.
 Software development groups should be fairly small and cohesive. The key factors that influence
the effectiveness of a group are the people in that group, the way it is organized and
communication between members.
 Communications within a group are influenced by factors such as the status of group members,
its size, gender composition, personalities and available communication channels.
 Poor people management is a major failure reason.

You might also like