Teaching material for a course in Software Project Management & Software Engineering – Part I.

Slides:



Advertisements
Similar presentations
Project Management Concepts
Advertisements

1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
Software Process Models
 Chapter 6: Activity Planning – Part 1 NET481: Project Management Afnan Albahli.
3-1 © Prentice Hall, 2004 Chapter 3: Managing the Object-Oriented Information Systems Project Object-Oriented Systems Analysis and Design Joey F. George,
The “Lifecycle” of Software. Chapter 5. Alternatives to the Waterfall Model The “Waterfall” model can mislead: boundaries between phases are not always.
Introduction to Project Management Chapter 6 Managing Project Scheduling Information Systems Project Management: A Process and Team Approach, 1e Fuller/Valacich/George.
Project Change Management
Software project management Module 1 -Introduction to process management Teaching unit 1 – Introduction Ernesto Damiani Free University of Bozen-Bolzano.
Project Management Session 7
1 SOFTWARE PRODUCTION. 2 DEVELOPMENT Product Creation Means: Methods & Heuristics Measure of Success: Quality f(Fitness of Use) MANAGEMENT Efficient &
Chapter 3: The Project Management Process Groups
Chapter 5: Project Scope Management
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Stoimen Stoimenov QA Engineer QA Engineer SitefinityLeads,SitefinityTeam6 Telerik QA Academy Telerik QA Academy.
Chapter 9. Intro  What is Project Management?  Project Manager  Project Failures & Successes Managing Projects  PMBOK  SDLC Core Process 1 – Project.
© 2006 ITT Educational Services Inc. System Analysis for Software Engineers: Unit 5 Slide 1 Chapter 3 Managing the Information Systems Project.
S/W Project Management
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Project Management : Techniques and Tools (60-499) Fall 2014 / Winter 2015.
PPMT CE-408T Engr. Faisal ur Rehman CED N-W.F.P UET P.
Appendix A Project Management: Process, Techniques, and Tools.
Teaching material for a course in Software Project Management & Software Engineering – part II.
CEN rd Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi Phases of Software.
Centro de Estudos e Sistemas Avançados do Recife PMBOK - Chapter 4 Project Integration Management.
Introduction- Project Management By Ctrl+C & Ctrl+V 1.
Welcome to Session 4 – Project Management Process Overview (continued) Instructor:Phyllis Sweeney Instructor: Phyllis Sweeney Project Management Certificate.
1.  Describe an overall framework for project integration management ◦ RelatIion to the other project management knowledge areas and the project life.
Software Project Management (SPM)
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Project.
Lecture 6. Review of Lecture 5 Company strategic planning: mission and objective statements and competitive strategy. Planning Methods: Top-down, Bottom-up.
ISM 5316 Week 3 Learning Objectives You should be able to: u Define and list issues and steps in Project Integration u List and describe the components.
BSBPMG505A Manage Project Quality Manage Project Quality Project Quality Processes Diploma of Project Management Qualification Code BSB51507 Unit.
Chapter 11. Intro  What is Project Management?  Project Manager  Project Failures & Successes Managing Projects  PMBOK  SDLC Core Process 1 – Project.
Teaching material for a course in Software Project Management & Software Engineering – part III.
Apply Project Scope Management Techniques Project Scope Processes – Part 2 Certificate IV in Project Management Qualification Code BSB41507 Unit.
Lecture 3 Title: Information Technology Project Methodology By: Mr Hashem Alaidaros MIS 434.
Develop Project Charter
Project Management All projects need to be “managed” –Cost (people-effort, tools, education, etc.) –schedule –deliverables and “associated” characteristics.
Apply Quality Management Techniques Project Quality Processes Certificate IV in Project Management Qualification Code BSB41507 Unit Code BSBPMG404A.
Effort Estimation ( 估计 ) And Scheduling ( 时序安排 ) Presented by Basker George.
BSBPMG501A Manage Project Integrative Processes Manage Project Integrative Processes Project Integration Processes – Part 1 Diploma of Project Management.
Copyright 2003 Lynn Frock & Company. All Rights Reserved. 1 Five Ways to Build a Microsoft Project Schedule Lynn Frock, PMP Phone
Project Management. Introduction  Project management process goes alongside the system development process Process management process made up of three.
Project Time Management
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Project.
Project Management Processes for a Project Chapter 3 PMBOK® Fourth Edition.
SOFTWARE PROJECT MANAGEMENT
BSBPMG501A Manage Project Integrative Processes Manage Project Integrative Processes Project Integration Processes – Part 2 Diploma of Project Management.
The Project Management Process Groups
Develop Schedule is the Process of analyzing activity sequences, durations, resource requirements, and schedule constraints to create the project schedule.
BSBPMG503A Manage Project Time Manage Project Time Project Time Processes Part 2 Diploma of Project Management Qualification Code BSB51507 Unit Code.
Information Technology Project Management, Seventh Edition.
Software project management 3rd Umer khalid Lecturer University of Lahore Sargodha campus.
1 Advanced Computer Programming Project Management: Basics Copyright © Texas Education Agency, 2013.
Prof. Shrikant M. Harle.  The Project Life Cycle refers to a logical sequence of activities to accomplish the project’s goals or objectives.  Regardless.
Project Management PTM721S
Process and customizations
Chapter 11 Project Management.
Project life span.
Project Management Processes
Project Integration Management
Teaching slides Chapter 3.
Project Theory and Application
Project Management Processes
Project Management Chapter 11.
Teaching slides Chapter 13
Managing Project Work, Scope, Schedules, and Cost
Presentation transcript:

