Project Scheduling and Tracking Instructor: Dr. Jerry Gao Project Scheduling and Tracking - Basic Concepts - Relationship between People and Effort - Defining A Task Set for the Software Project - Degree of Rigor - Defining Adaptation Criteria - Computing A Task Set Selector Value - Selecting Software Engineering Tasks - Refinement of Major Tasks - Defining A Task Network - Scheduling - Timeline Charts - Tracking the Schedule - The Project Plan Jerry Gao, Ph.D. Jan. 1999 Project Scheduling (Basic Principles) Software project scheduling is an activity that distributes estimated effort across the planed project duration by allocating the effort to specific software engineering tasks. First, a macroscopic schedule is developed. ---> a detailed schedule is redefined for each entry in the macroscopic schedule. A schedule evolves over time. Basic principles guide software project scheduling: - Compartmentalization - Interdependency - Time allocation - Effort allocation - Effort validation - Defined responsibilities - Defined outcomes - Defined milestones Defining A Task Set For The Software Project There is no single set of tasks that is appropriate for all projects. An effective software process should define a collection of task sets, each designed to meet the needs of different types of projects. A task set is a collection of software engineering work -> tasks, milestones, and deliverables. Tasks sets are designed to accommodate different types of projects and different degrees of rigor. Typical project types: - Concept Development Projects - New Application Development Projects - Application Enhancement Projects - Application Maintenance Projects - Reengineering Projects Obtaining Information Degree of Rigor: - Casual - Structured - Strict - Quick Reaction Defining Adaptation Criteria: -- This is used to determine the recommended degree of rigor. Eleven criteria are defined for software projects: - Size of the project - Number of potential users - Mission criticality - Application longevity - Ease of customer/developer communication - Maturity of applicable technology - Performance constraints - Embedded/non-embedded characteristics - Project staffing - Reengineering factors Defining A Task Network Individual tasks and subtasks have interdependencies based on their sequence. A task network is a graphic representation of the task flow for a project. Figure 7.3 shows a schematic network for a concept development project. Critical path: -- the tasks on a critical path must be completed on schedule to make the whole project on schedule. T7 T1 T8 T2 T5 T3 T4 T6 Scheduling Scheduling of a software project does not differ greatly from scheduling of any multitask engineering effort. Two project scheduling methods: - Program Evaluation and Review Technique (PERT) - Critical Path Method (CPM) Both methods are driven by information developed in earlier project planning activities: - Estimates of effort - A decomposition of product function - The selection of the appropriate process model - The selection of project type and task set Both methods allow a planer to do: - determine the critical path - time estimation - calculate boundary times for each task Boundary times: - the earliest time and latest time to begin a task - the earliest time and latest time to complete a task - the total float. Timeline Charts (Gantt charts) Work tasks Task 1 Sub-task 1.1 Sub-task 1.2 Sub-task 1.3 Task 2 Sub-task 2.1 Sub-task 2.2 Task 3 Sub-task 3.1 Sub-task 3.2 Task 4 Sub-task 4.1 Sub-task 4.2 Sub-task 4.3 Task 5 Sub-task 5.1 Sub-task 5.2 Week 1 Week 2 Tracking the Schedule The project schedule provides a road map for a software project manager. It defines the tasks and milestones. Several ways to track a project schedule: - conducting periodic project status meeting - evaluating the review results in the software process - determine if formal project milestones have been accomplished (Figure 7.4) - compare actual start date to planned start date for each task - informal meeting with practitioners Project manager takes the control of the schedule in the aspects of: - project staffing - project problems - project resources - reviews - project budget The Project Plan The software project plan is a relatively brief document that is addressed to a diverse audience. It must consists the following: - communication scope, resources, staffing, and customer - define risks and risk management techniques - define cost and schedule for management review - provide an overall approach to software development - outline how quality will be ensured and change will be managed. The plan concentrates on a general statement of what and a specific statement of how much and how long. The purpose of a project plan is: -> help establish the viability of the software development effort. The project plan need not be a lengthy and complex document.