690 likes | 712 Views
P roject Management. Project Management. ANF DATA introduction Project Management Definition & Context Project Management Activities Effort Estimation Planning, Scheduling & Controlling Managing People Risk Management Some Special Project Types Distributed Projects Death March Projects.
E N D
Project Management • ANF DATA introduction • Project Management Definition & Context • Project Management Activities • Effort Estimation • Planning, Scheduling & Controlling • Managing People • Risk Management • Some Special Project Types • Distributed Projects • Death March Projects Contents
Introduction • Ivan Bradáč, ANF DATA KB • In ANF DATA since 2002 • Most of the time as Project Manager • Involved also in • Architecture • Implementation (Java) • Requirements Specifications • Before ANF DATA employed in Sun Microsystems, AIS Software • Masaryk University, Faculty of Science (Mathematical Analysis) • Ivan.Bradac@siemens.com My Introduction
PM Definition & Context • What is a Project? • A project is a temporary endeavor to create a unique product, service, or result. • Project vs. Operational Work : Operations are ongoing and repetitive • What is Project Management? • Application of knowledge, skills, tools and techniques to project activities to meet project requirements • What is special on software Project Management? • Intangible product • Processes not standardised • Uniqueness of software projects What is Project Management
PM Definition & Context • Project Manager & Project Team • Performing Organization • Owner (Sponsor) – person/organization who accepts and pays for the project result. • Customer (User) – person(s)/organization who will use the project result. • Other stakeholders (Influencers) • Individuals and organizations involved in the project or affected by the project‘s outcome • Stakeholders can have positive or negative influence on the project • Don‘t forget to identify the players, don‘t forget about the political influences! Project Players (Stakeholders)
PM Definition & Context • Organizational systems can be project-based or non-project based • Organizational structures • Functional : No Project Managers • Projectized : Project manager = Functional Manager • Matrix : Project are performed throughout the functional lines. • The organizational structure has an influence on the Project‘s Manager authority Organizational Influences
Chief Executive Project Coordination Functional Manager Functional Manager Functional Manager Staff Staff Staff Staff Staff Staff Staff Staff Staff PM Definition & Context Functional Organization (Gray boxes represent staff engaged in project activities.)
Chief Executive Project Coordination Project Manager Project Manager Project Manager Staff Staff Staff Staff Staff Staff Staff Staff Staff PM Definition & Context Projectized Organization (Gray boxes represent staff engaged in project activities.)
Chief Executive Functional Manager Functional Manager Functional Manager Staff Staff Staff Staff Staff Staff Project Manager Staff Staff Project Coordination PM Definition & Context Matrix Organization (Gray boxes represent staff engaged in project activities)
PM Definition & Context • In general, the following phases are always present: • Initial Phase • Intermediate Phase • Final Phase • According to SEM: Project Lifecycle
PM Definition & Context Project Lifecycle – Staffing
PM Definition & Context • Scope Management (Requirements engineering) • Time Management (Planning, scheduling, controlling) • Cost Management (Effort estimation, controlling) • Quality Management • Human Resource Management • Risk Management • Integration Management (communication, putting everything together) Project Management Activities
Integration Management • Coordination and integration of all project management activities and processes in accordance with the proper development method (e.g. stdSEM) • Includes e.g. the following activities • Scheduling meetings with customers and other stakeholders • Making choices where to concentrate resources in the moment • Anticipating potential issues • Making trade-offs among competing objectives • The central project document: Project Plan Integration Management
Integration Management • Project Plan is the fundamental project document dedicated to team members and the management. • It sets out the available resources, work breakdown and schedule • It may reference more detailed documents pertaining to specific parts, e.g. Test Plan • Project Plan consists at least of • Key project data • Project organization • Deliverables (software, documentation, everything to be delivered) • Project volume planning (efforts and costs) • Work breakdown and schedule • Risk Analysis • Monitoring and reporting Project Plan
Integration Management • The following parts are either included in the Project Plan directly or in a separate document: • QM Plan • CM Plan • Test Plan • Effort Estimation and scheduling are typically done outside of the Project Plan (but the PP must reference them. • Keep the Project Plan up to date • Each team member must know where is the valid Project Plan Project Plan - Continued
Integration Management • The typical project roles include: • Project Manager • Technical Leader/ Architect • Quality Assurance Manager • Test Leader • Testers • Developers • Further project roles: Requirements Manager, Subproject manager, Team Leader, Documentation Writer, Configuration Engineer/Manager, ... • The project organization chart is a hierarchical diagram depicting the roles. Project Roles
Effort Estimation • Cost management : Planning, estimating, budgeting, and controlling costs • Goal: Project should be completed within the approved budget • Project Costs consist of • Hardware and SW costs • Travel and training costs • Effort costs (paying of the SW engineers) • Cost Estimation Effort Estimation • As effort cost is dominant in SW projects, effort estimation is the dominant part of cost estimation Effort Estimation – Dominant part of Cost Management
Effort Estimation • Effort Estimation is a „black art“! • “Industry surveys from organizations such as the Standish Group, as well as statistical data [...] suggest that the average [software] project is likely to be 6-12 months behind schedule and 50-100 percent over budget.”Yourdon, E., Death March, Second Edition, Prentice-Hall, 2004. • What is special about SW effort estimation? • Intangible product • Rapidly emerging new technologies • Insufficient statistical data Effort Estimation – Known Issues
Effort Estimation • The effort estimation is often disinterpreted as the minimum possible time to complete the project (see next slide for explanation): Effort Estimation - Interpretation
Effort Estimation Explanation of the picture before: • The x-axis is the time (person-hours) necessary to complete the project. • The curve is a „probability distribution“: • Start (theoretically) the same project P many times independently. • For distinct points x[i] on the x-axis, set the y-value to be the nr. of projects, whose real duration was closest to x[i] • Create the curve by interpolating you get a „skewed“ Gaussian curve • (For math freaks, integral of the curve over R equals 1; integral from a to b is the probability that the project will take more person-hours than a but less person-hours than b) Effort Estimation - Interpretation
Effort Estimation • The result of an effort estimation is a figure, which predicts the project duration/necessary completion time with some probability • The best effort estimation is in the middle of the skewed Gaussian curve: • The probability that the project will be completed earlier is 50% • The probability that the project will be completed later is 50% • As there is some minimal time necessary, the Gaussian curve does not start at 0. • As there is no certainty that the project wil be finished in a finite time, the Gaussian curve is not limited Effort Estimation – Interpretation
Effort Estimation • Standard techniques: • Expert judgement • Algorithmic • Analogy • Bottom-up approach • Some other techniques: • Parkinson‘s law (Work expands to fill the time available) • Price to win (Estimate to whatever the customer has available) Effort Estimation – Techniques Overview
Effort Estimation • Experts on the domain or/and used technology are consulted and they provide an estimate based on their experience. • Theory: The expert‘s estimates are compared; the estimation process iterates untill an agreed estimation is reached • Practice – the project manager alone makes the effort estimation and is responsible for it. At least, a review is critically needed! • Another practice : As there is no time for iterations of estimation, an average is taken from the available estimations. Effort Estimation – Expert Judgement
Effort Estimation • Uses a mathematical mode to compute the effort • Input parameters: Unique Project characteristics like • Project size • Project complexity • Result is computed. • Most general form: Effort = A * Size^B * M • A ... Constant for organizational influences • B ... Magic constant , 1 < B < 1.5 • M ... Combines process, product, development attributes • Example : COCOMO model • Problems: How to define the Size? • Lines of codes • Function points Effort Estimation - Algorithmic cost modelling
Effort Estimation Linear X Exponential dependence Size/Effort
Effort Estimation Perfectly Partitionable Task (50 person-months)
Effort Estimation Unpartitionable Task
Effort Estimation • The dependence between size and effort is an exponential one • For small projects and partitionable tasks, the dependence of effort/size is close to a linear one (exponent ~ 1) • For bigger projects, complex (less partitionable) task, the dependence is a exponential one (exponent ~ 1.5) • Persons and months are not interchangable: To accelerate the work in a factor of two, duplicating the number of persons is not sufficient. Message from previous slides
Effort Estimation • Compare the system to be developed to completed projects, system or components • Analyse similarities and differences • Derive the estimate based on the known price/effort of the systems used for the comparison • Recommendations • Combine with other techniques • Use more on lower level, not suitable for whole projects • Provide an order-of-magnitude assessment Effort Estimation by Analogy
Effort Estimation • The „not scientific“ approach but most widely used • Typical steps: • Decompose the work to subpackages • Assess the subpackages • Add contingency allowance for subpackages • Sum the results • Add contingency allowance for the whole result • For a set of similar tasks, a „base task“ can be identified and thoroughly estimated; the other tasks are compared to the base task. Effort Estimation – Bottom-up Approach
Effort Estimation • Bottom-up approach has got its pitfalls: • Dividing the whole work into work packages might be more difficult than estimating the single packages • Some tasks are easily forgotten: • Development tools – installation, support, training • Code not directly attributable to as functionality like logging, system start-up/shut down, backup, archiving • Performance and stress testing • Meetings, communication • Technical documentation • ... And many others Effort Estimation – Bottom-up Approach - Traps
Effort Estimation • Function Point Analysis is a widely adopted and used estimation method • Divide the software into modules from the user point of view • For each module, • Compute the Unadjusted Function Points • According to complexity factors, compute the Adjusted Function Points • Summarize the Function Points of the modules • Transform the Function Points count to the expected effort. Effort Estimation – Function Point Analysis - Overview
Effort Estimation • The number of Unadjusted Function Points of a module is derived from • External Inputs – File types, data elements that are input as parameters to the module • External Outputs – output parameters of the module (as above) • External Enquiries – Nr. of transactions withim the module where an input causes an immediate output • Internal Logical Files – Records and their elements internal within the module • External Interface Files – Records and their elements to be used by other modules • Each factor is assigned a value according to a table; results are summed. Effort Estimation – Function Point Analysis – Unadjusted Function Points
Effort Estimation • Once the Unadjusted Function Points are computed, complexity factors are taken into account • Data Communication • Distributed data processing • Performance • Heavily used configuration • Transaction rate • Online data entry • End user efficiency • Online update • Complex processing • Reusability • Installation ease • Operational ease • Multiple sites • Facilitate change • Result Adjusted Function Points Effort Estimation – Function Point Analysis – Adjusted Function Points
Effort Estimation • Well – known rule of thumb : Estimate the effort to the best of your abilities and multiply it by two (and add something...) • Avoid political estimation (political price is however acceptable) • Always introduce a contingency factor • Contingency of standalone tasks • Contingency for the whole project • Acceleration penalty – if the project is to be accelerated by some factor, the size of the team must be increased at least by a square of the factor (acc. 2 increase team by 4!) – but the reasonable team size is limited: • The length of the project in months should not exceed the average number of the team • Example: 180 months project at most 13 people working for 14 months Effort Estimation – Tips & Tricks
Effort Estimation • Overestimation is not the solution – why? • Effort is overestimated Price is too high project does not start or the competing company starts it • „Bindingly Obvious Rule of Estimation“: There is no method that works Paul Coombs, IT Project Estimation – a Practical Guide to the Costing of Software, Cambridge University Press Combine the techniques Effort Estimation – Tips & Tricks II
Planning, Scheduling & Controlling • Project planning is an iterative process • The following activities are done at the beginning: • Establish project constraints • Define milestones and deliverables • Schedule the work packages • The following activities are iterated (untill project is completed or cancelled): • Review project progress • Revise estimates of project parameters • Assess and renegotiate (if possible) project constraints • Reschedule the project • Continue with updated schedule Overview
Planning, Scheduling & Controlling • Divide the work into subpackages • (Estimate needed effort) • Identify activity dependencies • Allocate people to work packages • Schedule the work packages • Identify the critical path – the longest sequence of dependent tasks • Identify the critical chain – the longest sequence of tasks taking the resource dependencies into acount • Introduce project-wide contingency. Two options • Mutliply each taks by some factor • Add buffers into the plan • Typically, bar charts and activity networks are used for the scheduling • Note: The following pictures depict just an abtract example, the real meaning of tasks is not significant. Scheduling
Planning, Scheduling & Controlling Divide the work to subpackages (Identify Tasks)
Planning, Scheduling & Controlling Identify Activity Dependencies
Planning, Scheduling & Controlling Find the critical path
Planning, Scheduling & Controlling Identify Resource Conflicts
Planning, Scheduling & Controlling Resolve Resource Conflicts
Planning, Scheduling & Controlling Identify Critical Chain
Planning, Scheduling & Controlling • There is a vast number of PM Tools, but the tools of the Microsoft world prevail ... • Excel (or the like) – in pratice, the most used tool • MS Project (2003) • Desktop application, part of MS Office suite • Mostly used features include Gantt charts, resource sheets, network activity diagrams • MS Project Server (also reffered to as EPM – Enterprise Project Management) • Web solution • The plan can be accessed from MS Project 2003 (advanced work, mostly for the PM) or via web (simpler interface, for team members) • Can be customized and extended for the company‘s needs Planning & Controlling Tools
Managing People • People working in a software organization are its greatest assets! • Treat all people in a project in a comparable way • Take in account different technical and communication skills and experience • Let all people contribute and listen to them • Inform honestly about project status • Communication – Support proper communication channels • Most important activities include • Selecting the staff • Team building and development • Motivating people Managing People – General
Managing People • Information about people to be appointed to the project comes mostly from the following sources: • Information provided by the candidates (CVs) – provides the first hints whether a candidate is likely to be suitable (Education, practise, certificates, ...) • Interviews – provides more information about the communication and social skills - but avoid rapid subjective judgements • Recommendations for people who have worked with the people – very effective if you know and trust the people making the recommendations • Beware: Social & communication skills are as important as the technical ones - a conflicting person can destroy the project regardless of their technical skills! Selecting the Staff
Managing People • In an ideal world, the project manager has the option to select the complete staff for the project – in the real world, this is mostly not the case: • The best experts are typically not available as they work on other projects or they are too expensive • Pressures to employ less experienced, less talented or even problematic people in the project may appear • You can‘t mostly involve exactly the people you want but insist on rejecting unacceptable persons Selecting the Staff - Limitations
Managing People • Stages of team development include • Forming – Team members define goals, roles, and direction of the team. Kick-off meeting! • Storming – The team sets rules and decision-making processes, often renegotiates (argues) over team roles and responsibilities • Norming – Procedures, standards, and criteria are agreed on • Performing – The team begins to function as a system • Adjourning – Termination of tasks, disengagement of relationships Team Building
Managing People • Maslow‘s human needs hierarchy Motivating people – Hierarchy of Needs