Software Project Management Project: unique process, consisting of a set of coordinated and controlled activities with start and finish dates, undertaken to achieve an objective conforming to specific requirements, including the constraints of time, cost and resources. ISO 9000:2005 - Quality management systems - Fundamentals and vocabulary Kondorosi, K. 2008. Development of Information Systems 1
Software Project Management Phases Definition goals, players, stakeholders, resources, constraints, deliverables, success-criteria Planning work-breakdown-structure, work-packages, activities, package/activity relations, resource planning, scheduling Execution monitoring, evaluation, correcting actions, communication Closing closing declaration, evaluation Kondorosi, K. 2008. Development of Information Systems 2
Definition phase Fundamental goals (correspondence to organization s goals, commitment, top-management support) Outcomes ( deliverables ) Players participants, stakeholders, project organization structure Success-criteria Resource estimation Timing, scheduling Cost estimation Kondorosi, K. 2008. Development of Information Systems 3
Planning phase Work Breakdown Structure (well-defined activities, responsibilities, milestones) Pert Chart (logical activity structure, dependencies, overlapping) Gantt Chart (timing, SS, FS, FF dependencies) Critical Path (slack-times, ASAP, ALAP scheduling) Resource Planning (human, tangible, tools, cost, cashflow) Risk Analysis (risk-yield techniques) Kondorosi, K. 2008. Development of Information Systems 4
Planning phase Work Breakdown Structure The development of a WBS divides the overall project into an interconnected set of manageable components. Typically, the WBS is a product oriented structure that provides a scheme for identifying and organizing the logical units of work to be managed, which are called work packages. Kondorosi, K. 2008. Development of Information Systems 5
Planning phase Pert chart The Program Evaluation and Review Technique (PERT) is a network model that allows for randomness in activity completion times. Kondorosi, K. 2008. Development of Information Systems 6
Pert chart Kondorosi, K. 2008. Development of Information Systems 7
Planning phase PERT planning involves the following steps: 1. Identify the specific activities and milestones. 2. Determine the proper sequence of the activities. 3. Construct a network diagram. 4. Estimate the time required for each activity. 5. Determine the critical path. 6. Update the PERT chart as the project progresses. Kondorosi, K. 2008. Development of Information Systems 8
Planning phase Dependencies A B Finish to start (FS) B can start only if A ended A B Start to start (SS) B can start only if A started A B Finish to finish (FF) B can finish only if A finished A B Start to finish (SF) B can finish only if A started Kondorosi, K. 2008. Development of Information Systems 9
Planning phase Determine the following quantities for each activity: ES - Earliest Start time EF - Earliest Finish time LS - Latest Start time LF - Latest Finish time D Duration (F - Float) Kondorosi, K. 2008. Development of Information Systems 10
Planning phase Critical Path: the longest possible continuous pathway taken from the initial event to the terminal event. It determines the total calendar time required for the project; and, therefore, any time delays along the critical path will delay the reaching of the terminal event by at least the same amount. Critical Activity: An activity that has total float equal to zero. Activity with zero float does not mean it is on critical path. Kondorosi, K. 2008. Development of Information Systems 11
Planning phase Work Breakdown Structure (well-defined activities, responsibilities, milestones) Pert Chart (logical activity structure, dependencies, overlapping) Gantt Chart (timing, SS, FS, FF dependencies) Critical Path (slack-times, ASAP, ALAP scheduling) Resource Planning (human, tangible, tools, cost, cashflow) Risk Analysis (risk-yield techniques) Kondorosi, K. 2008. Development of Information Systems 12
Kondorosi, K. 2008. Development of Information Systems 13
Planning phase Work Breakdown Structure (well-defined activities, responsibilities, milestones) Pert Chart (logical activity structure, dependencies, overlapping) Gantt Chart (timing, SS, FS, FF dependencies) Critical Path (slack-times) Resource Planning (human, tangible, tools, cost, cashflow) Risk Analysis (risk-yield techniques) Kondorosi, K. 2008. Development of Information Systems 14
Planning phase - Resource Planning 1. 2. 3. 4. Resources Over allocation Availability Time Kondorosi, K. 2008. Development of Information Systems 15
Planning phase - Resource Planning 1. 2. 3. 4. Resources Availability Time Kondorosi, K. 2008. Development of Information Systems 16
Planning phase Work Breakdown Structure (well-defined activities, responsibilities, milestones) Pert Chart (logical activity structure, dependencies, overlapping) Gantt Chart (timing, SS, FS, FF dependencies) Critical Path (slack-times) Resource Planning (human, tangible, tools, cost, cashflow) Risk Analysis (risk-yield techniques) Kondorosi, K. 2008. Development of Information Systems 17
Risk Management Categories Risk is measured in terms of impact and likelihood I. prepare alternative solutions II. prevention techniques III. negligible Monitoring in execution phase Impact High Medium Low Category I. Category II. Category III. High Medium Low Likelihood of occurrence Kondorosi, K. 2008. Development of Information Systems 18
Execution phase monitoring (how to measure progress, data acquisition, evaluation, plan-fact comparison) difference-analysis (reasoning, impact prediction) intervention modification of plan communication to stakeholders Kondorosi, K. 2008. Development of Information Systems 19
Execution phase Project monitoring, controlling: Progress is primarily determined by comparing actual work product and task attributes, effort, cost, and schedule to the plan at prescribed milestones or control levels within the project schedule or work breakdown structure (WBS) (CMMI) Kondorosi, K. 2008. Development of Information Systems 20
Closing phase Evaluation: measuring and evaluation success factors Summarizing experiences (most efficient way to learn: analyze your mistakes) Declaration: Project is closed Final conclusion: Success/Miss Kondorosi, K. 2008. Development of Information Systems 21
Managing OO development Inception Elaboration Construction Transition User use-cases High level package structure not constant intensity Developer use-cases, communication diagrams Class diagrams Coding modules, integration System integration and test Kondorosi, K. 2008. Development of Information Systems 22
OO development lifecycle Incremental controlled iteration I E C T round 1 I E C T round 2 round 3 I E C T Kondorosi, K. 2008. Development of Information Systems 23
Problems Project Plan requires some progress in analysis Where is project planning in the lifecycle< Anywhere at the beginning of the first I phase Costs not more, than 5 10 % of the total budget How to estimate? What organizational structure is efficient? How to manage the phases and phasetransitions? Kondorosi, K. 2008. Development of Information Systems 24
Estimation Imprecise (25% tolerance), but enough for go/no go decision make this decision as soon as possible at minimal cost (disappointing to spend 30 % of the budget to decide go/no go) Necessary estimations Size: line of code, function-point, n. of modules, n. of classes Workload: manmonth Duration: month Efficiency: size / workload Cost: qualification-dependent human resources Kondorosi, K. 2008. Development of Information Systems 25
Estimation (cont) Factors: language, toolset, reuse, skills, previous experiences... Sources: Our earlier experiences Experts Based on: system analogy package analogy Parametric model COCOMO (Constructive Cost Model) family: routine task direct data early design architecture-based data Kondorosi, K. 2008. Development of Information Systems 26
Organizational structure Example Project-leader Quality-assurance Chief system-architect Domain expert Customer-representative Chief developer Toolsmith Development manager Tester team Package 1 team Package 2 team Package n team Kondorosi, K. 2008. Development of Information Systems 27
Phases, phase-transitions Inception - Elaboration transition Requirement inspection Elaboration Construction transition Architectural plan inspection Construction Transition Operational test End of transition System test and delivery Kondorosi, K. 2008. Development of Information Systems 28
Hints for project managers For the sake of success Take care of the team Stay focused, keep the project in moving Refuse late good ideas I: accept ideas, define priority for them E: take into consideration, analyze impact C: only critical problems T: too late, refuse, delay to next round Kondorosi, K. 2008. Development of Information Systems 29
Project statistics 1998 28,0% 46,0% 26,0% 1996 40,0% 33,0% 27,0% Failed Problematic Success Smaller (less complex) Shorter periods Less people to manage 1994 31,0% 52,7% 16,2% 0% 20% 40% 60% 80% 100% (Standish Group) Kondorosi, K. 2008. Development of Information Systems 30
Success factors Involving user 20% Top manager (CEO) support 15 % Clear business goals 15 % Experienced project management 15 % Small milestones 10 % Clear requirements 5 % Talented programmers 5 % Leadership 5 % Others 5 % Kondorosi, K. 2008. Development of Information Systems 31
Fail factors Incomplete requirement 13.1% Lack of user involvment 12.4% Shortage in resources 10.6% Too ambitious goals 9.9% Lack of CEO support 9.3% Changing requirements 8.7% Lack of design 8.1% Lapse of interest 7.5% Lack of IT management 6.2% Incompetence in technologie 4.3% Others 9.9% Kondorosi, K. 2008. Development of Information Systems 32