Teaching material for a course in Software Project Management & Software Engineering – Part I

Part 1: Project Management Chapter 1 (Introduction) Any set of activities can be considered to be a Project if they have a definite start time and end time and these set of activities achieve some pre defined goals. A project needs resources for a definite period of time. These resources are released after project gets completed.

Part 1: Project Management Fundamentals Chapter 1 (Project Management Introduction) Project consumes resources, time and budget

Part 1: Project Management Chapter 1 (Introduction) A project can be initiated to build a road, a building, a software product etc. Managing a project will need different kinds of metrics, tools, skills etc. A project can be broken down into project phases. These project phases include project initiation, project planning, project monitoring & control and project closure. For each kind of project, there could be sub processes within each of the project phases. These sub processes are not related to project processes but belong to industry specific processes. For example, software development lifecycle processes (requirement gathering, software design etc.) fall within various project processes but are not part of project processes. Software project management is the management of any software project. Specialized skills are needed to manage these projects for example software engineering, software testing, software design etc.

Part 1: Project Management Fundamentals Chapter 1 (Project Management Introduction) Project phases

Part 1: Project Management Fundamentals Chapter 1 (Introduction) A software project will have processes like software life cycle processes (requirement gathering, software design, software construction, software testing etc.), software project processes, software configuration management

Part 1: Project Management Fundamentals Chapter 1 (Project Management Introduction) Software tasks in software projects

Part 1: Project Management Fundamentals Chapter 1 (Project Management Introduction) project phases with software lifecycle tasks

Part 1: Project Management Chapter 2 (Project Initiation) Software projects are initiated in the same manner as any other type of projects. Project charter is made by the top management of the organization for starting a software project. Project charter basically defines the purpose for starting the project. A detailed project scope is developed to define boundaries of the project. The scope will include what functionalities are needed in the software product to be developed. It will also define level of quality needed in the software product.

Part 1: Project Management Chapter 2 (Project Initiation) An initial budget is estimated for the project. As per the estimate a budget is sanctioned for the project. The budget includes costs to cover for salaries of people who will work on the software project, purchase of hardware, services, travel costs, management costs etc.

Part 1: Project Management Chapter 2 (Project Initiation) Project costs are directly related to size of the project. How much effort is needed to build the software product is the most crucial aspect for the project costs. The effort estimate will determine labor cost for the project.

Part 1: Project Management Chapter 2 (Project Initiation) An initial project schedule is prepared for the project. The entire project work is broken down into smaller tasks. Which tasks will start and end at what times determines the project schedule. Accurate estimation of duration of each task, dependencies of tasks on each other are the factors which help in making the project schedule accurately. After refinement, the initial project schedule later becomes the baseline schedule. For better project effort & cost estimate, a technique known as project division can be used (popular in Australia & New Zealand). Here after preparing project charter and scope, an expert is hired who will make effort and cost estimate. Now bids are invited from software development companies for project planning & execution based on the effort & cost figured given by the expert.

Part 1: Project Management Fundamentals Chapter 2 (Project Initiation) Initial project cost & effort estimate

Part 1: Project Management Fundamentals Chapter 2 (Project Initiation) Tentative project plan and schedule

Part 1: Project Management Fundamentals Chapter 2 (Project Initiation) project division for better project size estimate

