2. Project management
• “Project management involves the planning,
monitoring, and control of the people, process and
events that occur as software evolves from
preliminary concept to operational
implementation.” – Pressman, 2000
• For most projects, important goals 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.
3. Project management...
software engineering is different from other
types of engineering in a number of ways that make
software management particularly challenging.
The product is intangible
Large software projects are often ‘one-off’ project
Software processes are variable and organization-specific
4. Project management...
What is it?
Planning, monitoring and control of
People
Process
Events
as software evolves from preliminary concept to operational
implementation
Who does it?
Everyone, to some extent, e.g.:
A software engineer manages his/her daily activities: planning,
monitoring and controlling technical tasks
A project manager plans, monitors and controls the activities of a
team of software engineers
A senior manager coordinates the interactions between business
and software professionals
5. Project management...
• Why is it important?
▫ As we saw earlier, many projects fail
▫ Software development is a complex task
particularly if it involves many people and lasts a long time
“there are no technical failures; only management failures” –
Braude, 2001
• What are the steps?
▫ Understand the four P’s:
People – must be organized to work effectively
Product – must have effective communication with the customer
to specify scope and requirements
Process – must be appropriate for people and product
Project – must estimate effort and time needed, define work
products, establish quality checkpoints, establish methods to
monitor and control work defined by plan
▫ We will focus on people and project
6. The People
• People working on software projects play various
roles, which can be organized into five basic types:
▫ Senior managers
Define business issues that often have great impact on project
▫ Project managers
Plan, motivate, organize and control the people who do technical aspects
of work – the practitioners
▫ Practitioners
Deliver necessary technical skills to engineer the product
▫ Customers & Stakeholders
Specify requirements and scope for software
▫ End-Users
Interact with software product once it is released
7. The Team Leader
• Project management is a people-oriented activity
▫ People with great technical skills don’t necessarily make good
team leaders – people skills are needed too
• Jerry Weinberg suggests an MOI model of leadership
▫ Motivation
Ability to encourage technical people to work to the best of their abilities
(push or pull)
▫ Organization
Ability to adapt existing processes, or devise new ones, to enable the
concept to be turned into a product
▫ Ideas/Innovation
Ability to encourage people to create, and to feel creative, within the
bounds of the particular product
• Team leader must let everyone know, by words and deeds, that quality
is important – lead by example!
8. The Team Leader
Another view of what makes a good team leader:
Problem solving
Decide which technical and organizational issues are most important
Create a systematic solution to the problem – or motivate others to do so
Apply lessons from past projects to new ones
Remain flexible enough to change direction if initial proposed solution
doesn’t work
Managerial Identity
Confidence to take charge of project when necessary, but also to let good technical
people use their initiative
Achievement
Reward initiative and accomplishment
Demonstrate that controlled risk-taking will not be punished
Influence and Team building
Be able to “read” people – understand both verbal and non-verbal signals from
team members, and react to their needs
9. The Team Leader
Mantei suggests three generic team organizations:
Democratic decentralized (DD).
Has no permanent leader.
Task coordinators are appointed for short durations and then replaced by
others who may coordinate different tasks
Decisions on problems and approach are made by group consensus
Controlled decentralized (CD)
Has a defined leader who coordinates specific tasks and secondary
leaders that have responsibility for subtasks
Problem solving remains a group activity, but implementation of
solutions is partitioned among subgroups
Controlled Centralized (CC)
Top-level problem solving and internal team coordination are managed
by a team leader
10. The Project
Things that can go wrong:
Software people don’t understand their customer’s need.
The product scope is poorly defined.
Changes are managed poorly.
The chosen technology changes.
Business need changes.
Deadlines are unrealistic.
The project team lacks people with appropriate skills.
Managers and practitioners avoid best practices and lessons
learned.
11. The Project
Make Smart Decisions:
Decide to use existing software components.
Decides to avoid custom interfaces when standard approaches
are available.
Decides to identify and avoid obvious risks.
Evaluate the planned and actual schedules.
Collect and analyze software project metrics.
Get feedback from team members and customer.
Record findings in written form.
12. The W5HH Principle
Why the system is being developed?
What will be done?
When will it be done?
Who is responsible for a function?
Where are they located organizationally?
How the job will be done technically and managerially?
How much of each resource is needed?
13. 90-90 rule
The first 90 percent of a system absorbs 90 percent of the
allotted effort and time.
The last 10 percent takes another 90 percent of the allotted
effort and time.