4 c h a p t e r project management. chapter four learning objectives define the terms project and...
TRANSCRIPT
4C H A P T E R
PROJECT MANAGEMENT
Chapter Four Learning objectives
• Define the terms project and project management, and differentiate between project and process management.
• Describe the causes of failed information systems and technology projects.
• Describe the basic competencies required of project managers.
• Describe the basic functions of project management.• Differentiate between PERT and Gantt charts as project
management tools.• Describe eight activities in project management.• Define joint project planning and its role in project
management.• Estimate tasks’ durations, and specify intertask
dependencies on a PERT chart
Project and Project Management
A project is a sequence of unique, complex, and connected activities having one goal or purpose and that must be completed by specific time, within budget, and according to specification.
Project management is the process of scoping, planning, staffing, organizing, directing, and controlling the development of an acceptable system at a minimum cost within a specified time frame.
Project versus Process Management
Project management is the process of scoping, planning, staffing, organizing, directing, and controlling the development of an acceptable system at a minimum cost within a specified time frame.
Process management is an ongoing activity that documents, manages the use of, and improves an organization’s chosen methodology (the “process”) for system development. Process management is concerned with the activities, deliverables, and quality standards to be applied to all projects.
Causes of Project Failure
• Taking shortcuts through or around the system development methodology
• Poor expectations management• Premature commitment to a fixed budget and
schedule• Poor estimating techniques• Inadequate people management skills• Failure to adapt to business change• Insufficient resources• Failure to “manage to the plan”
Project Manager Competencies
• Business awareness
• Business partner orientation
• Commitment to quality
• Initiative
• Information gathering
• Analytical thinking
• Interpersonal awareness
• Organizational awareness
• Anticipation of impact
• Resourceful use of influence
• Motivating others
• Communication skills
• Developing others
• Monitoring and controlling
• Self-confidence
• Stress management
• Flexibility
(Adapted from Wysocki, Beck, and Crane, Effective Project Management: How to Plan, Manage, and Deliver Projects on Time
and within Budget.)
Project Management Functions
– Scoping
– Planning
– Estimating
– Scheduling
– Organizing
– Directing
– Controlling
– Closing
Project Management Tools & Techniques
A PERT chart is a graphical network model that depicts a project’s tasks and the relationships between those tasks.
A Gantt chart is a simple horizontal bar chart that depicts project tasks against a calendar. Each bar represents a named project task. The tasks are listed vertically in the left-hand column. The horizontal axis is a calendar timeline.
PERT Chart
5-3-2001 5-12-2001
5-3-2001 5-11-2001
Preliminary Investigation
5-12-2001 6-12-2001
5-12-2001 6-14-2001
Problem Analysis
5-28-2001 7-15-2001
5-30-2001 7-18-2001
Requirements Analysis
6-13-2001 7-30-2001
6-13-2001 8-3-2001
Decision Analysis
9-10-2001 12-14-2001
TBD TBD
Implementation
7-19-2001 11-13-2001
7-20-2001 In Progress
Construction
7-3-2001 9-25-2001
7-5-2001 10-9-2001
Design
5-3-2001 N/A
5-3-2001 N/A
Project Initiation
ScheduledStart
Scheduled
Finish
Actual Start ActualFinish
Taskintertask
dependency
Legend
ScheduledStart
Scheduled
Finish
Actual Start ActualFinish
Task
Gantt Chart
Incomplete Task
Complete Task
Legend
ID
1
2
3
4
5
6
7
Preliminary investigation
Problem analysis
Requirements analysis
Decision analysis
Design
Construction
Implementation
May Jun Jul Aug Sep Oct Nov Dec
2001Task Name
Today
Activity 3: Estimate Task Durations
1. Estimate the minimum amount of time it would take to perform the task. We'll call this the optimistic duration (OD).
2. Estimate the maximum amount of time it would take to perform the task. We'll call this the pessimistic duration (PD).
3. Estimate the expected duration (ED) that will be needed to perform the task.
4. Calculate the most likely duration (D) as follows:
D = (1 x OD) + (4 x ED) + (1 x PD) 6
Activity 3: Estimate Task Durations1.
Task Optimistic duration
(OD)
Pessimistic duration
(PD)
Expected duration
(ED)
Most likely duration((1*OD)+(4*ED)+(1*PD))/6
A 3 6 4 4.17
B 1 3 2 2.00
C 4 7 6 5.83
D 2 5 3 3.17
E 3 9 6 6.00
F 3 3 4 3.67
Example
Software Quality Assurance
Chapter Learning objectives
• Understand the terms Quality, Software Quality, Software Quality Assurance,
• Understand the need for quality assurance of software products
• Specify the role of quality assurance in software development and maintenance
What is Quality
The Institute of Electrical and Electronics Engineers' (IEEE) Standard Glossary of Software Engineering Terminology defines quality as:
The degree to which a system, component, or process meets (1) specified requirements, and (2) customer or user needs or expectations
What is Quality
The International Standards Organization defines quality in ISO 9003-3-1991 as:
The totality of features and characteristics of a product or service that bear on its ability to satisfy specified or implied needs
ISO-8402
Quality is all the features that allow a product to satisfy stated or implied needs at an affordable cost
What is Quality
Philip B Crosby defines quality as:
"Quality is conformance to requirements”
Requirements are important?
What is Software Quality
Donald and Fisher define software quality as:
The degree to which a software product possesses a specified set of attributes necessary to fulfill a stated purpose
Handbook of software quality assurance defines software quality as:
Software quality is the fitness for use of the software product
Quality Criteria for Software
Correctness:Extent to which a program fulfills its specification
Efficiency:Use of resources execution and storage
Flexibility:Ease of making changes
Integrity:Protection of the program from unauthorized access
Quality Criteria for Software
Interoperability:Effort required to couple the system to another system
Maintainability:Effort required to locate and fix a fault in the program within its operating environment
Portability:Effort required to transfer a program from one environment to another
Reliability:Ability not to fail
Quality Criteria for Software
Reusability:Ease of re-using software in a different context
Testability:Ease of testing the program to ensure that it is error-free and meets its specification
Usability:Ease of use of the software
Software Quality Assurance
IEEE:
A planned and systematic pattern of all actions necessary to provide adequate confidence that an item or product conforms to established technical requirements
Handbook of Software Quality Assurance:
Software quality assurance is the set of systematic activities providing evidence of the ability of the software process to produce a software product that is fit to use
Software Quality Assurance
Software quality Assurance requires monitoring both the processes and products
In process assurance, SQA provides management with objective feedback regarding compliance to approved plans, procedures, standards, and analyses.
Product assurance activities focus on each phase of the life cycle, such as the requirements, design, code, and test plan.
The objective is to identify and eliminate defects throughout the life cycle as early as possible, thus reducing test and maintenance costs
Linda, 2002
Why is quality important?Why is quality important?
Make profitSurvival of OrganizationUser SatisfactionDelivery of defects free products
Linda, 2002
Software Testing
IEEE:
Testing is the process of operating a system or system component under specified conditions, observing or recording the results, and making an evaluation of some aspect of the system or component.
Ronald Reifer:
Software quality testing is the systematic series of evaluation activities performed to validate that the software fulfills technical and performance requirements.
Software Testing
Testing involves operation of a system or application under controlled conditions and evaluating the results (eg, 'if the user is in interface A of the application while using hardware B, and does C, then D should happen').
The controlled conditions should include both normal and abnormal conditions. Testing should intentionally attempt to make things go wrong to determine if things happen when they shouldn't or things don't happen when they should.
Software Testing
• Testing is a process of executing a program with the intent of finding an error
• A good test is one that has a high probability of finding an as yet undiscovered error
• Demonstrate that software functions appear to be working according to specification
Software Testing
Black box testing:
• Not based on any knowledge of internal design or code.
• Tests are based on requirements and functionality. • Attempts to find incorrect or missing functions and
interface and performance errors.
White box testing
• Based on knowledge of the internal logic of an application's code. • Tests are based on coverage of code statements,
branches, paths, conditions.
Software TestingUnit testing• The most 'micro' scale of testing; to test particular functions or
code modules. • Typically done by the programmer and not by testers, as it
requires detailed knowledge of the internal program design and code.
• Not always easily done unless the application has a well-designed architecture with tight code.
Incremental integration testing• Continuous testing of an application as new functionality is
added; requires that various aspects of an application's functionality be independent enough to work separately before all parts of the program are completed.
system testing • Black-box type testing that is based on overall requirements
specifications; covers all combined parts of a system.
Software Testing
Load testing • testing an application under heavy loads, such as
testing of a web site under a range of loads to determine at what point the system's response time degrades or fails.
Acceptance testing• Final testing based on specifications of the end-user or
customer, or based on use by end-users/customers over some limited period of time.
Install/uninstall testing• Testing of full, partial, or upgrade install/uninstall
processes.
Software Testing
Usability testing • Testing for 'user-friendliness'. Clearly this is
subjective, and will depend on the targeted end-user or customer. User interviews, surveys, video recording of user sessions, and other techniques can be used.
Recovery testing • Testing how well a system recovers from crashes,
hardware failures, or other catastrophic problems.
Security testing • Testing how well the system protects against unauthorized
internal or external access, willful damage, etc; may require sophisticated testing techniques.
Software Testing
Compatability testing • Testing how well software performs in a particular
hardware/software/operating system/network/etc. environment
Alpha testing• Testing of an application when development is nearing
completion; minor design changes may still be made as a result of such testing. Typically done by end-users or others, not by programmers or testers.
Beta testing• Testing when development and testing are essentially completed
and final bugs and problems need to be found before final release. Typically done by end-users or others, not by programmers or testers.
Inspections
• The subject of the inspection is typically a document such as a requirements spec or a test plan.
• The purpose is to find problems and see what's missing, not to fix anything.
• Attendees should prepare for this type of meeting by reading thru the document; most problems will be found during this preparation.
• The result of the inspection meeting should be a written report.
• Thorough preparation for inspections is difficult, painstaking work, but is one of the most cost effective methods of ensuring quality.
Inspections Phases
Planning:
• Identification of inspection team• Assure that the team members will be able to adequately
prepare for the inspection• Assure the availability of place for inspection• Schedule the inspection time and place• Give notice for inspection meeting
Inspections Phases
Overview:
• Short overview meeting about the product• Overview is given about the software, what task is
being performed, how it will perform that task, what interfaces are to be active.
• Such overview provides insight to team members and make their job easier.
Inspections Phases
Preparation:
• This phase begins with the receiving of materials and notice of inspection meeting
• During this phase the reader prepares the material to the inspection team and makes particular note of any difficulty in understanding the design, or code.
• Each inspector examines the material for all possible defects
• The defects are recorded on the inspection-defect log form.
Inspections Phases
Inspection Meeting:
• Team members discuss the discrepancies they have detected.
• Moderator makes sure that the team members approach this task in a professional manner.
• As defects are identified, they are discussed and recorded.
• The activity during the meeting is limited to finding defects not solutions
Inspections Phases
Rework:
• The author examines the defects found and makes the necessary corrections.
• The author discusses the corrections with the moderator.
Follow-up:
• To assure that all the defects detected during the inspection have been corrected.
• Last phase
Software Process Improvement
• Involves understanding existing processes and changing these processes to improve product quality and/or reduce costs and development time
• Process Improvement means change (for the better)
BusinessObjectives
NewDevelopment
Process
Change
Poorly Meets
AModel
?
DevelopmentProcess
BetterMeets
Compliance
Software Process Improvement
Involves understanding existing processes and changing these processes to improve product quality and/or reduce costs and development time
• CMM• SPICE• ISO 9001• BOOTSTRAP• ……• …..
Capability Maturity Model
OPTIMIZINGOPTIMIZING55
ORGANIZATION PROCESS FOCUSORGANIZATION PROCESS FOCUSORGANIZATION PROCESS DEFINITIONORGANIZATION PROCESS DEFINITIONPEER REVIEWSPEER REVIEWSTRAINING PROGRAMTRAINING PROGRAMINTERGROUP COORDINATIONINTERGROUP COORDINATIONSOFTWARE PRODUCT ENGINEERINGSOFTWARE PRODUCT ENGINEERINGINTEGRATED SOFTWARE MGTINTEGRATED SOFTWARE MGT
RISKRISK
PRODUCTIVITYPRODUCTIVITY
ANDAND
QUALITYQUALITY
Initial 1Initial 1
REPEATABLEREPEATABLE
22
REQUIREMENTS MGT REQUIREMENTS MGT SOFTWARE PROJECT PLANNINGSOFTWARE PROJECT PLANNING
SOFTWARE PROJECT TRACKINGSOFTWARE PROJECT TRACKINGSOFTWARE SUBCONTRACT MGTSOFTWARE SUBCONTRACT MGT
SOFTWARE QUALITY ASSURANCESOFTWARE QUALITY ASSURANCESOFTWARE CONFIGURATION MGTSOFTWARE CONFIGURATION MGT
DEFINEDDEFINED33
MANAGEDMANAGED44
DEFECT PREVENTIONDEFECT PREVENTIONTECHNOLOGY INNOVATIONTECHNOLOGY INNOVATIONPROCESS CHG MGTPROCESS CHG MGT
PROCESS MEASUREMENT ANDPROCESS MEASUREMENT AND ANALYSISANALYSISQUALITY MANAGEMENTQUALITY MANAGEMENT
RESULTRESULTKEY PROCESS AREASKEY PROCESS AREASLEVELLEVEL
Capability Maturity Model (CMM)
Level5
OPTIMIZED
Level4
MANAGED
Level3
DEFINED
Level2
REPEATABLE
RISK
COMPETITIVENESS
Level1
INITIAL
The CMM Process Management Model
• Level 1—Initial
–System development projects follow no prescribed process–Each developer uses his or her own tools and methods–Success or failure is usually a function of the skill and experience of the project team.
–The process is unpredictable–Documentation is not consistent from one project to the next, thus creating problems for those who must maintain a system over its lifetime
The CMM Process Management Model
• Level 2—Repeatable
–Project management processes and practices are established to track project costs, schedules, and functionality.
–The focus is on project management, not system development.
–A system development process is always followed, but it may vary from project to project
The CMM Process Management Model
• Level 3—Defined
–A standard system development process (sometimes called a “methodology”) is purchased or developed and integrated throughout the information systems/services unit of the organization.
–The process is stable, predictable, and repeatable
• Level 4—Managed
–Measurable goals for quality and productivity are established.
–Detailed measures of the standard system development process and product quality are routinely collected and stored in a database
The CMM Process Management Model
• Level 5—Optimizing
–The standardized system development process (methodology) is continuously monitored and improved based on measures and data analysis established in Level 4