Software project management (intro) Scheduling Introduction In addition to the effort forecast for a project, a detailed plan for the project must include a schedule indicating the start and completion times, which will enable us: Ensure that appropriate resources will be available precisely when required Avoid different activities competing for the same resources at the same time Produce a detailed schedule showing which staff carry out each activity Produce detailed plan against which actual achievent may be measured Produce a timed cash flow forecast Re-plan the project during its life to correct drift from the target Objectives of activity planning Feasibility assessment Resource allocation Detailed costing Motivation Co-ordination When to plan? Throughout the project, monitoring and replanning must continue to correct any drift that might prevent meeting the time or cost targets Planning is an ongoing process of refinement, each iteration becoming more detailed and more accurate than the last Purpose of project planning: During the feasibility study and project start up Estimates timescales and the risks Beyond feasibility study: The production of activity plans to ensure resource availability and cash flow control Project schedules Creating project schedules comprises four main stages: Decide what activities need to be carried out and in what order they are to be done Construct an ideal activity plan That is, no constraint on resources Allocate resource Produce schedule Project and activities -- What are they? A project is composed of a number of inter-related activities A project may start when at least one of its activities is ready to start A project will be completed when all of the activities have been completed An activity must have a clearly defined start and endpoint Resource requirement of an activity must be forecastable Duration of an activity must be forecast-able Some activities might require that others are completed before they begin Identifying activities Three approaches: 1. The activity based approach 2. Product-based approach 3. Hybrid approach Activity based approach Creating a list of all involved activities in the project Work Breakdown Structure (WBS) The WBS can be conceived as a tree, with the project as the root node, major components of the project as the main branches, and tasks/subtasks branch off from these. A WBS may be a diagram or a text list. Activity based approach (2) WBS Example Project Analyze Data design Relational data analysis Design Process design Logical data analysis Project Physical design Activity based approach (3) Example of Textual WBS 33.01 MOBILIZATION AND PREPARATORY WORK 33.01.01 MOBILIZATION OF CONSTRUCTION EQUIP. AND FACILITIES 33.01.02 MOBILIZATION OF PERSONNEL 33.01.03 PRECONSTRUCTION SUBMITTALS/IMPLEMENTATION PLANS 33.01.03.01 Erosion Control Plan 33.01.03.04 Environmental Protection Plan (etc) 33.01.03.14 Construction Quality Control Plan 33.01.04 SETUP/CONSTRUCT TEMPORARY FACILITIES (etc) 33.01.05 CONSTRUCT TEMPORARY UTILITIES 33.02 MONITORING, SAMPLING, TESTING, AND ANALYSIS 33.02.03 AIR MONITORING AND SAMPLING (etc) 33.03 SITE WORK 33.03.04 ROADS/PARKING/CURBS/WALK 33.03.04.03 Aggregate Surfacing (Source: US Army Corps of Engineers) Product Based Approach Producing Product Breakdown Structure (PBS) identifies all the products Product Flow Diagram (PFD) shows how products interrelate Product Based Approach (2) PBS Example Requirement Specification Data catalogue Attribute/Data Item description Grouped domain description Requirement catalogue User Role/ Function Matrix I/O Structure Processing specification Function definition Enquiry Access Path Logical data model Entity life History Elementary Process Description Product Based Approach (2) The Product Flow Diagram shows which products must be complete before the next can be produced Most items in the diagram are things the customer needs, eg. design documentation, software, manuals indicated by boxes Some items are intermediate products, needed only to help produce other products, eg. first cut database design indicated by boxes Some items will exist already, eg. feasibility study report, terms of reference indicated by ellipses (ovals) Arrows indicate that one product is required in order to produce the next Product Based Approach (3) PFD Example Hybrid Approach Create a WBS that is based upon the project’s products, which is in turn based on a simple list of deliverables and a set of activities for each deliverable Project Installed System Software component User manual Analyze req. review req. Outline design Outline design Integrate system Code software Test system Test software Training course Sequencing and Scheduling Activities To sequence the task according to their logical relationship, and To schedule them taking into account resources and other factors Events versus activities Event = a point in time has no duration e.g the start or end of an activity Activity = a task or an action with a recognizable start and finish and a duration events Prepare breakfast Eat breakfast activities Start and finish times Latest finish Earliest start activity Latest start Earliest finish Activity ‘write report software’ Earliest start (ES) Earliest finish (EF) = ES + duration Latest finish (LF) = latest task can be completed without affecting project end Latest start = LF - duration Example earliest start = day 5 latest finish = day 30 duration = 10 days earliest finish = ? latest start = ? Float = LF - ES - duration What is it in this case? Float Float = Latest finish Earliest start Duration FLOAT LF ES activity Latest start Critical path Note the path through network with zero floats Critical path: any delay in an activity on this path will delay whole project Can there be more than one critical path? Can there be no critical path? Sub-critical paths