IT2403 Notes SPM Notes
IT2403 Notes SPM Notes
Course Objectives
Understand the fundamental principles of Software Project management & will also have a good knowledge of responsibilities of project manager and how to handle these. Be familiar with the different methods and techniques used for project management.
By the end of this course student will have good knowledge of the issues and challenges faced while doing the Software project Management and will also be able to understand why majority of the software projects fails and how that failure probability can be reduced effectively. Will be able to do the Project Scheduling, tracking, Risk analysis, Quality management and Project Cost estimation using different techniques
Unit I
Introduction
Project Definition
In the broadest sense, a project is a specific, finite task to be accomplished. Any activity that results in a deliverable or a product.
Projects always begin with a problem. The project is to provide the solution to this problem.
When the project is finished it must be evaluated to determine whether it satisfies the objectives and goals.
What is Management?
Management can be defined as all activities and tasks undertaken by one or more persons for the purpose of planning and controlling the activities of others in order to achieve objectives or complete an activity that could not be achieved by others acting independently.
Management functions can be categorized as Planning Organizing Staffing Directing Controlling
Management Functions
Planning Predetermining a course of action for accomplishing organizational Objectives Organizing Arranging the relationships among work units for accomplishment of objectives and the granting of responsibility and authority to obtain those objectives Staffing Selecting and training people for positions in the organization Directing Creating an atmosphere that will assist and motivate people to achieve desired end results Controlling Establishing, measuring, and evaluating performance of activities toward planned objectives
Project Stakeholders
Stakeholders are the people involved in or affected by the project actives
Stakeholders include
The project sponsor and project team Support staff Customers Users Suppliers Opponents to the project
Project Characteristics
One clear objective A well defined set of end results Goal oriented End product or service must result Finite Fixed timeline, start date, end date, milestone dates Limited Budget, Resources, Time Life Cycle Recognizable sequence of phases
Product
Project
People
Software
Product
1. Assessing Processes 2. Awareness of Process Standards 3. Defining the Product 4. Evaluating Alternative Processes 5. Managing Requirements 6. Managing Subcontractors 7. Performing the Initial Assessment 8. Selecting Methods and Tools 9. Tailoring Processes 10. Tracking Product Quality 11. Understanding Development Activities
Project
Project
12. Building a WBS 13. Documenting Plans 14. Estimating Costs 15. Estimating Effort 16. Managing Risks 17. Monitoring Development 18. Scheduling 19. Selecting Metrics 20. Selecting Project Mgmt Tools 21. Tracking Process 22. Tracking Project Progress
Management
People
23. Appraising Performance 24. Handling Intellectual Property 25. Holding Effective Meetings 26. Interaction and Communication 27. Leadership 28. Managing Change 29. Negotiating Successfully 30. Planning Careers 31. Presenting Effectively 32. Recruiting 33. Selecting a Team 34. Teambuilding
Steps in SDLC
Concept Exploration System exploration Requirements Design Implementation Installation Operations and support Maintenance Retirement
Why Modeling?
To provide a common understanding To locate any inconsistencies, redundancies and omissions To reflect the development goals and provide early evaluation To assist development team to understand any special situation
Waterfall Model
Requirement Analysis System Design Coding Testing Maintenance
Waterfall Model
classical one-shot approach effective control limited scope of iteration long cycle time not suitable for system of high uncertainty
V Model
Requirements Analysis System Design Program Design
Maintenance User Acceptance Testing System Testing Unit and Integration Testing Coding
V Model
Additional validation process introduced Relate testing to analysis and design Loop back in case of discrepancy
Spiral Model
Spiral Model
Evolutionary approach Iterative development combined with risk management Risk analysis results in go, no-go decision
Spiral Model
Four major activities
Planning Risk analysis Engineering Customer evaluation
Prototyping Model
Goals
meet users requirements in early stage reduce risk and uncertainty
Classification of Prototype
Throw-away
After users agree the requirements of the system, the prototype will be discarded.
Evolutionary
Modifications are based on the existing prototype.
Incremental
Functions will be arranged and built accordingly.
Prototyping Model
Build prototype
User satisfaction NO
YES
User feedback
Benefits of Prototyping
Learning by doing Improved communication Improved user involvement Clarification of partially-known requirements
Prototyping Sequences
Requirements gathering Quick design Prototype construction Customer evaluation Refinement Loop back to quick design for fine tuning Product engineering
Benefits of Prototyping
Demonstration of the consistency and completeness of a specification Reduced need for documentation Reduced maintenance costs Feature constraint Production of expected results
Drawbacks of Prototyping
Users sometimes misunderstand the role of the prototype Lack of project standards possible Lack of control Additional expense Close proximity of developers
Forms of Prototypes
Mock-ups Simulated interaction Partial working model
Incremental Model
Break system into small components Implement and deliver small components in sequence Every delivered component provides extra functionality to user
Incremental Model
Requirements Analysis
Arrange requirements in increments Design and develop increment NO Validate increment Integrate increment System OK? YES
Iterative Model
Deliver full system in the beginning Enhance functionality in new releases
Iterative Model
Design system version n
n = n+1
The CMM has been used to assess the maturity levels of organization areas as diverse as software engineering, system engineering, project management, risk management, system acquisition, information technology (IT) or personnel management, against a scale of five key processes, namely: Initial, Repeatable, Defined, Managed and Optimized.
Level 1 - Initial
At maturity level 1, processes are usually ad hoc, and the organization usually does not provide a stable environment. Success in these organizations depends on the competence and heroics of the people in the organization, and not on the use of proven processes
Level 2 - Repeatable
At maturity level 2, software development successes are repeatable. The processes may not repeat for all the projects in the organization. The organization may use some basic project management to track cost and schedule.
Level 3 - Defined
The organizations set of standard processes, which are the basis for level 3, are established and improved over time. These standard processes are used to establish consistency across the organization. Projects establish their defined processes by applying the organizations set of standard processes, tailored, if necessary, within similarly standardized guidelines.
Level 5 - Optimizing
Maturity level 5 focuses on continually improving process performance through both incremental and innovative technological improvements. Quantitative process-improvement objectives for the organization are established, continually revised to reflect changing business objectives, and used as criteria in managing process improvement.
Unit II
Domain Processes
WBS
WBS was initially developed by the U.S. defense establishment, and it is described in Military Standard (MIL-STD) 881B (25 Mar 93) as follows: "A work breakdown structure is a productoriented family tree composed of hardware, software, services, data and facilities .It displays and defines the products to be developed and/or produced and relates the elements of work to be accomplished to each other and to the end products."
Project team members should be involved in developing the WBS to ensure consistency and buy-in. 6. Each WBS item must be documented to ensure accurate understanding of the scope of work included and not included in that item. 7. The WBS must be a flexible tool to accommodate inevitable changes while properly maintaining control of the work content in the project according to the scope statement.
5.
Unit III
Software Development
Risks of Estimating
If incomplete or incorrect estimate:
disappointing the customer possibly losing future business too optimistic fixed-price contract result in the contractor losing money and losing face
Getting Started
Sizing is the prediction of product deliverables needed to fulfill requirements Estimation is the prediction of effort needed to produce the deliverables WBS is a description of the work to be performed, broken down into key elements WBS is our TOC, a hierarchical list of the work activities required to complete a project Choose a method and stick with it Compare actual data to planned estimates Everything should be counted, any observable physical piece of software
Size measures
Lines of Code (LOC) Function Points Feature Points Object Points Model Blitz Wideband Delphi
Lines of Code
Very difficult to know how many LOC will be produced before they are written or even designed LOC measure has become infamous Still the most used metric Average programmer productivity rate remains despite of new languages Functionality and quality are the real concerns, not the LOC
Lines of Code 2
WBS should be decomposed to the lowest level possible Estimating using expert opinions, asking experts who have developed similar systems Estimating using Bottom-Up summing, asking developers to estimate the size of each decomposed level Ask for an optimistic (200), pessimistic (400) and realistic size (250) estimate (200+400+(4*250)) / 6 = 266 LOC What exactly is a line of code? Standards and rules needed
Lines of Code 3
Translate the number of LOC to assembly language line in order to make comparisons between programming languages e.g. convert 50,000 LOC system written in C to Java Assembler level for C = 2.5, Java = 6 50,000 * 2.5 = 125,000 if written in assembler 125,000 / 6 = 20,833 LOC if written in Java
Advantages of LOC
Widely used and accepted Allows for comparison between diverse development groups Directly relates to the end product Easily measured upon project completion Measure from the developers point of view Continuous improvement
Disadvantages of LOC
Difficult to estimate early in the life cycle Source instructions variate with language, design, programmer etc. No industry standars for counting LOC Fixed costs are not included with coding Programmers may be rewarded for large LOC counts Distinguish between generated code and hand-crafted code Can not be used for normalizing if languages are different Only existing products and expert opinions can be used to predict a LOC count
Function Points
Idea: software is better measured in terms of the number and complexity of the functions that it performs Function points measure categories of end-user business functions
Feature Points
Extension of the function point method Designed to deal with different kinds of applications, like embedded or realtime systems A feature point is a new category of function point that represent complex algorithms
Object Points
Method developed for object-oriented technology Counting object points to determine software size Conducted at a more macro level than function points Assigns one object point to each unique class or object Otherwise similar to function and feature points
Model Blitz
Estimating gets better with each passing phase Concept of blitz modelling is counting number of process (object classes) * number of programs per class * avg program size = Estimated size (LOC) A historical database is essential Function-strong systems and data-strong systems are calculated separately
20 object classes implemented to 5 procedural programs & on an avg 75 LOC per procedural prg No. of Process X no. of programs per class X Avg Prg Size = Estimated Size 20 X 5 X 75 = ? 7500 LOC
Wideband Delphi
Popular and simple technique to estimate size and effort Group consensus approach Uses experience of several people to reach an estimate
If the unit has changed, it is modified If more than 50% of the unit is changed, it is considered to be new Reused code will be converted to equivalent new code Conversion factor reflects the amount of effort saved by reuse Reuse factors come from experience (e.g. 30% for reused, 60% for modified) Can also be done on more accurate level
COCOMO
COnstructive COst MOdel Allows for the type of application, size, and Cost Drivers Outputs in Person Months Cost drivers using High/Med/Low & include
Motivation Ability of team Application experience
Biggest weakness?
Requires input of a product size estimate in LOC
Forms of COCOMO
Basic COCOMO Intermediate COCOMO Detailed COCOMO
Advantages of COCOMO
Repeatable process Easy to use Thoroughly documented Versatile
Disadvantages of COCOMO
Ignores safety issues Ignores software development environment
COCOMO II
Revised and extended version of the model Allows estimation of object oriented software Provides quantitative analytic framework
Advantages of SLIM
Uses linear programming Simplifies strategic decision making Generates reports and graphs Offers value added planning
Disadvantages of SLIM
Works best on large projects Model is sensitive to size estimate Model is sensitive to technology factor Tool is complex Software size must be identified in advance
Characteristics of roles
Responsibility Authority Accountability
Unit IV
Scheduling Activities
Kinds of interfaces
PERSONAL It deals with all conflicts involving people in or related to the project.
ORGANIZATIONAL It deals with conflicts due to varying organizational goals and the different management styles of the project and resource supplying organizations.
SYSTEM It deals with the product, facility, or other non people interfaces developed by the project.
Organizational structure:
"An organization is a system that exchanges materials, personnel, manpower, and energy with the environment
TYPES OF ORGANIZATIONS:
Functional organizations
Matrix organizations Projectized organizations
FUNCTIONAL ORGANIZATIONS
The functional organization is a standard old-fashioned organization. It is the style in which people are divided into their functional specialties and report to a functional area manager.
MATRIX ORGANIZATIONS
In the matrix organizations there is a balance of power established between the functional and project managers. The project worker in a matrix organization has a multiple command system of accountability and responsibility.
PROJECTIZED ORGANISATIONS:
In projectized organizations the project manger has total authority and acts like a mini-CEO. All personnel assigned to the project report to project manager.
Types of dependencies
External vs Internal Dependencies Resource vs Activity Dependencies
DEPENDENCY RELATIONSHIPS:
Finish-to-start(FS) Start-to-start(SS) Finish-to-finish(FF) Start-to-finish(SF)
Scheduling fundamentals:
The three most common forms of presenting a project schedule are: Table. Gantt chart. Network diagram.
4 5
E=1
A=2
B=5
3
D=7 F=2
finish
a. How many paths are on this network diagram? b. How long is each path?
Multitasking Example
Unit V
Quality Assurance
Importance of standards
Encapsulation of best practice- avoids repetition of past mistakes. They are a framework for quality assurance processes - they involve checking compliance to standards. They provide continuity - new staff can understand the organisation by understanding the standards that are used.
Subsidiary Change Control Scope change control Schedule change control Cost change control Quality control Risk change control Contract Administration Coordinating changes Across the Entire Project
Configuration Management
Ensures that the products and their descriptions are correct and complete Concentrates on the management of technology by identifying and controlling the functional and physical design characteristics of products Configuration management specialists identify and document configuration requirements, control changes, record and report changes, and audit the products to verify conformance to requirements
View project management as a process of constant communications and negotiations Plan for change Establish a formal change control system, including a Change Control Board (CCB) Use good configuration management Define procedures for making timely decisions on smaller changes Use written and oral performance reports to help identify and manage change Use project management and other software to help manage and communicate changes