CMPT 275 Chapter 9 Project Management CMPT 275 Project is ... • Guide to the Project Management Body of Knowledge (PMBOK) defines a "project" to be a temporary endeavour undertaken to create a unique product or service CMPT 275 Project Constraints • Time: elapsed calendar time, • Project schedule, or • Target delivery date • Resource: required to carry out the project • People, equipment, material and their associated cost • Work: amount of work which must be done during a project in order to produce and deliver the product. • Software development phases, or • Feature set (or requirements) to be contained in the system ... must be managed by project manager CMPT 275 Project Management is ... • • • • Obtaining: proposal, feasibility study Planning Scheduling, Staffing Budgeting: determining the need for resources and divide $ to satisfy these needs • Monitoring of project progress • Risk analysis and monitoring • and Closing: post mortem (e.g. evaluate time estimation) … a project CMPT 275 Project Planning • Project planning requires: • • • • Defining the goals of the project Defining the iterations of the project Specifying software development process phases Associating deliverables with each phase to verify progress • Defining measure of success of the project CMPT 275 Project Scheduling • Project scheduling requires: • Scheduling iterations and phases of the project taking into consideration: • Time constraints: start date, end date, milestones (significant events with 0 duration) • Resources: people, equipment • Cost of the resources • Identifying phases that can be done in parallel (minimizing project duration) CMPT 275 Software metrics • Software metrics can be used as a measure, historical data used to predict resource and time needs of present project • Size oriented: Based on measure like # lines of code • Function oriented: measures like #'s of data structures, methods, user interactions …. • Object oriented: measures like #'s of scenarios, subsystems, use cases, or classes • Used to • Facilitate estimation of development time, cost, staff needs • To assess productivity of developers • To assess progress of project (monitor if project is on time) CMPT 275 Software metrics / allocating resources • Over time an organization will build up a database of projects completed • For each completed project, phase, task • will measure complexity using each metric • Will also measure the completion time and use of resources • Based on the accumulated information the each phase, or component of the next new project will be estimated in terms of the averages from past experience CMPT 275 Project Monitoring • Project manager needs to receive sufficient feedback at regular intervals throughout project in order to gage its progress • Project monitoring requires: • Saving a copy of project schedule @ start of project • Via regular meeting (e.g. weekly) • Receiving status report from each subteam leader • Verifying whether milestones have been successfully completed • Reporting of problems / risks that may effect completion times CMPT 275 Project Monitoring • From this feedback, project manager … • Can predict delays and/or bottlenecks (risks) due to, for example, insufficient amount of resources • Can then can act upon these delays and/or bottlenecks (eliminate or alleviate their impact on the project) by revising project schedule: • Reschedule phases and milestones • Reallocate resource • etc… CMPT 275 Critical Path of Project • Definition • Sequence of tasks that determines the earliest completion time of a project • It is the longest path through the Schedule (longest in the sense of tasks that must be completed before other tasks begin) CMPT 275 • Why do we bother figuring out the critical path of our project? • Because we now know the tasks that can affect the duration of your project • If these tasks are not performed as scheduled, the project will be late CMPT 275 Capability Maturity Model (CMM) • Introduced by Software Engineering Institute (SEI) in 1991 (http://www.sei.cmu.edu/) • Model … • For judging the maturity of the software development process of an organization, and • For identifying the key practices that are required to increase the maturity of this process CMPT 275 Capability Maturity Model (CMM) • Using this model, an organization can evolve as it defines, implements, measures, evaluates, controls, and improves its software development process CMPT 275 Capability Maturity Model (CMM) • Level 1 – INITIAL - has ad-hoc software development process, Few defined processes, Reliant on individual 'heroics' • Level 2 – REPEATABLE - Basic management processes in place to track cost schedule and functionality. Can repeat software development process on similar applications • Level 3 – DEFINED _has defined and documented and standardized all the pieces of its software development process for management and engineering. All projects use an approved, tailored version of the organizations software process CMPT 275 Capability Maturity Model (CMM) • Level 4 – MANAGED – Detailed measures (metrics) measuring the effectiveness of the software process and the product quality are collected. These measures are used to understand the development process • Level 5 – OPTIMIZING - Continuous improvement of the development process using quantitative feedback (metrics measured in previous projects). Introduction of innovative approaches and technologies in a controlled and efficient manner. CMPT 275 CMM CMPT 275 CMM CMPT 275 Level 1: INITIAL • No stable development environment • Projects are often using very different approached to software development • Underestimating of resources is the norm • Procedures are poorly defined or not defined • In crisis existing procedures are abandoned • Strong managers or team members hold the team and the project together • Need the 'hero' to pull off the project • Not repeatable (the correct 'hero' may not be available) CMPT 275 Level 2: Repeatable • Basic Software management in place • Software standards are defined and faithfully followed • Software development processes may differ between groups in the same organization • There must be organizational level policies that guide the groups in establishing their development processes • Realistic allocation of resources based on previous similar projects • Project management procedures are used CMPT 275 Level 3: DEFINED • Standard development and management processes are documented and used across the organization • Staff are trained in the use of these processes • Process are designed to help managers and developers be more efficient. • Projects tailor the organizations development process for their needs (before starting) • A process includes readiness critera, inputs, standards and procedures for implementation and verification CMPT 275 Level4: MANAGED • Measurement of productivity and quality of products produced • Measured results tabulated and stored to be used as input for measuring the success of software processes and products • Results are used to fine tune processes and reduce the variation between projects (bringing up the mean level of success) • Results in a stable process CMPT 275 CMPT 275 Teamwork Skills • • • • • • • Project management skills Communication skills -> Listening skills Problem solving skills Decision making skills Conflict resolution skills Feedback (giving/receiving) skills Leadership skills CMPT 275 Problem Solving & Decision Making Skills – How to! • Describe problem (what is the problem?) • Examine background of problem • Brainstorm: come up with solutions (accept all suggested solutions) • Select criteria/constraints for evaluating these suggested solutions (e.g. small budget) • Evaluate suggestions solutions • Discard solutions that do not comply with criteria • Team selects a choice by consensus (one way to do this selection) • Assign a timeline and responsible team member to implement the selected solution CMPT 275 Conflict Resolution Skills – How to! • Realization that there is a conflict (e.g. conversation is not going anywhere) • The conflict is described in objective terms • Parties communicate feelings and position as well as cooperative intentions (how far they are willing to compromise) • Parties examine each other’s perspective • Meanwhile, mediator manages and motivates the communication amongst parties • Eventually, agreement is reached that satisfies both parties CMPT 275 Feedback Skills – How to! - 1 • When giving feedback, remember to state something positive first then suggest a way to improve the work • Remember to give feedback about the work, not the person CMPT 275 Feedback Skills – How to! - 2 • Characteristics of constructive (hence useful) feedback: • • • • • • • • • Specific Descriptive Made with “I” statements Validated by receiver About important, changeable aspects of work Immediate Private Pressure-free Generous with genuine praise CMPT 275 CPSC 319 Personality Types • 1. Energizing Scale - How are you energized? • Extravert (E) • Introvert (I) • 2. Attending Scale - How you gather info? • iNtuition (N) • Sensing (S) • 3. Deciding Scale - How you process info? • Thinking (T) • Feeling (F) • 4. Closure Scale - Preferred life style? • Judging (J) • Perceiving (P) 01W - Term2 CMPT 275 CPSC 319 01W - Term2 Personality Types • Why did we do the exercise? • Understand how diverse personalities may influence team work • Appreciate such diversity