Download presentation
Presentation is loading. Please wait.
Published byJosephine Chase Modified over 9 years ago
1
Teaching material for a course in Software Project Management & Software Engineering – Part I
2
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.
3
Part 1: Project Management Fundamentals Chapter 1 (Project Management Introduction) Project consumes resources, time and budget
4
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.
5
Part 1: Project Management Fundamentals Chapter 1 (Project Management Introduction) Project phases
6
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
7
Part 1: Project Management Fundamentals Chapter 1 (Project Management Introduction) Software tasks in software projects
8
Part 1: Project Management Fundamentals Chapter 1 (Project Management Introduction) project phases with software lifecycle tasks
9
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.
10
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.
11
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.
12
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.
13
Part 1: Project Management Fundamentals Chapter 2 (Project Initiation) Initial project cost & effort estimate
14
Part 1: Project Management Fundamentals Chapter 2 (Project Initiation) Tentative project plan and schedule
15
Part 1: Project Management Fundamentals Chapter 2 (Project Initiation) project division for better project size estimate
16
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.
17
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.
18
Part 1: Project Management Fundamentals Chapter 3 (Project Effort Estimation) Function point count for effort estimate (function point analysis technique)
19
Part 1: Project Management Fundamentals Chapter 3 (Project Effort Estimation) Function count type for effort estimate (function point analysis technique)
20
Part 1: Project Management Fundamentals Chapter 3 (Project Effort Estimation) Effort sizing for effort estimate (function point analysis technique)
21
Part 1: Project Management Fundamentals Chapter 3 (Project Effort Estimation) Effort estimate for iterative projects
22
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.
23
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.
24
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.
25
Part 1: Project Management Fundamentals Chapter 3 (Project Effort Estimation) Comparison of effort estimate techniques
26
Part 1: Project Management Fundamentals Chapter 3 (Project Effort Estimation) Effort and cost for various project tasks
27
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.
28
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.
29
Part 1: Project Management Fundamentals Chapter 4 (Risk Management) Major risk types on projects
30
Part 1: Project Management Fundamentals Chapter 4 (Risk Management) Major causes of risks on projects
31
Part 1: Project Management Fundamentals Chapter 4 (Risk Management) Mitigating risks through schedule buffer on projects
32
Part 1: Project Management Fundamentals Chapter 4 (Risk Management) Mitigating resource risks through knowledge management system
33
Part 1: Project Management Fundamentals Chapter 4 (Risk Management) Mitigating quality risks through quality gates on projects
34
Part 1: Project Management Fundamentals Chapter 4 (Risk Management) Risk management through risk prioritization
35
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.
36
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.
37
Part 1: Project Management Fundamentals Chapter 4 (Risk Management) Risks of waterfall model
38
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.
39
Part 1: Project Management Fundamentals Chapter 5 (Configuration Management) Characteristics required for a good configuration management system
40
Part 1: Project Management Fundamentals Chapter 5 (Configuration Management) Document attributes needed to keep documents unique
41
Part 1: Project Management Fundamentals Chapter 5 (Configuration Management) Document version control in configuration management system
42
Part 1: Project Management Fundamentals Chapter 5 (Configuration Management) Characteristics of a good configuration management system
43
Part 1: Project Management Fundamentals Chapter 5 (Configuration Management) Characteristics go a good configuration management system
44
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.
45
Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Software Project planning components
46
Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Software Project planning inputs for top down planning technique
47
Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Software Project planning ouputs for top down planning technique
48
Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Software Project planning inputs for bottom up planning technique
49
Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Software Project planning outputs for bottom up planning technique
50
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.
51
Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Software Project work breakdown structure
52
Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Resource requirements at various software tasks
53
Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Supplier management plan
54
Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Goldratt’s critical chain method (unnecessary buffer to be removed)
55
Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Goldratt’s critical chain method (unnecessary buffer removed)
56
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.
57
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.
58
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.
59
Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Project planning in partial iteration model
60
Part 1: Project Management Fundamentals Chapter 6 (Project Planning) Project planning in full iteration models
61
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.
62
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.
63
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.
64
Part 1: Project Management Fundamentals Chapter 7 (Project Monitoring & Execution) Project progress with planned and actually achieved schedule
65
Part 1: Project Management Fundamentals Chapter 7 (Project Monitoring & Execution) Project schedule deviation
66
Part 1: Project Management Fundamentals Chapter 7 (Project Monitoring & Execution) Project cost deviation
67
Part 1: Project Management Fundamentals Chapter 7 (Project Monitoring & Execution) Earned value management
68
Part 1: Project Management Fundamentals Chapter 7 (Project Monitoring & Execution) Task slippage due to delay in linked task completion
69
Part 1: Project Management Fundamentals Chapter 7 (Project Monitoring & Execution) Slack and buffer management in iterative projects
70
Part 1: Project Management Fundamentals Chapter 7 (Project Monitoring & Execution) Project plan after unnecessary slack removal in iterative projects
71
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.
72
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.
73
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.
74
Part 1: Project Management Fundamentals Chapter 8 (Project Closure) Project deliverables before closure of project
75
Part 1: Project Management Fundamentals Chapter 8 (Project Closure) Source code version management on project
76
Part 1: Project Management Fundamentals Chapter 8 (Project Closure) Project measured metrics data filtration for archiving
77
Part 1: Project Management Fundamentals Chapter 8 (Project Closure) Lessons learnt on the project through archived project data
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.