Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
EKT 421 SOFTWARE ENGINEERING Project Management Dr. Nik Adilah Hanin Zahri [email protected] Today’s Topics • • • • • Software Project Management Project Planning Project Scheduling Risk management Managing People 2 Software Project Management • Project managements concerned with the following: – Ensure the software is in accordance with the requirements by the customer – Ensure on time/schedule delivery • Essential because software development is subject to budget and schedule constraints by the software developer 3 Success Criteria • Deliver the software to the customer at the agreed time • Keep overall costs within budget • Deliver software that meets the customer’s expectations • Maintain a happy and well-functioning development team 4 Software Management Distinctions • The product is intangible – Software cannot be seen or touched, therefore the development progress cannot simply be seen • Many software projects are 'one-off' projects – Large software projects are usually different in some ways from previous projects – Even managers with lots of experience may find it difficult to anticipate problems • Software processes are variable and organization specific – Difficult to predict particular software process that leads to development problems 5 Management Activities 1. Proposal writing Proposal writing includes the objective and development process of the project to win a contract 2. People management Project managers have to choose team members and establish effective ways of working to increase team performance 3. Project planning Project managers are responsible for planning, estimating and scheduling project development and assigning members to tasks 6 Management Activities 4. Reporting Project managers are usually responsible for reporting on the progress of a project to customers and to the managers of the company developing the software 5. Risk management Project managers assess the risks that may affect a project, monitor these risks and take action when problems arise 7 Project Planning 8 Project Planning • Project planning involves i. breaking down the work and assigning each task to project team members ii. anticipating problems that might arise and prepare tentative solutions to those problems • The project plan is used to – describe the work flow done to the project team and customers – help assess progress on the project 9 Planning Stages 1. Proposal stage – bidding for a contract to develop or provide a software system 2. Project startup phase – assigning member for each tasks, planning development process (plan-driven/agile) and resource allocation etc 3. Periodically throughout the project – modifying plan in the light of experience gained and information from monitoring the progress of the work 10 Software Pricing • Estimation are made to discover the cost of producing a software system – Includes hardware, software, travel, training and effort costs • Broader organisational, economic, political and business considerations influence the software pricing 11 Factors Affecting Software Pricing Factor Description Market opportunity A development organization may quote a low price because it wishes to move into a new segment of the software market. The experience gained may also help it develop new products. Cost estimate uncertainty Cost estimate uncertainty will cause the increasing price by a contingency over and above its normal profit. Contractual terms A customer may be willing to allow the developer to retain ownership of the source code and reuse it in other projects, which will decrease the pricing Requirements volatility If the requirements are likely to change, an organization may lower its price to win a contract. After the contract is awarded, high prices can be charged for changes to the requirements. Developers in financial difficulty may lower their price to gain a contract. It is Financial health better to make a smaller than normal profit or break even than to go out of business. Cash flow is more important than profit in difficult economic times. 12 Plan-Driven Development • Plan-driven (plan-based ) approach to software engineering where the development process is planned in detail • the ‘traditional’ way of managing large software development projects 13 Plan-driven Development : Pros and Con Pros Contra 1. Allows organizational 1. Many early decisions issues (availability of have to be revised staff, other projects, because of changes to etc.) to be closely taken the environment where into account the software is developed and used. 2. Potential problems and dependencies are discovered before the project starts 14 Agile Planning • Agile software development – iterative approaches where the software is developed and delivered to customers in increments • The functionality of these increments is not planned in advance but is decided during the development – depends on progress and on the customer’s priorities • The customer’s priorities and requirements change – need to have a flexible plan that can accommodate changes 15 Project Plans • In a plan-driven development project, a project plan sets out the resources available to the project, the work breakdown and a schedule for carrying out the work • Plan sections 1. 2. 3. 4. 5. 6. 7. Introduction (Objective and constraints etc. descriptions) Project organization Risk analysis Hardware and software resource requirements Work breakdown Project schedule Monitoring and reporting mechanisms 17 Project Plan Supplements Plan Description Quality plan Describes the quality procedures and standards that will be used in a project. Validation plan Describes the approach, resources, and schedule used for system validation. Configuration management plan Describes the configuration management procedures and structures to be used. Maintenance plan Predicts the maintenance requirements, costs, and effort. Staff development plan Describes how the skills and experience of the project team members will be developed. 18 The Planning Process <<system>> Project Planner [project finished] [unfinished] Identify Constraints Do the Work Identify Risks Define Milestones and Deliverables [no problem] Define Project Schedule Monitor Progress Against Plan [serious problem] [minor problems and slippages] Initiate Risk Mitigation Actions Replan Project 19 20 Project Scheduling • Project scheduling is the process of deciding: i. time and effort needed to complete each task ii. team members who will work on the each tasks iii. resource estimation to complete each task - disk space required on a server, specialized hardware or the travel budget 21 Project Scheduling Activities 1. Split project into tasks and estimate time and resources required to complete each task 2. Organize tasks concurrently to make optimal use of workforce 3. Minimize task dependencies to avoid delays caused by one task waiting for another to complete Dependent on project managers intuition and experience 22 Milestones and Deliverables • Milestones are points in the schedule against which you can assess progress – e.g. the handover of the system for testing • Deliverables are work products that are delivered to the customer – e.g. requirements document for the system 23 Project Scheduling Process Identify activities Identify activities dependencies Estimate resources for activities Create project charts Allocate people to activities Software requirements and design information Bar chart describing the project schedule 24 Scheduling Problems • Estimating the difficulty of problems and 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 – Should have contingency in planning 25 Schedule Representation • Graphical notations are normally used to illustrate the project schedule – show each tasks in the project – each task should take about a week or two • Bar charts are the most commonly to show project schedules – activities or resources against time 26 Activity Bar Chart 27 Staff Allocation Chart 28 Task Effort (persondays) Duration (days) T1 15 10 T2 8 15 T3 20 15 T4 5 10 T5 5 10 T2, T4 (M3) T6 10 5 T1, T2 (M4) T7 25 20 T1 (M1) T8 75 25 T4 (M2) T9 10 15 T3, T6 (M5) T10 20 15 T7, T8 (M6) T11 10 10 T9 (M7) T12 20 10 T10, T11 (M8) Dependencies T1 (M1) 29 31 Risk Management • Risk management is concerned with i. ii. identifying risks drawing up plans to minimise the risk effect • Type of risks: i. Project risks which will affect the schedule or resources ii. Product risks which will affect the quality or performance of the software iii. Business risks which will affect the organisation developing or procuring the software 32 Examples of Project, Product and Business Risks Risk Affects Description Staff turnover Project Experienced staff leaving the project before it is finished Management change Project Change of organizational management with different priorities Hardware unavailability Project Essential hardware for the project is not delivered on schedule Requirements change Project , Product Larger number of changes to the requirements than anticipated Specification delays Project ,Product Specifications of essential interfaces are not available on schedule Size underestimate Project ,Product The size of the system has been underestimated CASE tool underperformance Product CASE tools, which support the project, do not perform as anticipated Technology change Business The underlying technology on which the system is built is superseded by new technology Product competition Business A competitive product is marketed before the system is completed 33 Risk Management Process 4. Monitor the risks throughout the project 1. Identify project, product and business risks 2. Assess the likelihood and consequences of these risks 3. Draw up plans to avoid or minimise the effects of the risk 1. Risk Identification 2. Risk Analysis 3. Risk Planning 4. Risk Monitoring List of potential risk Prioritized risk list Risk avoidance and contingency plans Risk assessment 34 1. Risk Identification • Might be a team activities or based on the individual project manager’s experience • A checklist of common risks may be used to identify risks in a project – – – – – Technology risks People risks Organisational risks Requirements risks Estimation risks 35 Examples of Project Risks Risk type Possible risks Technology The database performance is lower than expected. Reusable software components cannot be reused as planned. People It is impossible recruit staff with the skills required. Key staff are ill and unavailable at critical times. Required training for staff is not available. Organizational Restructure of organization to comply with different management of the project. Organizational financial problems force reductions in the project budget. Tools The code generated by software code generation tools is inefficient. Software tools cannot work together in an integrated way. Requirements Changes to requirements that require major design rework are proposed . Customers fail to understand the impact of requirements changes. Estimation The time required to develop the software is underestimated. The rate of defect repair is underestimated. The size of the software is underestimated. 2. Risk Analysis • Assess probability and seriousness of each risk • Risk probability level : Very low Low Moderate High Very high • Risk consequences might be catastrophic, serious, tolerable or insignificant 37 Risk Probability Levels and Effects Risk Probability Effects Organizational financial problems force reductions in the project budget . Low Catastrophic It is impossible to recruit staff with the skills required. High Catastrophic Key staff are ill at critical times in the project . Moderate Serious Faults in reusable software components have to be repaired before these components are reused. Moderate Serious Changes to requirements that require major design rework are proposed . Moderate Serious Restructure of organization to comply with different management of the project. High Serious Moderate Serious The database performance is lower than expected. 38 Risk Probability Levels and Effects Risk Probability Effects The time required to develop the software is underestimated . High Serious Software tools cannot be integrated . High Tolerable Customers fail to understand the impact of requirements changes . Moderate Tolerable Required training for staff is not available . Moderate Tolerable The rate of defect repair is underestimated . Moderate Tolerable The size of the software is underestimated . High Tolerable Moderate Insignificant Code generated by code generation tools is inefficient . 39 3. Risk Planning • Consider each risk and develop a strategy to manage that risk • Type of strategies i. Avoidance strategies to reduce the probability that the risk will arise ii. Minimization strategies to reduce the impact of the risk on the project/product iii. Contingency plans strategies to deal with arise risks 40 Strategies for Risk Management Risk Type of Strategy Strategy Description Short staff due to illness Avoidance strategy Reorganize team so that there is more overlap of work and people therefore understand each other’s jobs. Defective components Avoidance strategy Replace potentially defective components with bought-in components of known reliability. Recruitment problems Alert customer to potential difficulties and the Minimization possibility of delays; investigate buying-in strategy components. Underestimate Minimization Investigate buying-in components; investigate use of d development strategy a program generator. time 41 Strategies for Risk Management Risk Type of Strategies Strategy Description Low database performance Contingency plan Investigate the possibility of buying a higherperformance database. Requirements changes Contingency plan Derive traceability information to assess requirements change impact; maximize information hiding in the design. Contingency plan Prepare a briefing document for senior management showing the importance of the project and explaining the reasons why cuts to the project budget would not be costeffective Contingency plan Prepare a briefing document for management showing that the project is making a very important contribution to the business. Organizational financial problems Organizational restructuring 4. Risk Monitoring • 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 • Each key risk should be discussed at management progress meetings 43 Project Risk Indicators Risk type Potential indicators Technology Late delivery of hardware or support software; many reported technology problems. People Poor staff morale; poor relationships amongst team members; high staff turnover. Organizational Organizational gossip; lack of action by senior management. Tools Reluctance by team members to use tools; complaints about CASE tools; demands for higher-powered workstations. Requirements Many requirements change requests; customer complaints. Estimation Failure to meet agreed schedule; failure to clear reported defects. 44 45 Managing People • People are an organisation’s most important assets • The tasks of a manager are essentially peopleoriented • Poor people management is an important contributor to project failure 46 People Management Factors • Consistency – Team members should all be treated in a comparable way without favourites or discrimination • Respect – Different team members have different skills and these differences should be respected • Inclusion – Involve all team members and make sure that people’s views are considered • Honesty – You should always be honest about what is going well and what is going badly in a project 47 Motivating People • Manager’s role is to motivate the people working on a project • Motivation means organizing the work and the working environment to encourage people to work effectively – If people are not motivated, they will work slowly, and more likely to make mistakes • Different types of motivation based on: – Basic needs (e.g. food, sleep, etc.) – Personal needs (e.g. respect, self-esteem) – Social needs (e.g. to be accepted as part of a group) 48 The Effectiveness of A Team • Group composition – Need a mix of people in a project group as software development involves diverse activities such as negotiating with clients, programming, testing and documentation • Group organization – A group should be organized so that individuals can contribute to the best of their abilities and tasks can be completed as expected • Technical and managerial communications – Good communications between group members, and between the software engineering team and other project stakeholders, is essential 50 Group Composition • Group composed of members who share the same motivation can be problematic – Task-oriented - everyone wants to do their own thing – Self-oriented - everyone wants to be the boss – Interaction-oriented - too much chatting, not enough work • An effective group has a balance of all types • This can be difficult to achieve software engineers are often task-oriented • Interaction-oriented people are very important as they can detect and defuse tensions that arise 51 Group Organization • The way that a group is organized affects the – decisions that are made by that group – ways that information is exchanged – interactions between the development group and external project stakeholders • Small software engineering groups are usually organised informally without a rigid structure • For large projects, there may be a hierarchical structure where different groups are responsible for different sub-projects 52 Key Points • Good project management is essential for software engineering projects to be developed on schedule and within budget • Software is intangible. Projects may be novel or innovative with no body of experience to guide their management. • Risk management involves identifying and assessing project risks to establish the probability that they will occur and the consequences and contingency plan for the project if that risk does arise. 55 Key Points • The price charged for a system does not just depend on its estimated development costs but also depends on the market and organizational priorities • Plan-driven development is organized around a complete project plan (includes the project activities, the planned effort, the activity schedule and task assignment to team members) • Project scheduling usually is shown using Bar charts which show the activity duration and staffing timelines • Estimation techniques for software may be experience-based or algorithmic cost modeling 56