Project Tracking and Scheduling What are some reasons why software is
delivered late? How can you handle unrealistic
software deadlines? How do software projects fall behind
schedule? Brooks: “One day at a time.”
Common myth:
If/when fall behind schedule, throw more bodies onto the project in order to catch up.
problem with this:– learning curve, increased complexity (i.e.
more communication paths)
project manager’s objective
define all project tasks identify tasks lying on the critical path track progress of critical tasks
sw project scheduling distributes estimated effort across the
project duration by allocating effort to specific sw engineering tasks
schedule evolves over time– early stages of project planning - macroscopic
schedule is developed– - identifies major activities– as project progresses - macroscopic schedule
refined into a detailed schedule– specific tasks are identified and scheduled
Two perspectives of scheduling
1.end-date for software release already established
2.end-date set by swe team
Some basic principles of swe scheduling:
time allocation– allocate number of work units (e.g. person days
of effort) to each task– assign start and completion dates
effort validation– ensure that no more than the allocated
number of people are allocated at any given time
defined responsibilities– assign every task to a specific team member(s)
Some basic principles of swe scheduling: defined outcomes
– every task must have a defined outcome ( e.g. design of a module)
defined milestones– every task should be associated with a
project milestone– milestone - accomplished when work
products have been reviewed for quality and approved
Effort Distribution
general guideline - 40-20-40 rule 40% or more of all effort allocated to
analysis and design tasks 40% of effort allocated to testing 20% of effort allocated to programming
characteristics of each project dictate the distribution of effort
Defining a task set for the sw project process model populated with a set of tasks
(i.e., task set) that enable the sw team to define, develop, maintain the software
task set collection of swe work tasks, milestones, and
deliverables that must be accomplished to complete a particular project
task set varies depending on project type and degree of rigor
Project types: concept development projects
– initiated to explore some new business concept or application of new technology
new application development– undertaken due to specific customer request
application enhancement application maintenance reengineering
– rebuild existing legacy system
Degree of rigor with which a process model is applied: four different degrees of rigor
– casual– structured– strict– quick reaction
refer to sections 7.3.1, 7.3.2, 7.3.3, and 7.3.4 to determine degree of rigor
Selection SWE tasks
each project can be approached using a process model that is linear sequential, iterative, or evolutionary
Refinement of major tasks
macroscopic schedule refined to create a detailed project schedule
refinement begins by taking each major task and decomposing it into a set of subtasks, with related work products and milestones
Defining a task network
task network graphic representation of the task flow for a
project; depicts major swe tasks
take into consideration task interdependencies parallel tasks critical path tasks
Scheduling
2 project scheduling methods applicable to SWE PERT - program evaluation and review
technique CPM - critical path method
CPM & PERT both provide tools to
1. develop critical path
2. establish most likely time estimates
3. calculate boundary times that define a time window for each task
boundaries include: earliest time for task to begin latest time for task to begin earliest completion time for task latest completion time for task
tasks - called work breakdown structure (WBS)
timeline charts:
to create a project schedule, begin with set of tasks (WBS)
effort, duration and start date are determined for each task
assign tasks to individuals develop a Gantt (timeline) chart see fig. 7.4
project tables:
tabular listing of all project tasks, their planned and actual start and end dates
use in conjunction with timeline chart to track project progress
see fig. 7.5
Tracking the schedule
different ways to track a project: each team member periodically reports progress evaluate results of reviews determine whether formal project milestones
have been accomplished by scheduled date compare actual start date to planned start date get team members’ assessment of progress to
date
Software Project Plan produced at the end of the planning tasks provides baseline cost and scheduling information relatively brief document communicate scope and resources to sw
management, technical staff, and customer define risks define cost and schedule for management review provide overall approach to development outline how quality will be ensured and how change
management will be managed
Project Description and Team Composition:
1.Each team must identify a potential project and write-up a project description which contains the following:
(a) a description of the need for a new system
What is the business problem that the software will address?
(b) a description of the proposed project and its scope
What are the basic functions that the software will encompass?
Project Description and Team Composition: (c) a description of the setting and users What type of business will use the
software? Who will use the software? (d) platform What type of hardware will the system “run
on”? What programming language will be used
to build the software?
Project Description and Team Composition: 2. Identify team membership I suggest you begin brainstorming about
your topic and team composition over FC ASAP.
Due Date: Friday 2/26 enter into Class News conference on FirstClass
Late Penalty: 5 points per day
A. Project Scope and Objectives
1.Statement of Scope - establish and bound project scope
2.Major Functions
3.Performance issues
4.Management and technical constraints
5.Interface considerations
6.Reliability considerations
B. Project Estimates (estimates of effort, cost and project duration)
1.make 2 estimates of cost and effort using any combination of:
LOC, FP, COCOMO, Process based estimation, other
document any assumptions you make
2. reconcile estimates
B. Project Estimates (estimates of effort, cost and project duration)
3. estimate resources (hw/sw tools, reusable components, people)
for each resource, include:
a. description of resource
b. statement of availability
c. chronological time resource will be required
d. duration of time resource will be applied
C. Process Model Selection and Staff Organization 1. Identify a Process Model to be
followed throughout development. 2. Select the team structure
D. Metrics
1. Determine several metrics to measure:
quality of resulting software effectiveness of process used to
develop software 2. Describe how their measurement
will be integrated into the development process
E. Project Schedule
1. Identify project work breakdown structure for projects 2 & 3
2. Develop a Macroscopic Task Network for projects 2 & 3
3. Develop a Gantt Chart for projects 2 & 3
4. Develop a Resource Table for projects 2 & 3
G. Tracking and Control
1. Set up a tracking system (develop spreadsheet model or use some other software)
2. Identify process for managing change requests during project 3 and remainder of development effort