Software Engineering for Real-Time Systems Chapter 10: Project Management Objectives To introduce to software project management To discuss project planning and the estimation process To show dependencies within projects (size, quality, duration, effort) To understand the notion of risks and the risk management process To introduce techniques for project follow-up and effective execution 2015 IAS, University of Stuttgart 461
Software Engineering for Real-Time Systems 10 Project Management 10.1 Project Management Overview 10.2 Initiating and Planning 10.3 Risk Management 10.4 Project Execution, Controlling, and Closing 10.5 Tools 10.6 Summary 2015 IAS, University of Stuttgart 462
10.1 Project Management Overview Software Project Management Definition: A project is a temporary endeavor undertaken to create with people a unique product or service. In software engineering we distinguish different project types (e.g., product development, IT infrastructure, outsourcing, software maintenance, service creation, and so on). A project is accomplished through the use of the processes such as: initiating, planning, executing, controlling and closing It is concerned with activities to ensure that software is delivered on time and on schedule and in accordance with the requirements of the organizations developing and procuring the software Project management is the application of knowledge, skills, tools and techniques to project activities to meet project requirements 2015 IAS, University of Stuttgart 463
10.1 Project Management Overview Generic Project Life-Cycle Project Lifecycle Five activities which relate to each other Source: PMBOK 2015 IAS, University of Stuttgart 464
10.1 Project Management Overview Project Management Must Balance Conflicting Goals content / functionality, efficiency, reliability, usability, extendibility,... quality cost development, inception, transition, industrialization, maintenance time product life cycle, efficiency, predictability Quality, effort, time and cost relate to each other. Example: Reducing time might reduce quality 2015 IAS, University of Stuttgart 465
With Project team! With stakeholders! 10.1 Project Management Overview Tasks During Initiating and Planning Determine project objectives Define / agree product(s) and services Identify constraints Determine limitations on the costs Estimation of deadlines Project plan (software management plan) detailed execution plans boundaries of the technical content scheduling cost management (resource management) personnel planning Risk management 2015 IAS, University of Stuttgart 466
10.1 Project Management Overview Tasks During the Project Execution and Controlling Project sequence control Schedule control Control of resources Tasks During Project Closing Preparation and launching of service, operations, and maintenance projects schedule control Review and feed back cost / schedule vs. actuals Archiving project information 2015 IAS, University of Stuttgart 467
QA result 10.1 Project Management Overview Project Management Influences All Engineering Disciplines plan and control the project PM provide prerequisites and s oftware d evelopment environments actual data desired data WBS desired data actual data WBS desired data actual data WBS quality requirements Dvmt develop product plan the product configuration test products Dvmt / QA quality requirements product configuration structure rights, relations product administrate products/ rights/ relations CM 2015 IAS, University of Stuttgart 468
10.1 Project Management Overview Competences of Effective Project Managers: Project management e.g. Planning, Project monitoring and reviews, Risk management, Cost control, Resource management Soft skills e.g. People selection and motivation, fostering effective teamwork, Contact to customers and internal / external stakeholders, communication, negotiation, leadership Technical and domain expertise e.g., Good solid understanding of underlying technical aspects, markets, and organizational interdependencies 2015 IAS, University of Stuttgart 469
Software Engineering for Real-Time Systems 10 Project Management 10.1 Project Management Overview 10.2 Initiating and Planning 10.3 Risk Management 10.4 Project Execution, Controlling, and Closing 10.5 Tools 10.6 Summary 2015 IAS, University of Stuttgart 470
10.2 Initiating and Planning Preparing a Project Concepts Understand needs, requirements, constraints, environment, stakeholders, etc. Determining or adapting a project organization Identification of the individual steps of the project on the basis of a software life cycle model Identification of work products Determining a Work Breakdown Structure (WBS) Identifying applicable processes, infrastructure Contract evaluation, cost information, business case 2015 IAS, University of Stuttgart 471
10.2 Initiating and Planning Content of a Project Plan All tasks that have to be executed, scheduling, dependencies Procedures, methods, tools to be used Expected results and deliverables in the individual phases, milestones Skills profiles and responsibilities Risk list and mitigation actions Plan Quality plan Delivery plan Validation plan Configuration management plan Maintenance plan Skill development plan Description Describes the quality of procedures and standards that will be used in the project Describes different work products with responsibilities, versioning dates Describes the approach, resources and the schedule used for system validation Describes the configuration management procedures and structure Predict the maintenance requirements, costs and effort required How the skills and experience of the project team will be developed 2015 IAS, University of Stuttgart 472
10.2 Initiating and Planning Project Plan Structure Introduction Project organization Risk analysis Hardware and software resource requirements Work breakdown Project schedule Monitoring and reporting mechanisms 2015 IAS, University of Stuttgart 473
10.2 Initiating and Planning Overview of Project Estimation Methods Goals External Business needs Examples: requirements, target cost Understand, adapt, commit Estimates Internal Constrained by dependencies, uncertainties Examples: effort, duration Plan Break-down of a goal to activities and milestones in order to reach this goal Relates goals and estimates to best possibly reach the goals Approach: Win-win Needs clear commitments of all impacted stakeholders Source: Ebert 2013 2015 IAS, University of Stuttgart 474
10.2 Initiating and Planning Impact Factors for Estimation Functionality, size, complexity Degree of reuse, novelty Productivity, e.g. tools Quality requirements, e.g. safety Schedule pressure People motivation and competences Team size and distribution Effort Impact factors Size Effects Duration Effort Defects Productivity Team size Schedule pressure Source: Ebert 2015 2015 IAS, University of Stuttgart 475
10.2 Initiating and Planning Non-linear relationships Project scenarios to Effort Effort ~ 3 size efficiency * time 3 Correlation ("Putnam equation"): 4 Costlimit Time limit size = 100 efficiency = 10 size = 150 efficiency = 10 size = 150 efficiency = 11 Duration Legend: Optimum solution (shortest distance to curve) Effort optimized to time target (here: target value not achieved) Time optimized to cost target Within time and budget (reduced size) Within time and budget (increased efficiency) Source: Ebert 2015 2015 IAS, University of Stuttgart 476
10.2 Initiating and Planning Estimation Methods Method Comparison Criteria Expert experience Definition of project or product Analogy database Factors of regression Inputs Use Restrictions Delphi-Method or Broadband Delphi Methods of analogy Method of extrapolation Project planning Environments with small risk Independent crosschecks, such as supplier evaluation Estimation of budget and cost Very subjective and inaccurate Expertise often not available, and cannot be acquired from outside Belief that the model is the truth due to not knowing the impact factors Reference Top-down/Bottom-up approach Method of standard values Detailed project structure Defined tasks or activities Defined standard values Total project planning Estimation of time and cost Easiest and most often used method Detailed project structure necessary Actual standard values necessary Low accuracy Algorithmic Function-Point- Method COCOMO-Model Use case points Project impact factors, e.g. process Estimation values for use case, design, code Time plan Estimation of effort, time, quality is possible Complex and high-risk projects Demand for accuracy and transparency Model creation and calibration is difficult Expensive to set up the model (time and cost) Profound understanding of impact factors Source: Ebert 2015 2015 IAS, University of Stuttgart 477
10.2 Initiating and Planning Example: COCOMO Method Example: COCOMO-method software without interface to existing systems (standalone IS) PM = 2,4 x (KLOC) 1,05 software with a couple of interfaces to existing systems PM = 3,0 x (KLOC) 1,12 software that has to fit in existing systems (real-time, embedded) PM = 3,6 x (KLOC) 1,20 2015 IAS, University of Stuttgart 478
10.2 Initiating and Planning Example: COCOMO Counting Phase incep- elabo- const- trantion ration ruction sition analyze requirements 42% 10% 3% 2% design the product 16% 42% 10% 4% coding + verification 10% 14% 36% 26% test planning + execution 16% 18% 35% 40% project management 8% 7% 5% 6% configuration management 3% 2% 6% 15% quality assurance 5% 7% 5% 7% 100% 100% 100% 100% Globally per phase (waterfall) 5% 15% 40% 40% Globally per phase (incremental) 10% 25% 40% 25% 2015 IAS, University of Stuttgart 479
10.2 Initiating and Planning Example: COCOMO Cost Estimation You want to build an embedded real-time system and you estimate roughly 30 000 source lines. You follow an incremental development process. According to the COCOMO basic equation you estimate the efforts in person-months as: PM = 3.6 * (thousand-source lines) 1.2 = 3.6 * 30 1.2 = 213 person months According to the cost matrix the distribution can be estimated as follows: Phase: inception : 22 PM (= 10%) elaboration : 53 PM (= 25%) construction : 85 PM (= 40%) transition : 53 PM (= 25%) Total : 213 PM (=100%) 2015 IAS, University of Stuttgart 480
10.2 Initiating and Planning Example: COCOMO for Construction Phase analysis activities : 3% or 3 PM design activities : 10% or 9 PM coding activities: 36% or 30 PM test activities : 35% or 30 PM project management: 5% or 4 PM configuration management: 6% or 5 PM quality assurance: 5% or 4 PM Total 100% or 85 PM 2015 IAS, University of Stuttgart 481
10.2 Initiating and Planning Example: Full Function Points Method Change impacts Functional change request SW requirements analysis SW validation before delivery Effort FFP method SW architecture design SW module design SW module implementation SW integration and integration test SW module test The Full Function Point (FFP) Method is today the most widely used method and standardized as ISO/IEC 19761:2011 Source: Ebert 2015 2015 IAS, University of Stuttgart 482
10.2 Initiating and Planning Example: Full Function Points Counting Requirements, change requests Effort estimation, accuracy levels Analysis and translation COSMIC FFP method application Modeling and mapping Unadjusted functional size Adjusted functional size Measurement context Mapping rules Estimation method Proprietary para-meters Source: Ebert 2015 2015 IAS, University of Stuttgart 483
10.2 Initiating and Planning Example: Full Function Points Approach in 4 Function 1 in 2 const 1 1 1 x & in 4 in 6 in 7 1 1 1 + & out 1 1 in 3 false 1 = Function 1 out 1 in 1 const 2 + out 2 1 in 5 Initial structure BEFORE the change. Not counted. Size FP (Change) = size(added data) + size(modified data) + size(deleted data) = 7 Source: Ebert 2015 2015 IAS, University of Stuttgart 484
10.2 Initiating and Planning Example: Full Function Points Effort Estimation Unadjusted Functional Size Effort Model application (Filter criteria, environmental factors, mapping size to effort) Project effort Project size (FFPs) Source: Ebert 2015 2015 IAS, University of Stuttgart 485
10.2 Initiating and Planning Project scheduling Activities / tasks in a project should be organized to produce tangible outputs to judge progress Split project into tasks and estimate time and resources required to complete each task Ensure appropriate staffing from begin to closure Organize tasks concurrently to make optimal use of workforce (mapping to available skills over time, considering dependencies) Critical path analysis. Minimize task dependencies to avoid delays caused by one task waiting for another to complete Backwards and forward planning Avoid too much detail. Details (e.g., exact deliverables, persons, loads) only for next month to come Ensure commitment from project team! 2015 IAS, University of Stuttgart 486
10.2 Initiating and Planning The project scheduling process Iterative updates during creation and during project Identify activities Identify activities dependencies Estimate resources for activities Allocate people to activities Finalize project plan System requirements Staff planning bar charts milestones deliverables 2015 IAS, University of Stuttgart 487
10.2 Initiating and Planning Example: activities during the development of the elevator Number Work Package Effort(PM) A Project planning 0,5 B Acquisition of needed SW environment 3,5 C Acquisition of needed HW 6 D Requirement analysis and conception 1,25 E Design 2 F Implementation 4 G Integration and test 3,25 H Assembly of the elevator 2 I Installation of the elevator 1 J HW/SW integration 1,75 K Putting into service/system test 2 L Acceptance 1 2015 IAS, University of Stuttgart 488
10.2 Initiating and Planning Project Plan as a Bar Plan months 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 WP A WP B WP C WP D WP E WP F WP G WP H WP I WP J WP K WP L 2015 IAS, University of Stuttgart 489
10.2 Initiating and Planning Challenges in Project Scheduling Estimating the difficulty of problems and thus the cost of developing a solution is hard Productivity is not proportional to the number of people working on a task Adding people to a late project makes it later because of communication overheads The unexpected always happens. Always allow contingency in planning Too small tasks start micro-management. Allow 1..2 weeks per task 2015 IAS, University of Stuttgart 490
10.2 Initiating and Planning Project organization Determining the project team: What kind of teams are needed? Which skills and expertise? What kind of relationships to superiors and functional departments exist? Project or matrix organization Which work packages are processed by which team? Internal or external subcontractors or suppliers? Note that you get not always the best resources on your project. This impacts estimation and planning (task duration, initial quality level). 2015 IAS, University of Stuttgart 491
10.2 Initiating and Planning Relationship of project structure, project organization and scheduling requirements plan of project structure project plan of project organization Proj.Mgr Maier sub project A sub project B sub project C assistant Müller A1 A2 B1 C1 C2 sub project manager Bauer sub project manager Schneider A3 Task entities B2 C3 Comp. S dpmt U Lehmann Schulze Schmidt scheduling through network plan A1 A2 plan of costs resource plan B1 C1 C2 C3 B2 A3 2015 IAS, University of Stuttgart 492
Software Engineering for Real-Time Systems 10 Project Management 10.1 Project Management Overview 10.2 Initiating and Planning 10.3 Risk Management 10.4 Project Execution, Controlling, and Closing 10.5 Tools 10.6 Summary 2015 IAS, University of Stuttgart 493
10.3 Risk Management Risk Management Risk management is concerned with identifying risks and drawing up plans to minimize their effect on a project. Risk = probability of undesired outcome x effect Project risks affect schedule or resources Product risks affect the quality or performance of the software being developed Business risks affect the organization developing or procuring the software 2015 IAS, University of Stuttgart 494
10.3 Risk Management The Risk Management Process Environment, processes, project objectives, tools, requirements, staffing Business objectives, strategy Risk strategy Strategic Risk Management Risk identification Risk Evaluation Project scenarios, proposed actions Risk Mitigation Prioritized mitigation list and follow-up Operational Risk Management Project reviews Changed environmental conditions and re-estimation Risk Monitoring 2015 IAS, University of Stuttgart 495
10.3 Risk Management Risk Identification and Risk Evaluation Assess probability and (undesired) effects of each risk Probability may be very low, low, moderate, high or very high Risk effects might be catastrophic, serious, tolerable or insignificant Relate identified risks to project planning to evaluate impacts (e.g., delays) 2015 IAS, University of Stuttgart 496
10.3 Risk Management Risk Mitigation Consider each risk and develop a strategy to manage that risk Avoidance strategies The probability that the risk will arise is reduced Mitigation strategies The impact of the risk on the project or product will be reduced Contingency plans If the risk arises, contingency plans are plans to deal with that risk 2015 IAS, University of Stuttgart 497
10.3 Risk Management Risks and Mitigation Proposals Risk Potential mitigation 1 Insufficient resources Consider capabilities; use best capabilities; team building; synchronization with internal competitors; training 2 Unrealistic planning and Detailed cost estimation; design to cost; incremental development; budget reuse; evaluate and prioritize requirements; feasibility analysis 3 Wrong functionality is Analysis of objectives; user interviews; use cases; prototyping; developed early documentation; quality function deployment 4 Inadequate user Prototyping; use cases; scenarios; user interviews; user interface involvement; usability laboratory 5 Gold plating Requirements evaluation; prototyping; cost-benefit analysis; design to cost; value analysis 6 Continuous changes of Thresholds and milestones for requirement changes; incremental requirements development; information hiding 7 Insufficient reused Benchmarking of suppliers; inspections; compatibility analysis; external components early integration tests with supplier 8 Poor Outsourcing Interface management; audits in front of each milestone; usability Management and result-driven contracts; competition; common teams 9 Insufficient real-time Simulation; modeling; prototyping; performance models and performance measurements; early test environments for critical resources 10 Inadequate technical In-depth technical analysis of requirements vs. available skills; know-how of staff cost-benefit analysis; prototyping; coaching; consulting 2015 IAS, University of Stuttgart 498
10.3 Risk Management Risk Control Assess each identified risks regularly to decide whether or not it is becoming less or more probable Also assess whether the effects of the risk have changed Follow through the actions to mitigate the risks Each key risk should be discussed at progress review meetings Risk management is about mitigating risks. Often many risks are analyzed and none mitigated. Analyze few top-five or top-ten risks and follow them periodically. 2015 IAS, University of Stuttgart 499
Software Engineering for Real-Time Systems 10 Project Management 10.1 Project Management Overview 10.2 Initiating and Planning 10.3 Risk Management 10.4 Project Execution, Controlling, and Closing 10.5 Tools 10.6 Summary 2015 IAS, University of Stuttgart 500
10.4 Project Execution, Controlling, and Closing Project Execution Project management tasks during the project execution Monitoring deadlines Planning of resources Release of work packages Continuous risk management Detection and resolution of problems Input data: Project plans Reporting systems Analysis of reports (critical paths, delays, quality levels, progress, forecasts, etc.) 2015 IAS, University of Stuttgart 501
10.4 Project Execution, Controlling, and Closing Project Tracking and Oversight States of the activities and work products Following up project progress is based on results, i.e. state changes of activities or work products. E.g., planned in progress Requirements Code and documents Test cases Defects released being tested / accepted approved / finished 2015 IAS, University of Stuttgart 502
10.4 Project Execution, Controlling, and Closing Project Controlling project goals project + process results risks measurements corrective actions evaluation 2015 IAS, University of Stuttgart 503
10.4 Project Execution, Controlling, and Closing What does a progress report contain? Management summary, red and green flags Progress of the project versus the plan Information on occurring difficulties Specific released work products / increments Quality status Information on consumed resources Estimation on further resource needs (e.g., budget, skills, people, time) Risk status and mitigation Decisions to be taken (to be prepared and evaluated by project manager) 2015 IAS, University of Stuttgart 504
10.4 Project Execution, Controlling, and Closing Progress reports compare actuals with plans. Total cum normalized defects S 2 3 4 5 6 7 8 9 S 2 4 6 7 8 9 1 4 Jul 7 Oct 10 13 Jan Apr 16 Jul * 00 Apr '99 Total cum effort 600 0 S S 2 2 3 4 5 6 7 4 6 7 8 8 9 9 150 0 1 4 7 10 13 Apr 16 Jul * Apr '99 Jul Oct Jan 00 Size S 2 3 4 5 6 7 8 9 S 2 4 6 7 8 9 1 4 Jul 7 Oct 10 13 Jan Apr 16 Jul * 00 Apr '99 80 40 0 Defects PM ESLOC (thousands) Total defect rate S 2 3 4 5 6 7 8 9 S 2 4 6 7 8 9 1 4 Jul 7 Oct 10 13 Jan Apr 16 Jul * 00 Apr '99 Aggregate staffing rate S 2 3 4 5 6 7 8 9 S 2 4 6 7 8 9 1 4 Jul 7 Oct 10 13 Jan Apr 16 Jul * 00 Apr '99 80 0 30 15 0 Defects People Date 05.09.2000 (17.16 mos) Plan Actual/ Forecast Est. to Complete Total Cum Normal Defects 613 769 1 Total Defect Rate 1 1 Total Cum Effort (PM) 123.89 201.93 0.00 Agg. Staff 0.21 Size (ESLOC(K)) Actuals, 37.30 History, 67.30 Outlook 0.00 PI 12.6 14.6 MBI 3.0 3.5 compared to approved plan Current Plan Actual Interpolated Current Forecast Green Control Bound Yellow Contr. Bound S = DR1, 2 = CDR, 3 = FCC, 4 = SIT, 5 = DR2, 6 = IOC, 7 = DR4, 8 = 99R, 9 = DR5 2015 IAS, University of Stuttgart 505
10.4 Project Execution, Controlling, and Closing Project Closing Ensure that relevant information is consolidated and archived Check that all deliverables are available Finalize configuration management Have a knowledge workshop to consolidate what was learned Check experiences on what worked with processes, tools, etc. and feed back to process owners Get stakeholder (customer) feedback 2015 IAS, University of Stuttgart 506
10.4 Project Execution, Controlling, and Closing Avoid Fog and Table Dancing Statement Meaning 1 The program is practically finished. It is still in the design phase. 2 A subprogram is still missing. The main program is 10% done. 3 The program still contains slight errors. The program crashes right after the printout of the header. 4 The program is being tested. The program survived the first trial without terminating early. 5 The program passed the overall test. The program runs with the values 1,3,5 but not with 0,2,4. 6 The program has been sold over 50 times. A pilot client will recommend the program after successful testing to his subsidiaries. 7 The program is being adopted in a system. In a fever of excitement it is tried to run the program on the initial system still without much success. 8 Fully compatible and portable on all...as long as the systems are exactly the same common systems... (incl. space planning) 9 The program is being introduced to the The first command is being encoded. market soon. 10 He doesn't have time, he's at a customer's There's nothing like it should be at all. Computer place. failure. 11 The documentation is being worked upon. It was discovered by chance on a scrap paper. 2015 IAS, University of Stuttgart 507
Software Engineering for Real-Time Systems 10 Project Management 10.1 Project Management Overview 10.2 Initiating and Planning 10.3 Risk Management 10.4 Project Execution, Controlling, and Closing 10.5 Tools 10.6 Summary 2015 IAS, University of Stuttgart 508
10.5 Tools Tools Support: SpiraPlan (agile project Management) SpiraPlan is a complete Agile Project Management System in one package, that manages your project's requirements, releases, iterations, tasks and bugs/issues. Requirements management Release planning Iteration planning Task tracking Bug/Defect/Issue Management Source code traceability Document management and collaboration Build management Project management http://www.inflectra.com/spiraplan/ 2015 IAS, University of Stuttgart 509
10.5 Tools Tools Support: 2-plan Desktop 2-plan is an integrated project management software that combines several tools for project planning and project execution. Top down and bottom up planning Graphical WBS Project control system Project scheduling management Project planning tools Free extensions http://2-plan.com/ 2015 IAS, University of Stuttgart 510
10.5 Tools Risk Management Software PRO Edition v1.5 Hyperlinks & navigational tabs to navigate anywhere within the risk tool help to anticipate detrimental uncertainties and address them http://www.managenable.com/en/risk-management-spreadsheet-softwares/riskmanagement-software-solutions.html 2015 IAS, University of Stuttgart 511
Software Engineering for Real-Time Systems 10 Project Management 10.1 Project Management Overview 10.2 Initiating and Planning 10.3 Risk Management 10.4 Project Execution, Controlling, and Closing 10.5 Tools 10.6 Summary 2015 IAS, University of Stuttgart 512
10.6 Summary Useful Hints Good management is as important as a good technology and tooling Understanding the priorities of your customers Motivation of the staff is the key to success A couple of good developers are better than a lot of fair developers Trust your staff The ability to communicate is essential Follow progress based on results (from customer perspective), not primarily documents Do not set up unrealistic plans - culture will suffer right away Provide visibility and ask for accountability Don t hide things that are out of your control Continuously update your plans 2015 IAS, University of Stuttgart 513
10.6 Summary Summary Good project management is essential for project success The intangible nature of software causes problems for management Managers have different roles but their most significant activities are people management, planning and follow-up Planning and estimating are iterative processes which continue throughout the course of a project Risk management is concerned with identifying risks which may affect the project and planning to ensure that these risks do not develop into major threats 2015 IAS, University of Stuttgart 514
10.6 Summary Further Reading Software Measurement Christof Ebert, Reiner Dumke Springer, 2. Auflage 2007 ISBN: 978-3540716488 www.vector.com/books The book on practical measurement and improvement with many tips and concrete industry examples. Few organizations have really institutionalized measurement of their products and processes. This book is bang up-to-date in both fields and packed with practical advice. For every software engineer." Charles R. Symons, 2007 2015 IAS, University of Stuttgart 515