Part 1: Project Management Fundamentals Chapter 3 (Effort & Cost Estimation) Software projects are inherently effort driven because most of work involves human effort to build the software product. Estimating the effort required to build the software product is difficult as the result of effort is intangible and difficult to make effort estimation in building software artifacts.

Part 1: Project Management Fundamentals Chapter 3 (Effort & Cost Estimation) There are many techniques like function point analysis, wide band delphi, COCOMO etc. for making effort estimation on software projects. Depending on requirement, a suitable effort estimation technique is chosen for any software project. Since effort estimation techniques are not foolproof, effort estimates need to be revised as the project progresses.

Part 1: Project Management Fundamentals Chapter 3 (Project Effort Estimation) Function point count for effort estimate (function point analysis technique)

Part 1: Project Management Fundamentals Chapter 3 (Project Effort Estimation) Function count type for effort estimate (function point analysis technique)

Part 1: Project Management Fundamentals Chapter 3 (Project Effort Estimation) Effort sizing for effort estimate (function point analysis technique)

Part 1: Project Management Fundamentals Chapter 3 (Project Effort Estimation) Effort estimate for iterative projects

Part 1: Project Management Fundamentals Chapter 3 (Effort & Cost Estimation) Once effort estimates are made for the project, cost estimates are calculated based on the effort estimate and cost parameters like hourly salary of individual employees. Cost estimates are done using techniques like activity based costing or cost factor analysis.

Part 1: Project Management Fundamentals Chapter 3 (Effort & Cost Estimation) Software projects use different kinds of software development life cycle models like waterfall model, iterative model etc. Effort estimation for each type of software development lifecycle model requires understanding the difference in the way the software product is built. In iterative models, software products are built in small incremental cycles. On the contrary in the waterfall model, software products are built in one go and thus all product features are fully built in the same one cycle. This fundamental difference necessitates a different approach to effort estimation for each type of software development lifecycle model projects.

Part 1: Project Management Fundamentals Chapter 3 (Effort & Cost Estimation) Software products are made manually by software engineers. How many of these people are needed on the project and for how long, is determined by the effort estimate and project duration. Resource estimation also needs to take into consideration the skill set required on the project. Off course speed with which a software engineer can build a software product varies and thus this factor can affect resource estimation on the project.

Part 1: Project Management Fundamentals Chapter 3 (Project Effort Estimation) Comparison of effort estimate techniques

Part 1: Project Management Fundamentals Chapter 3 (Project Effort Estimation) Effort and cost for various project tasks

Part 1: Project Management Fundamentals Chapter 4 (Risk Management) Any project needs to start and end at the pre defined dates. There could be risks like resource unavailability, service breakdown problems, technology obsolescence, wrong selection of project tools etc. These risks can occur and can hamper project progress. Finding chances of occurrences of risks and finding ways to tackle them is important. So risk management is very important for any project.

Part 1: Project Management Fundamentals Chapter 4 (Risk Management) Risk can hamper a project either affecting product quality or rate of production. Product quality can go down if software engineers lack adequate skills or not enough time could be allotted for testing. Rate of production may go down if adequate resources are not allocated on the project.

Part 1: Project Management Fundamentals Chapter 4 (Risk Management) Major risk types on projects

Part 1: Project Management Fundamentals Chapter 4 (Risk Management) Major causes of risks on projects

Part 1: Project Management Fundamentals Chapter 4 (Risk Management) Mitigating risks through schedule buffer on projects

Part 1: Project Management Fundamentals Chapter 4 (Risk Management) Mitigating resource risks through knowledge management system

Part 1: Project Management Fundamentals Chapter 4 (Risk Management) Mitigating quality risks through quality gates on projects

Part 1: Project Management Fundamentals Chapter 4 (Risk Management) Risk management through risk prioritization

Part 1: Project Management Fundamentals Chapter 4 (Risk Management) Each kind of risk which can occur on a project should be identified and then evaluated for the kind of impact it can have on the project. Probability for the risk to occur should also be identified. Together with impact and probability, the risk factor can be devised for each risk on the project.

Part 1: Project Management Fundamentals Chapter 4 (Risk Management) The biggest benefit of iterative software development lifecycle model is that it minimizes risks. In the waterfall model, the software product is available for end user review only after the complete software product is built. If there were misunderstandings in getting end user requirements right then the software product built will not be suitable to the end users. In iterative models, this risk is minimized by building small set of features and getting them reviewed by end users. If any features are not correct then making the required changes at this stage is not costly.

