Lecture Notes, CHAPTER 7

advertisement
CMPS 157, Systems Analysis
Chapter 71
Dr. Dennis Vickers
Section 1: May 5.
Section 2: May 6.
Chapter 7: Project Scheduling and Tracking
Overview: Most instances of software delivered late are examples of:
1. An unrealistic deadline established by someone outside the development
group.
2. Changing requirements mid-stream.
3. Overoptimistic estimate of resources needed,
4. Risks encountered during the course of the project,
5. Technical difficulties,
6. Miscommunications,
7. Project begins slipping and there is no corrective action.
Software Project Scheduling Basic Principles:
1. Compartmentalization: The product requirements are refined and the project
processes are decomposed into more manageable units.
2. Interdependency: Identify how tasks are interdependent and schedule
accordingly.
3. Time allocation: Assign work units to each task (low, high) and schedule (start
finish),
4. Effort validation: Verify that the project schedule fits the workers schedules
(e.g. no one has 26 hours of work to do in a day).
5. Defined responsibilities: Every task is someone’s responsibility,
6. Defined outcomes: Every task has a defined outcome such that one can tell
easily when the task is complete.
7. Defined milestones: The project is divided into milestone, which are
themselves defined in terms of verifiable task completions.
The Relationship between People and Effort: When people work together the net
productivity of the team is not simply the cumulative productivity of each individual.
The text suggests that individual productivity will drop by a factor related to the
number of communication paths (e.g. four team members = six paths). Clearly team
productivity is not simply individual productivity added up, and clearly
communication is a factor, but there are other considerations too—internal mentoring
improving productivity, application of specializations and past experiences. The text
also concludes that a smaller team working a longer time will accomplish more than a
larger team working a shorter time, based on the equation:
E = L3 / P3t4
1
Software Engineering, A Practitioner’s Approach, Roger S. Pressman, fifth edition
Where L = the lines of code delivered (unit = LOC), E = development effort (unit =
person months), t = elapsed time for the work (unit = calendar months) and P is a
productivity factor.
Effort Distribution: The traditional percentages of project resources assigned to
major phases are:
 40% Requirements and Design
 20% Code development
 40% Testing
This called the 40-20-40 rule. The larger the project, the more you shift resources to
requirements and design.
Defining a task set of a software development project:
A task set is a collection of software engineering work tasks, milestones, and
deliverables that must be accomplished to complete a particular project. The task set
for a project can be defined more or less rigorously. The utmost rigor is when every
task is explicitly defined, assigned, tracked, and closed. The utleast rigor is when the
broad steps are in the project plan but otherwise the developers make up the details as
they go along. The various levels may be defined as:
 Casual,
 Structured,
 Strict,
 Quick Reaction.
How do you know which is best?
Adaptation Criteria
Size of project
Number of users
Business criticality
Longevity
Stability of requirements
Ease of communication
Maturity of technology
Performance constraints
Embedded/non
Project staffing
Interoperability
Reengineering
Grade
Weight
1.2
1.1
1.1
0.9
1.2
0.9
1.2
0.9
0.9
1.0
1.1
1.2
Conc
0
0
0
0
0
1
1
0
1
1
0
0
N Dev
1
1
1
1
1
1
1
1
1
1
1
0
Enhan
1
1
1
1
1
1
0
1
1
1
1
0
Maint
1
1
1
0
1
1
0
0
0
1
1
0
Reeng
1
1
1
0
1
1
1
1
1
1
1
1
Product
To answer that question explicitly, construct a Task Set Selector Table.2 Conc, N Dev,
Enhan, Maint, Reeng are types of projects, namely Concept development, New
application development, Application enhancement, Application maintenance,
Reengineering (defined further on page 173). To use the table, assign a grade for each
factor in the left column, ranging from 1 (overall methodological and documentation
requirements are minimal) to 5 (overall methodological and documentation
requirements are substantial), multiple across, and computer the average. The Task
Set Selector (TSS) is the average of the products. A TSS less than 1.2 indicates casual
project management will suffice. A TSS greater that 1.0 but less that 3.0 indicated a
2
See Adaptable Process Model, R.S. Pressman & Associates, 1999.
structured approach is best. A TSS at the high end of that range, or higher indicates
strict project management is needed.
Selecting Software Engineering Tasks:
At this point, an overall development methodology appropriate for the product, the
customer group, and the development team – linear sequential, iterative, prototyping,
incremental, or one of the others. The methodology will structure the task set, creating
a macroscopic schedule.
The macroscopic schedule is then broken down further by task refinement. The
technique presented in Chapter 3 is workable:
 Develop a set of framework activities that are performed for each macro
process.
 For each macro process design a series of tasks to accomplish each framework
activity.
In chapter 7 Pressman uses a process design language approach (another alternative).
Defining a task network:
A task network is a representation of the tasks in a plan with the interdependencies
and required sequences identified.
When all of the tasks in the project and all interdependencies and required sequences
are identified, the longest (in duration, not number) chain of tasks that are required to
be in sequence is the critical path. Any slippage in the task in the critical path affects
the completion date of the project. Tasks outside the critical path can slip without
affecting the project delivery date, if they can be caught up through supplemental
work.
The Gantt chart (named for Henry Gantt) is one way to depict the tasks and timelines
in a project schedule. Project tables are a supplemental way to depict the work
concerns regarding tasks (planned start date, actual start date, planned complete,
actual complete, assigned person, and so on).
Tracking the Schedule:
Keeping track of progress on the project schedule, and making appropriate
adjustments, is an important part of project management. Variations from the
schedule should be dealt with as soon as possible.
Time-boxing is a method for adjusting a project schedule to insure delivery of a
functional (though maybe not fully featured product) on schedule. It involves
identifying when work on a component must be complete if the project delivery date
is to hold. When that date arrives, those working on the component move on;
remaining work is delayed.
Earned Value Analysis is a method to describe what progress a project has made. It
is intended to overcome difficulties associated with the traditional ‘percent complete’
measures.
Using this method, the Schedule Performance Index (SPI) equals the
Budgeted Cost of Work Performed (BCWP) divided by the
Budgeted Cost of Work Scheduled (BCWS).
The Schedule Variance (SV) = BCWP – BCWS.
Percent scheduled for completion is BCWS/ Budget at Completion (BAC)
Percent complete = BCWP/BAC
The actual cost of work performed ACWP, the sum of the effort actually expended on
work tasks that are complete at a point on the project schedule.
The Cost Performance Index (CPI) is BCWP/ACWP.
And the Cost Variance is BCWP – ACWP.
Download