Project Management Concept

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 39

Project Management

Concept
The management spectrum
Effective software project management focuses on the
four P’s: people, product,
process, and project. The order is not arbitrary. The
manager who forgets that software engineering work is
an intensely human endeavor will never have success in
project management.
People
In recognition of the fact that “every
organization needs to continually improve its
ability to
attract, develop, motivate, organize, and retain
the workforce needed to accomplish
its strategic business objectives” [Cur01].
Product
Before a project can be planned, product
objectives and scope should be established,
alternative solutions should be considered, and
technical and management constraints should
be identified.
Process

provides the framework from which a


comprehensive plan for software development
can be established. A small number of
framework activities are applicable to all
software projects, regardless of their size
or complexity.
People
In a study published by the IEEE [Cur88], the
engineering vice presidents of three
major technology companies were asked what
was the most important contributor
to a successful software project.
Stakesholder
1. Senior managers who define the business
issues that often have a significant influence
on the project.
2. Project (technical) managers who must
plan, motivate, organize, and control
the practitioners who do software work.
3. Practitioners who deliver the technical skills
that are necessary to engineer a product or
application.
4. Customers who specify the requirements for
the software to be engineered and other
stakeholders who have a peripheral interest in the
outcome.
5. End users who interact with the software once
it is released for production use.
Team Leaders

Project management is a people-intensive


activity, and for this reason, competent
practitioners often make poor team leaders.
They simply don’t have the right mix of
people skills.
In an excellent book of technical leadership,
Jerry Weinberg [Wei86] suggests an
MOI model of leadership:
Motivation. The ability to encourage (by “push or pull”)
technical people to produce to their best ability.
Organization. The ability to mold existing processes (or invent
new ones) that will enable the initial concept to be translated
into a final product.
Ideas or innovation. The ability to encourage people to create
and feel creative even when they must work within bounds
established for a particular software product or application.
Weinberg suggests that successful project leaders apply
a problem-solving management style. That is, a software
project manager should concentrate on understanding
the problem to be solved, managing the flow of ideas,
and at the same time,
letting everyone on the team know (by words and, far
more important, by actions)
that quality counts and that it will not be compromised.
Another view [Edg95] of the characteristics that
define an effective project manager emphasizes
four key traits:
Problem solving. An effective software project
manager can diagnose the
technical and organizational issues that are most
relevant, systematically
structure a solution or properly motivate other
practitioners to develop the solution, apply
lessons learned from past projects to new
situations
Managerial identity. A good project manager
must take charge of the
project. She must have the confidence to
assume control when necessary
and the assurance to allow good technical
people to follow their instincts.
Achievement. A competent manager must
reward initiative and accomplishment to
optimize the productivity of a project team. She
must demonstrate through her own actions that
controlled risk taking will not be punished.
Influence and team building. An effective
project manager must be able
to “read” people; she must be able to
understand verbal and nonverbal signals and
react to the needs of the people sending these
signals. The manager must remain under control
in high-stress situations.
The software team
The “best” team structure depends on the management
style of your organization, the number of people who
will populate the team and their skill levels, and the
overall problem difficulty. Mantei [Man81] describes
seven project factors that should be
considered when planning the structure of software
engineering teams
• Difficulty of the problem to be solved
• “Size” of the resultant program(s) in lines of code or function points
• Time that the team will stay together (team lifetime)
• Degree to which the problem can be modularized
• Required quality and reliability of the system to be built
• Rigidity of the delivery date
• Degree of sociability (communication) required for the project
Agile Team
To make effective use of the competencies of each team
member and to foster
effective collaboration through a software project, agile
teams are self-organizing.
A self-organizing team does not necessarily maintain a
single team structure but
instead uses elements of Constantine’s random, open,
and synchronous paradigms
Coordination and Communication Issues
Uncertainty is common, resulting in a continuing stream
of changes that ratchets the project team.
Interoperability has
become a key characteristic of many systems. New
software must communicate with
existing software and conform to predefined constraints
imposed by the system or
product.
The Product
A software project manager is confronted with a
dilemma at the very beginning of a
software project. Quantitative estimates and an
organized plan are required, but
solid information is unavailable.
Software Scope
The first software project management activity is the determination of
software scope. Scope is defined by answering the following questions:
Context. How does the software to be built fit into a larger system, product,
or business context, and what constraints are imposed as a result of the
context?
Information objectives. What customer-visible data objects are produced as
output from the software? What data objects are required for input?
Function and performance. What function does the software perform to
transform input data into output? Are any special performance characteristics
to be addressed?
The Process
our team must decide which process model is most
appropriate for (1) the customers who have requested
the product and the people who will do the work, (2) the
characteristics of the product itself, and (3) the project
environment in which the
software team works
Melding the Product and the Process

Project planning begins with the melding of the product


and the process. Each function to be engineered by your
team must pass through the set of framework activities
that have been defined for your software organization.
In order to manage a successful software project, you have to understand
what can
go wrong so that problems can be avoided. In an excellent paper on software
projects, John Reel [Ree99] defines 10 signs that indicate that an information
systems
project is in jeopardy:
1. Software people don’t understand their customer’s needs.
2. The product scope is poorly defined.
3. Changes are managed poorly.
4. The chosen technology changes.
5. Business needs change [or are ill defined].
6. Deadlines are unrealistic.
7. Users are resistant.
8. Sponsorship is lost [or was never properly obtained].
9. The project team lacks people with appropriate skills.
10. Managers [and practitioners] avoid best practices and lessons learned.
In an excellent paper on software process and projects, Barry Boehm
[Boe96] states: “you need an organizing principle that scales down to
provide simple [project] plans for simple projects.” Boehm suggests an
approach that addresses project objectives, milestones and schedules,
responsibilities, management and
technical approaches, and required resources. He calls it the W5
HH Principle, after a series of questions that lead to a definition of key
project characteristics and the
resultant project plan:
Why is the system being developed? All stakeholders should assess the
validity of business reasons for the software work. Does the business purpose
justify the expenditure of people, time, and money?
What will be done? The task set required for the project is defined.
When will it be done? The team establishes a project schedule by identifying
when project tasks are to be conducted and when milestones are to be
reached
Who is responsible for a function? The role and responsibility of each
member of
the software team is defined.
Where are they located organizationally? Not all roles and responsibilities
reside
within software practitioners. The customer, users, and other stakeholders
also have responsibilities.
How will the job be done technically and managerially? Once product scope
is established, a management and technical strategy for the project must be
defined.
How much of each resource is needed?
1. You have been appointed a project manager within an information systems
organization.
Your job is to build an application that is quite similar to others your team
has built, although
this one is larger and more complex. Requirements have been thoroughly
documented by the
customer. What team structure would you choose and why? What software
process model(s)
would you choose and why?
2. You have been appointed a project manager for a small software products
company. Your
job is to build a breakthrough product that combines virtual reality hardware
with state-of-theart software. Because competition for the home
entertainment market is intense, there is significant pressure to get the job
done. What team structure would you choose and why? What
software process model(s) would you choose and why?
3. You have been appointed a project manager for a major software products
company.
Your job is to manage the development of the next-generation version of its
widely used wordprocessing software. Because competition is intense, tight
deadlines have been established and announced. What team structure would
you choose and why? What software process model(s)
would you choose and why?
4. You have been appointed a software project manager for a company that
services the genetic engineering world. Your job is to manage the
development of a new software product that
will accelerate the pace of gene typing. The work is R&D oriented, but the
goal is to produce a
product within the next year. What team structure would you choose and
why? What software
process model(s) would you choose and why?
Thank you

You might also like