Lecture 4 (Jan 16): Introduction to Software Project Management

21
"Software Engineering Project Management" by Richard Thayer Cal. State University, Sacramento 2000 CEN5016: Software Engineering © Dr. David A. Workman January 16, 2007

description

 

Transcript of Lecture 4 (Jan 16): Introduction to Software Project Management

Page 1: Lecture 4 (Jan 16): Introduction to Software Project Management

"Software Engineering Project Management"by Richard Thayer

Cal. State University, Sacramento2000

CEN5016: Software Engineering

© Dr. David A. Workman

January 16, 2007

Page 2: Lecture 4 (Jan 16): Introduction to Software Project Management

January 16, 2007 Dr. David Workman 2

Reference Sources

Software Engineering Project Management,2nd.Edited by Richard Thayer and Edward Yourdon

IEEE Computer Society, 2000

Page 3: Lecture 4 (Jan 16): Introduction to Software Project Management

January 16, 2007 Dr. David Workman 3

Functions of Management

Management

Planning Organizing Staffing Directing Controlling

Weihrich: " Management performs the same functions (below) regardless of the position in the organizationor 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."

Arranging the relationships among work units for the accomplishment of objectives and the granting of responsibility and authority to obtain these objectives.

Selecting and training people for positions or roles in the organization.

Predetermining a course of action for accomplishing organizational objectives.

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

Establishing, measuring, andevaluating performance of activities toward planned objectives.

Page 4: Lecture 4 (Jan 16): Introduction to Software Project Management

January 16, 2007 Dr. David Workman 4

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

Page 5: Lecture 4 (Jan 16): Introduction to Software Project Management

January 16, 2007 Dr. David Workman 5

Planning a Project

Types of Plans Description

Objectives The project goals toward which activities are directed.

StrategicThe overall approach to a project that provides guidance for placing emphasis and using resources to achieve the project objectives.

PoliciesDirectives that guide decision making and project activities. Policies limit the freedom in making decisions but allow some discretion.

ProceduresDirectives 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.

RulesRequirements for specific and definite actions to be taken or not taken with respect to particular project situations. No discretion is allowed!

PlanThe 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.

Page 6: Lecture 4 (Jan 16): Introduction to Software Project Management

January 16, 2007 Dr. David Workman 6

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.

Page 7: Lecture 4 (Jan 16): Introduction to Software Project Management

January 16, 2007 Dr. David Workman 7

Organizing a ProjectProject Tasks Organizational Entity

Determine software system requirements.

Software System Engineering

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

Software Engineering Application (k)

Design components of product-k

Implement product-k software components

Prepare documents

Support verification and validation

Prepare software verification and validation plan

Software Verification & ValidationConduct verification and validation activities

Prepare and support software testing

Establish software quality assurance plan

Software Quality AssurranceConduct software quality activities

Document results of software quality activities

Page 8: Lecture 4 (Jan 16): Introduction to Software Project Management

January 16, 2007 Dr. David Workman 8

Organizing a Project

GeneralManagement

SystemEngineering

SoftwareEngineering

Team #1

Verification&

Validation

SW QualityAssurance

SoftwareEngineering

Team #1

Functional Project Organization

Personnel in each organizational unit perform the same function – basically they have the same job descriptionsalthough they may vary in experience and leadership roles. When a work product is produced or reviewedby members of one organizational unit, it is passed to some other organizational unit for further developmentor review. There is no single project supervisor over the whole project, but there is typically a project coordinatorand/or customer/user liason.

Page 9: Lecture 4 (Jan 16): Introduction to Software Project Management

January 16, 2007 Dr. David Workman 9

Organizing a ProjectProgram

Management

Project #1Manager

System Engineering

Staff #1

Project Oriented Organization

The organization is organized around projects – each project headed by a Project Manager that has the responsibilityto hire, discharge, train, and promote people within the project. Each project has its own staff organized around similarpersonnel functional roles.

Project #2Manager

Project #2Manager

System Engineering

Staff #2

System Engineering

Staff #3

Software Engineering

Staff #1

Software Engineering

Staff #2

Software Engineering

Staff #3

V&VStaff #1

V&VStaff #2

V&VStaff #3

SQAStaff #1

SQAStaff #2

SQAStaff #3

Page 10: Lecture 4 (Jan 16): Introduction to Software Project Management

January 16, 2007 Dr. David Workman 10

Organizing a ProjectMatrix Organization

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 doesnot 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.

GeneralManagement

SystemEngineering

SoftwareEngineering

Team #1

Verification&

Validation

SW QualityAssurance

Project A

Project B

Project C

SysEng

SysEng

SysEng

SysEng

SWEng

SWEng

SWEng

SWEng

SoftwareEngineering

Team #2

SWEng

SWEng

SWEng

SWEng

VVEng

VVEng

VVEng

VVEng

SQEng

SQEng

SQEng

SQEng

Page 11: Lecture 4 (Jan 16): Introduction to Software Project Management

January 16, 2007 Dr. David Workman 11

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 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.

– Hierarchical Team. Typically consists of a senior project leader overseeing two or more junior leads who, in turn, oversee a small group of software engineers.

Obsolete

Obsolete

MostCommon

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 thetechnical work.

Page 12: Lecture 4 (Jan 16): Introduction to Software Project Management

January 16, 2007 Dr. David Workman 12

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.

Page 13: Lecture 4 (Jan 16): Introduction to Software Project Management

January 16, 2007 Dr. David Workman 13

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 personnelProvide wages, bonuses, benefits, or other financial remuneration commensurate with project responsibilities and performance.

Page 14: Lecture 4 (Jan 16): Introduction to Software Project Management

January 16, 2007 Dr. David Workman 14

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."

Page 15: Lecture 4 (Jan 16): Introduction to Software Project Management

January 16, 2007 Dr. David Workman 15

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.

Page 16: Lecture 4 (Jan 16): Introduction to Software Project Management

January 16, 2007 Dr. David Workman 16

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.

Page 17: Lecture 4 (Jan 16): Introduction to Software Project Management

January 16, 2007 Dr. David Workman 17

Directing a Project

Self Actualization

Esteem and Recognition

Social Needs

Security and Safety

Biological Survival

Maslow's Hierarchy of Human Needs

Page 18: Lecture 4 (Jan 16): Introduction to Software Project Management

January 16, 2007 Dr. David Workman 18

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

Page 19: Lecture 4 (Jan 16): Introduction to Software Project Management

January 16, 2007 Dr. David Workman 19

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.

Page 20: Lecture 4 (Jan 16): Introduction to Software Project Management

January 16, 2007 Dr. David Workman 20

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 MethodsDocument the standards of performance, monitoring and control systems, and reward and discipline mechanisms.

Page 21: Lecture 4 (Jan 16): Introduction to Software Project Management

January 16, 2007 Dr. David Workman 21

Controlling a Project

Method of Monitoring a Project Description

Formal (milestone) ReviewsPeriodic, preplanned reviews of work products by developers, customers, uses, and management in order to assess progress.

Budget ReviewsA comparison of estimated budget with actual expenditures in order to determine compliance with or deviations from plan.

Independent AuditingAn independent examination of a software project for the purpose of determining compliance with plans, specifications, and standards.

Binary Tracking SystemA 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 FolderA 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 ManagementA 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 & ValidationThe 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 InspectionsSystematic examination of software work products by the producer's peers, conducted for the purpose of finding errors.