Vous êtes sur la page 1sur 21

"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

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

Directing

Controlling

Selecting and training people for positions or roles in the organization. Arranging the relationships among work units for the accomplishment of objectives and the granting of responsibility and authority to obtain these objectives. Predetermining a course of action for accomplishing organizational objectives.

Establishing, measuring, and evaluating performance of activities toward planned objectives.

Creating an atmosphere and environment that will assist and motivate people to achieve desired end results.

January 16, 2007

Dr. David Workman

Planning a Project
Activity Set Objectives and Goals Develop Strategies Description
Determine the desired outcome for the project. Decide major organizational goals and develop a general program of action for reaching those goals.

Develop Policies
Forecase Future Scenarios and Situations Conduct Risk Assessment Determine possible courses of action. Make planning decisions Establish procedures and rules Develop project plans Prepare budgets Document project plans

Make standing decisions on important recurring matters to provide a guide for decision making.
Anticipate future events or make assumptions about the future; predict future results or expectations from courses of actions. Anticipate possible adverse events and problem areas; state assumptions; develop contingency plans; predict results of possible courses of action. Develop, analyze, and/or evaluate different ways to conduct the project.

Evaluate and select a course of action from among alternatives. Establish methods, guidelines, and limits for accomplishing the project activities.

Establish policies, procedures, rules, tasks, schedules, and resources necessary to complete the project. Allocate estimated costs to project functions, activities, and tasks. Record policy decisions, courses of action, budget, program plans, and contingency plans

January 16, 2007

Dr. David Workman

Planning a Project
Types of Plans Objectives Strategic Policies Procedures Rules Plan Budget Description
The project goals toward which activities are directed. The overall approach to a project that provides guidance for placing emphasis and using resources to achieve the project objectives. Directives that guide decision making and project activities. Policies limit the freedom in making decisions but allow some discretion. 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. Requirements for specific and definite actions to be taken or not taken with respect to particular project situations. No discretion is allowed! The interrelated set of goals, objectives, policies, procedures, rules, work assignments, resources to be used, and other elements necessary to conduct a software project. A statement of the constraints on resources, expressed in quantitative terms such as dollars or staff-hours.

January 16, 2007

Dr. David Workman

Organizing a Project
Activity Identify and group project functions, activities, and tasks Select organizational structures Create organizational positions Define responsibilities and authority Establish position qualifications Document organizational decisions Description
Define, size and categorize the project work. Select the appropriate organizational structures to accomplish the project and to monitor, control, communicate, and coordinate. Establish title, job descriptions, and job relationships for each project role. Define responsibilities for each organizational position and the authority to be granted for the fulfillment of those responsibilities. Define qualifications for persons to fill each position. Document titles, positions, job descriptions, responsibilities, authorities, relationships, and position qualifications.

January 16, 2007

Dr. David Workman

Organizing a Project
Project Tasks
Determine software system requirements. Partition and allocate software requirements to software components. Develop software architecture design Identify and schedule tasks to be done. 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 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 Software Engineering Application (k) Software System Engineering

Organizational Entity

January 16, 2007

Dr. David Workman

Organizing a Project
Functional Project Organization
General Management

System Engineering

Software Engineering Team #1

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

Organizing a Project
Project Oriented Organization
Program Management

Project #1 Manager System Engineering Staff #1 Software Engineering Staff #1 V&V Staff #1 SQA Staff #1

Project #2 Manager System Engineering Staff #2 Software Engineering Staff #2 V&V Staff #2 SQA Staff #2

Project #2 Manager System Engineering Staff #3 Software Engineering Staff #3 V&V Staff #3 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

Organizing a Project
Matrix Organization
General Management

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. Chief Programmer Team. Typically consists of three or four permanently Obsolete 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 Fill organizational positions Assimilate newly assigned personnel Educate or train personnel Provide for general development of the organization Evaluate and appraise personnel Compensate personnel Description
Select, recruit, or promote qualified people for each project position. Orient and familiarize new people with the organization, facilities, and tasks to be done on the project. Make up deficiencies in position qualifications through training and education.

Improve knowledge, attitudes, and skills of the project personnel.

Record and analyze the quantity and quality of project work as the basis for personnel evaluations. Set performance goals and appraise personnel periodically. 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 Provide leadership Supervise personnel Delegate authority Motivate personnel Build teams Coordinate activities Facilitate communication Resolve conflicts Manage changes Document directing decisions Description
Create an environment in which project members can accomplish their assignments with enthusiasm and confidence. Provide day-to-day instructions, guidance, and discipline to help project members fulfill their assigned duties. Allow project personnel to make decisions and expend resources within the limitations and constraints of their roles. Provide a work environment in which project personnel can satisfy their psychological needs. 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. Combine project activities into effective and efficient arrangements. Ensure a free flow of correct information among project members. Encourage constructive differences of opinion and help resolve the resulting conflicts. Stimulate creativity and innovation in achieving project goals. 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 Frederick Taylor Elton Mayo Kurt Lewin Douglas McGregor Abraham Maslow Frederick Herzberg
Workers will respond to an incentive wage. Interpersonal (group) values override individual values. Personnel will respond to group pressure. Group forces can overcome the interests of an individual. Managers must understand nature of people in order to be able to motivate them. Human needs can be categorized in a hierarchy. Satisfied needs are not motivators. A decrease in environmental factors is dissatisfying; an increase in environmental factors is not satisfying; an increase in job content factors is satisfying.

Description

Chris Argyris
Rensis Likert Arch Patton Theory Z TQM (Total Quality Mgmt)

The greater the disparity between company needs and individual needs the greater the dissatisfaction.
Participative management is essential to personal motivation. Executives are motivated by the challenge of work, statis, the urge to achieve leadership, the lash of competition, fear, and money. 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. 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 Salary Chance to Advance Work Environment Location Benefits Facilities/Equipment Job Satisfaction Company Management Job Responsibility Job Dissatifiers
Company Mismanagement Poor Work Environment Little Feeling of Accomplishment Poor Recognition Inadequate Salary Poor Chance to Advance Poor Facilities/Equipment Poor Benefits 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 Develop Standards of Performance Establish Monitoring and Reporting Systems Measure and Analyze Results Initiate Corrective Actions Reward and Discipline Document and Control Methods Description
Set goals that will be achieved when tasks are correctly accomplished. Determine necessary data, who will receive it, when will they receive it, and what will they do with it to control the project. Compare achievements with standards, goals, and plans. Bring requirements, plans, and actual project status into conformance. Praise, remunerate, and discipline project personnel as appropriate. 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 Formal (milestone) Reviews Budget Reviews Independent Auditing Binary Tracking System SQA (Software Quality Assurrance) Unit Development Folder Configuration Management Testing Verification & Validation Walk-throughs and Inspections Description
Periodic, preplanned reviews of work products by developers, customers, uses, and management in order to assess progress. A comparison of estimated budget with actual expenditures in order to determine compliance with or deviations from plan. An independent examination of a software project for the purpose of determining compliance with plans, specifications, and standards. A method of measuring progress on a work package by accepting only 0 or 100% completion. 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.

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.
A method for controlling and reporting on the status of work products generated by the project. The controlled exercise of the program code in order to expose errors. 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. 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

Vous aimerez peut-être aussi