(Jan 16): Introduction to Software Project Management

advertisement
"Software Engineering Project Management"
by Richard Thayer
Cal. State University, Sacramento
2000
CEN5016: Software Engineering
© Dr. David A. Workman
January 16, 2007
Reference Sources
Software Engineering Project Management,2nd.
Edited by Richard Thayer and Edward Yourdon
IEEE Computer Society, 2000
January 16, 2007
Dr. David Workman
2
Functions of Management
Weihrich: " Management performs the same functions (below) regardless of the position in the organization
or the enterprise being managed."
"Management functions are characteristic duties of managers; management practices, methods,
activities, and tasks are specific to the enterprise or the job managed."
Management
Planning
Organizing
Staffing
Selecting and training people for
positions or roles in the organization.
Directing
Controlling
Establishing, measuring, and
evaluating performance of
activities toward planned objectives.
Arranging the relationships among work units for the
accomplishment of objectives and the granting of
responsibility and authority to obtain these objectives.
Creating an atmosphere and
environment that will assist
and motivate people to achieve
desired end results.
Predetermining a course of
action for accomplishing
organizational objectives.
January 16, 2007
Dr. David Workman
3
Planning a Project
Activity
Description
Set Objectives and Goals
Determine the desired outcome for the project.
Develop Strategies
Decide major organizational goals and develop a general program of action for reaching those goals.
Develop Policies
Make standing decisions on important recurring matters to provide a guide for decision making.
Forecase Future
Scenarios and Situations
Anticipate future events or make assumptions about the future; predict future results or expectations
from courses of actions.
Conduct Risk
Assessment
Anticipate possible adverse events and problem areas; state assumptions; develop contingency plans;
predict results of possible courses of action.
Determine possible
courses of action.
Develop, analyze, and/or evaluate different ways to conduct the project.
Make planning decisions
Evaluate and select a course of action from among alternatives.
Establish procedures and
rules
Establish methods, guidelines, and limits for accomplishing the project activities.
Develop project plans
Establish policies, procedures, rules, tasks, schedules, and resources necessary to complete the project.
Prepare budgets
Allocate estimated costs to project functions, activities, and tasks.
Document project plans
Record policy decisions, courses of action, budget, program plans, and contingency plans
January 16, 2007
Dr. David Workman
4
Planning a Project
Types of Plans
Description
Objectives
The project goals toward which activities are directed.
Strategic
The overall approach to a project that provides guidance for placing emphasis and using resources to achieve the
project objectives.
Policies
Directives that guide decision making and project activities. Policies limit the freedom in making decisions but
allow some discretion.
Procedures
Directives that specify customary methods of handling activities; guides to actions rather than guides to decision
making. Procedures detail the exact manner in which a project activity must be accomplished and allow very little
discretion.
Rules
Requirements for specific and definite actions to be taken or not taken with respect to particular project situations.
No discretion is allowed!
Plan
The interrelated set of goals, objectives, policies, procedures, rules, work assignments, resources to be used, and
other elements necessary to conduct a software project.
Budget
A statement of the constraints on resources, expressed in quantitative terms such as dollars or staff-hours.
January 16, 2007
Dr. David Workman
5
Organizing a Project
Activity
Description
Identify and group project
functions, activities, and tasks
Define, size and categorize the project work.
Select organizational
structures
Select the appropriate organizational structures to accomplish the project and to monitor, control,
communicate, and coordinate.
Create organizational
positions
Establish title, job descriptions, and job relationships for each project role.
Define responsibilities and
authority
Define responsibilities for each organizational position and the authority to be granted for the
fulfillment of those responsibilities.
Establish position
qualifications
Define qualifications for persons to fill each position.
Document organizational
decisions
Document titles, positions, job descriptions, responsibilities, authorities, relationships, and position
qualifications.
January 16, 2007
Dr. David Workman
6
Organizing a Project
Project Tasks
Organizational Entity
Determine software system requirements.
Partition and allocate software requirements to software components.
Develop software architecture design
Identify and schedule tasks to be done.
Software System Engineering
Establish and maintain external and internal interfaces
Control the software development process.
Verify and validate the software process and product.
Analyze software components for product-k requirements
Design components of product-k
Implement product-k software components
Software Engineering Application (k)
Prepare documents
Support verification and validation
Prepare software verification and validation plan
Conduct verification and validation activities
Software Verification & Validation
Prepare and support software testing
Establish software quality assurance plan
Conduct software quality activities
Software Quality Assurrance
Document results of software quality activities
January 16, 2007
Dr. David Workman
7
Organizing a Project
Functional Project Organization
System
Engineering
Software
Engineering
Team #1
General
Management
Software
Engineering
Team #1
Verification
&
Validation
SW Quality
Assurance
Personnel in each organizational unit perform the same function – basically they have the same job descriptions
although they may vary in experience and leadership roles. When a work product is produced or reviewed
by members of one organizational unit, it is passed to some other organizational unit for further development
or review. There is no single project supervisor over the whole project, but there is typically a project coordinator
and/or customer/user liason.
January 16, 2007
Dr. David Workman
8
Organizing a Project
Project Oriented Organization
Project #1
Manager
Program
Management
Project #2
Manager
Project #2
Manager
System
Engineering
Staff #1
System
Engineering
Staff #2
System
Engineering
Staff #3
Software
Engineering
Staff #1
Software
Engineering
Staff #2
Software
Engineering
Staff #3
V&V
Staff #1
V&V
Staff #2
V&V
Staff #3
SQA
Staff #1
SQA
Staff #2
SQA
Staff #3
The organization is organized around projects – each project headed by a Project Manager that has the responsibility
to hire, discharge, train, and promote people within the project. Each project has its own staff organized around similar
personnel functional roles.
January 16, 2007
Dr. David Workman
9
Organizing a Project
General
Management
Matrix Organization
System
Engineering
Software
Engineering
Team #1
Software
Engineering
Team #2
Verification
&
Validation
SW Quality
Assurance
Project A
SysEng
SWEng
SWEng
VVEng
SQEng
Project B
SysEng
SWEng
SWEng
VVEng
SQEng
Project C
SysEng
SWEng
SWEng
VVEng
SQEng
SysEng
SWEng
SWEng
VVEng
SQEng
Personnel in each functional unit are assigned to work on a given project – some may not be assigned to any project
(pool resources). Each project is managed by a Project Manager who has authority over work assignments, but does
not have authority to hire, discharge, train, or promote personnel – this authority resides in the manager of each
functional unit. This structure is more efficient in its use of human resources but frequently results in management
control conflicts.
January 16, 2007
Dr. David Workman
10
Organizing a Project
Types of Project Teams
– Egoless Programming Teams. Typically consists of 10 – 12 members.
Discussions and decisions are made by consensus. Group leadership rotates;
there is no permanent central authority.
Obsolete– Chief Programmer Team. Typically consists of three or four permanently
assigned members – the chief, the assistant (or backup), the librarian, and
perhaps other assistant programmers. The Chief manages all technical aspects
of the project and makes all managerial and technical decisions. The librarian
maintains all documents, code, and data, and performs all administrative work.
Most
– Hierarchical Team. Typically consists of a senior project leader overseeing two
Common
or more junior leads who, in turn, oversee a small group of software engineers.
Obsolete
Cardinal Rule of Project Management: On any team of five (5) or more individuals, the
team leader (manager) is a full-time job and should not expect to carry any share of the
technical work.
January 16, 2007
Dr. David Workman
11
Staffing the Project
Staffing Issues
– Project managers are frequently selected for their ability to perform engineering
tasks rather than their ability to manage a group of people.
– The productivity of various technical people varies greatly from individual to
individual (as much as 25:1). Similarly, teams may vary as much as 4:1.
– High turnover rate among personnel (especially in a Matrix Organization)
– Universities are not producing a sufficient number of computer science
graduates who understand the software engineering process or project
management.
– Training plans for individual software developers are not developed or
maintained – and training is usually too little and too late.
January 16, 2007
Dr. David Workman
12
Staffing a Project
Activity
Description
Fill organizational positions
Select, recruit, or promote qualified people for each project position.
Assimilate newly assigned
personnel
Orient and familiarize new people with the organization, facilities, and tasks to be done on the
project.
Educate or train personnel
Make up deficiencies in position qualifications through training and education.
Provide for general
development of the
organization
Improve knowledge, attitudes, and skills of the project personnel.
Evaluate and appraise
personnel
Record and analyze the quantity and quality of project work as the basis for personnel evaluations.
Set performance goals and appraise personnel periodically.
Compensate personnel
Provide wages, bonuses, benefits, or other financial remuneration commensurate with project
responsibilities and performance.
January 16, 2007
Dr. David Workman
13
Directing a Project
•
Major Issues
– Failure to have effective communication
– Money is not a sufficient motivator for software developers.
– Companies and managers do not have the proper tools and techniques to
motivate software engineers.
– Customers and manager do not recognize the potential software impact caused by
a seemingly trivial change, for example, they believe it is "just a simple matter of
programming."
January 16, 2007
Dr. David Workman
14
Directing a Project
Activity
Description
Provide leadership
Create an environment in which project members can accomplish their assignments with enthusiasm
and confidence.
Supervise personnel
Provide day-to-day instructions, guidance, and discipline to help project members fulfill their assigned
duties.
Delegate authority
Allow project personnel to make decisions and expend resources within the limitations and constraints
of their roles.
Motivate personnel
Provide a work environment in which project personnel can satisfy their psychological needs.
Build teams
Provide a work environment in which project personnel can work together toward common project
goals. Set performance goals for teams as well as for individuals.
Coordinate activities
Combine project activities into effective and efficient arrangements.
Facilitate communication
Ensure a free flow of correct information among project members.
Resolve conflicts
Encourage constructive differences of opinion and help resolve the resulting conflicts.
Manage changes
Stimulate creativity and innovation in achieving project goals.
Document directing
decisions
Document decisions involving delegation of authority, communication and coordination, conflict
resolution, and change management.
January 16, 2007
Dr. David Workman
15
Directing a Project
Motivational Models
And Techniques
Description
Frederick Taylor
Workers will respond to an incentive wage.
Elton Mayo
Interpersonal (group) values override individual values. Personnel will respond to group pressure.
Kurt Lewin
Group forces can overcome the interests of an individual.
Douglas McGregor
Managers must understand nature of people in order to be able to motivate them.
Abraham Maslow
Human needs can be categorized in a hierarchy. Satisfied needs are not motivators.
Frederick Herzberg
A decrease in environmental factors is dissatisfying; an increase in environmental factors is not
satisfying; an increase in job content factors is satisfying.
Chris Argyris
The greater the disparity between company needs and individual needs the greater the dissatisfaction.
Rensis Likert
Participative management is essential to personal motivation.
Arch Patton
Executives are motivated by the challenge of work, statis, the urge to achieve leadership, the lash of
competition, fear, and money.
Theory Z
A combination of American and Japanese management style. People need goals and objectives,
otherwise they can easily impede their own progress and the progress of their company.
TQM (Total Quality Mgmt)
A strategy for continually improving performance at each level and area of responsibility.
January 16, 2007
Dr. David Workman
16
Directing a Project
Self Actualization
Esteem and Recognition
Social Needs
Security and Safety
Biological Survival
Maslow's Hierarchy of Human Needs
January 16, 2007
Dr. David Workman
17
Staffing a Project
Job Attractors
Job Dissatifiers
Salary
Company Mismanagement
Chance to Advance
Poor Work Environment
Work Environment
Little Feeling of Accomplishment
Location
Poor Recognition
Benefits
Inadequate Salary
Facilities/Equipment
Poor Chance to Advance
Job Satisfaction
Poor Facilities/Equipment
Company Management
Poor Benefits
Job Responsibility
Poor Career Path Definition
January 16, 2007
Dr. David Workman
18
Controlling a Project
•
Major Issues
– Measuring progress by budget expenditures without consideration of work
accomplished.
– Progress is not always visible nor quantifiable.
– Quality is optional, not monitored or measured, nor controlled.
– Standards and procedures are not written down or not enforced.
– The body of knowledge represented by "software metrics" is not fully developed,
particularly when applied to software quality.
January 16, 2007
Dr. David Workman
19
Controlling a Project
Activity
Description
Develop Standards of Performance
Set goals that will be achieved when tasks are correctly accomplished.
Establish Monitoring and Reporting
Systems
Determine necessary data, who will receive it, when will they receive it, and what will
they do with it to control the project.
Measure and Analyze Results
Compare achievements with standards, goals, and plans.
Initiate Corrective Actions
Bring requirements, plans, and actual project status into conformance.
Reward and Discipline
Praise, remunerate, and discipline project personnel as appropriate.
Document and Control Methods
Document the standards of performance, monitoring and control systems, and reward
and discipline mechanisms.
January 16, 2007
Dr. David Workman
20
Controlling a Project
Method of Monitoring a Project
Description
Formal (milestone) Reviews
Periodic, preplanned reviews of work products by developers, customers, uses, and
management in order to assess progress.
Budget Reviews
A comparison of estimated budget with actual expenditures in order to determine
compliance with or deviations from plan.
Independent Auditing
An independent examination of a software project for the purpose of determining
compliance with plans, specifications, and standards.
Binary Tracking System
A method of measuring progress on a work package by accepting only 0 or 100%
completion.
SQA (Software Quality Assurrance)
A planned and systematic pattern of all actions necessary to provide adequate confidence
that the development process and the work products conform to established standards.
Unit Development Folder
A specific form of development notebook that provides an orderly approach to the
development process and ensures the work products of a software project conform to
established standards.
Configuration Management
A method for controlling and reporting on the status of work products generated by the
project.
Testing
The controlled exercise of the program code in order to expose errors.
Verification & Validation
The process of assuring that each phase of the development life cycle correctly
implements the specifications from the previous phase and that each work product
satisfies its requirements.
Walk-throughs and Inspections
Systematic examination of software work products by the producer's peers, conducted
for the purpose of finding errors.
January 16, 2007
Dr. David Workman
21
Download