Part 1: Project Management Fundamentals Chapter 4 (Risk Management) Risks of waterfall model

Part 1: Project Management Fundamentals Chapter 5 (Configuration Management) Software product features need to be changed if end users make a request. This is not unusual and is a common practice on software projects. There could be many change requests during the entire project duration. Thus many different versions of the software product results. Managing change requests and different versions of the software product is done in configuration management.

Part 1: Project Management Fundamentals Chapter 5 (Configuration Management) Characteristics required for a good configuration management system

Part 1: Project Management Fundamentals Chapter 5 (Configuration Management) Document attributes needed to keep documents unique

Part 1: Project Management Fundamentals Chapter 5 (Configuration Management) Document version control in configuration management system

Part 1: Project Management Fundamentals Chapter 5 (Configuration Management) Characteristics of a good configuration management system

Part 1: Project Management Fundamentals Chapter 5 (Configuration Management) Characteristics go a good configuration management system

Part 1: Project Management Fundamentals Chapter 6 (Project Planning) In project planning phase, elaborate planning for all project components are made. You create baseline structure here which is used to execute, monitor and control the project. Project planning consists of project scheduling, project budgeting, manpower planning, communication planning, quality planning etc. Project scheduling can be done in 2 ways. Top down planning and bottom up planning. But first of all you need to break the entire project work into manageable small tasks. In top down planning you first assign time duration for the entire project. Later you assign time duration for smaller tasks within the time periods of their respective container bigger tasks. In bottom up planning, time duration is assigned to small tasks first. Later, the time duration of all smaller tasks are added up to come up with time duration of their container larger task.

Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Software Project planning components

Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Software Project planning inputs for top down planning technique

Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Software Project planning ouputs for top down planning technique

Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Software Project planning inputs for bottom up planning technique

Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Software Project planning outputs for bottom up planning technique

Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Work breakdown structure (WBS) is the systematic way of breaking down the complete project work into smaller tasks. WBS also maintains relationship among tasks so that it is possible to know which tasks precede another tasks, which tasks can not start before completion of some other task etc. Once WBS structure for tasks is ready then you can allocate resources for each task. Resource allocation should be based on closely matching required skills with those available. How many resources should be allocated on a task will depend on the amount of effort required and for how long the task will run. For example, if a task requires 50 hours of work and should be completed in 2 days (16 hours) then you should assign 3 resources on this task. Still you will need to over burden any resource for 2 hours of overtime work.

Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Software Project work breakdown structure

Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Resource requirements at various software tasks

Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Supplier management plan

Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Goldratt’s critical chain method (unnecessary buffer to be removed)

Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Goldratt’s critical chain method (unnecessary buffer removed)

Part 1: Project Management Fundamentals Chapter 6 (Project Planning) If you have hardware or software suppliers (outsourcing partners etc.) on the project then you need to make a supplier planning for the project. Which tasks the supplier will perform on the project and how these tasks are dependent on other tasks should be clearly defined and communicated to the supplier. Also quality planning should be clearly outlined with the supplier so that quality does not differ on software products made by the supplier to the ones made inhouse.

Part 1: Project Management Fundamentals Chapter 6 (Project Planning) When you plan for configuration management, you decide how you are going to create and maintain a repository for all your project documents as well as how you will branch out various versions of your software product. Communication on a project is both formal and informal. Most of informal communication is lost as it is often not saved. The other problem on projects is that even formal communication is lost or leads to wrong communication as wrong communication tools and techniques are deployed. Communication planning for the project must include which channels of communications are used, which communication tools are used, how communication with customers and suppliers will be done and how to ensure that miscommunication does not occur.

Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Quality assurance is one of the most important aspects of any project. How software product with required level of quality should be produced on the project is one of the topmost considerations on software projects. Quality assurance plan is thus made to ensure the required level of quality of the software product produced. Project schedule planning is again one of the most important aspects of any project. Using techniques like WBS, CPM (critical path method), Goldratt’s critical chain method or any suitable technique, a complete project schedule structure should be made for the project. Project budgeting is again one of the most important project planning tasks. If project costs exceed project budget then it can jeopardize the project. Proper budget planning is thus very important.

Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Project planning in partial iteration model

Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Project planning in full iteration models

Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Project planning in iterative software lifecycle model is different from project planning in waterfall model environment. For iterative projects, the entire project plan spans several iterations. Depending on the lifecycle model, these iterations can be full or partial.

Part 1: Project Management Fundamentals Chapter 7 (Project Monitoring & Control) Project plan is the baseline against which progress of any project is measured. There are milestones set in the project plan which help in determining if the target dates for completion of any project milestone is achieved as the project execution progresses. Work progress of any project task can be measured by comparing the baseline start and end dates with the actual start and end dates achieved as the work on the task gets completed.

Part 1: Project Management Fundamentals Chapter 7 (Project Monitoring & Control) Similar to project schedule, project budget can also be tracked as the work on project progresses. For doing this you need to keep baseline budget and actual expense dollar figures for the project or for the task for which you want to measure the budget progress. Earned Value Management (EVM) is the best tool to measure both schedule and budget progress for any project as well as for project tasks. EVM requires that you maintain accurate baseline and actual start and end dates. You also need to maintain baseline budget and actual expense figures accurately. Only then you will be able to get accurate schedule and budget variance.

Part 1: Project Management Fundamentals Chapter 7 (Project Monitoring & Execution) Project progress with planned and actually achieved schedule

Part 1: Project Management Fundamentals Chapter 7 (Project Monitoring & Execution) Project schedule deviation

Part 1: Project Management Fundamentals Chapter 7 (Project Monitoring & Execution) Project cost deviation

Part 1: Project Management Fundamentals Chapter 7 (Project Monitoring & Execution) Earned value management

Part 1: Project Management Fundamentals Chapter 7 (Project Monitoring & Execution) Task slippage due to delay in linked task completion

Part 1: Project Management Fundamentals Chapter 7 (Project Monitoring & Execution) Slack and buffer management in iterative projects

Part 1: Project Management Fundamentals Chapter 7 (Project Monitoring & Execution) Project plan after unnecessary slack removal in iterative projects

Part 1: Project Management Fundamentals Chapter 7 (Project Monitoring & Control) Performance indicators are used to measure performance of project execution in comparison to its baseline project plan. Performance indicators are also known as project metrics. Sometimes, during project execution, if any task completes before planned finish date then the project can be re-planned and unnecessary slack can be removed by moving start dates of dependent tasks and thus removing slack between tasks. Project metrics related to product quality include defect density, robustness, platform operability etc. Effort in testing the product is also important because software testing is a manual process and dollars spent on testing the product is also a component of project budget. Project metrics related to project schedule is schedule variance and for project budget, it is budget variance.

Part 1: Project Management Fundamentals Chapter 7 (Project Monitoring & Control) For measuring effective loading of resources on the project, you need to use resource loading metrics and measure resource loading by comparing number of hours of baseline work assigned to a resource and the actual number of hours of work put in by the resource on the project. In case of program management, you can also measure number of hours of work assigned to a resource on projects and the idle hours of the resource when he/she could not be assigned any project work in a specific period of time. This is known as resource utilization. This metric helps in determining if resources are overloaded (when they clock overtime work on projects) or under loaded (when they have idle time and sit on bench for sometime between projects when they are not assigned any project work for any reason). To correct any deviation (delay) in project work, you can either use any slack available in the project schedule or use resource leveling to prevent the deviation. Schedule optimization is a technique which can be used to reduce unnecessary slack in the project schedule and complete the project in less time duration. This means the entire project schedule should be updated including the baseline dates for milestones, start and end date of tasks.

Part 1: Project Management Fundamentals Chapter 8 (Project Closure) Before winding up everything on the project when it gets completed, you should make sure that the lessons learnt on the project does not get lost. If you can save all measured project metrics then you can use them for your next projects. In fact, this is a standard practice on projects these days. Data related to measured project metrics are extremely useful when planning for next projects (which are similar) gets started. Effort estimation, quality planning, scheduling, budgeting, resource allocation etc. can be planned more realistically using available data from previous projects. Outsourcing companies use project metrics of previous projects to bag new project contracts from customers. The most important usage of measured project metrics is to improve upon project processes themselves. Organizations like Project management Institute (PMI) analyze data from past projects and improve standard project processes over time. Before you close any project you need to release resources from the project.

Part 1: Project Management Fundamentals Chapter 8 (Project Closure) Project deliverables before closure of project

Part 1: Project Management Fundamentals Chapter 8 (Project Closure) Source code version management on project

Part 1: Project Management Fundamentals Chapter 8 (Project Closure) Project measured metrics data filtration for archiving

Part 1: Project Management Fundamentals Chapter 8 (Project Closure) Lessons learnt on the project through archived project data