ZeePedia buy college essays online


Software Project Management

<<< Previous Schedule: Scheduling Fundamentals Next >>>
 
img
Software Project Management (CS615)
LECTURE # 37
8. Scheduling
8.1
Understanding Schedule
i.
Salient Features:
Fred Brooks, the well-known author of The Mythical-Man-Month [BRO95],
was once asked how software projects fall behind schedule. His response was
as simple as it was profound: "One day at a time."
The reality of a technical project (whether it involves building a hydroelectric
plant or developing an operating system) is that hundreds of small tasks must
occur to accomplish a larger goal.
Some of these tasks lie outside the mainstream and may be completed without
worry about impact on project completion date, Other tasks lie on the
"critical" path, these "critical" tasks fall behind schedule, the completion date
of the entire project is 'put into jeopardy,
The project manager's objective is to define all project tasks build a network
that depicts their interdependencies, identify the tasks that are critical within
the network, and then track their progress to ensure that delay is recognized
"one day at a time." To accomplish this, the manager must have a schedule
that has been defined at a degree of resolution that enables the manager to
monitor Progress and control the project.
Software project scheduling is an activity that distributes estimated effort
across the planned project duration by allocating the effort to specific software
engineering tasks.
It is important to note, however, that the schedule evolves over time. During
early stages of project planning, a macroscopic schedule is developed. This
type of schedule identifies all major software engineering activities and the
product functions to which they are applied.
As the project gets under way, each entry on the macroscopic schedule is
refined into a detailed schedule. Here specific software tasks (required to
accomplish an activity) are identified and scheduled.
Scheduling for software engineering projects can be viewed from two rather
different perspectives. In the first, an end-date for release of a computer-based
system has already (and irrevocably) been established.
284
img
Software Project Management (CS615)
The software organization is constrained to distribute effort within the
prescribed time frame. The second view of software scheduling assumes that
rough chronological bounds have been discussed but the end-date is set by the
software engineering organization. Effort is distributed to make best use of
resources and an end-date is defined after careful analysis of the ware.
Unfortunately, the first situation is encountered far more frequently than the
second.
As a project manager, you need to assign durations to all activities and
monitor their progress.
You also need to plan the order in which the activities will be performed as
well as the start and end dates for each activity. In short, you need to create a
project schedule.
The plan includes not only the scheduling of development activities, but also
the scheduling of project resources, particularly people. To accomplish this,
the manager must have a schedule that has been defined at a degree of
resolution that enables the manager to monitor Progress and control the
project. The project schedule is one of the most important parts of the project
development plan.
The project schedule reflects the start dates and end dates for each activity in
the project. It also reflects the resources required to complete the activities. To
create a schedule, you can use project management tools.
To create a schedule, you can use project management tools, e.g.:
·
Gantt charts
·
Network-scheduling techniques
No matter how well the project schedule is prepared, that schedule is useless
unless it is adhered to. It is the project manager's responsibility to withstand
pressure and to assure that the project is developed in an orderly fashion,
according to the schedule. Whenever circumstances change, the project
schedule should then be updated to reflect the new situation.
ii.
Need for Project Scheduling
Software project have a tendency to get out of control because of the multiple
activities that need to be monitored, tracked, and controlled. When a project
goes out of control, the original deadlines, the budget, and the effort required
overshoot the initial estimates. This not only impacts the product, but also the
credibility of the development team.
285
img
Software Project Management (CS615)
iii.
What Delays Software Projects
There are various reasons why a software project is delayed. Some of the
reasons are listed below:
·
The initial estimate of the effort and resources required to complete the
software project was incorrect. (An honest underestimate of the amount of
effort and/or the number of resources that will be required to do the job).
·
Changing customer requirements that are not reflected in schedule
changes.
·
Known risks were not mitigated. (Predictable and/or unpredictable risks
were not considered when the project commenced).
·
Technical difficulties surfaced during software product development.
(Technical difficulties could not have been foreseen in advance).
·
Human difficulties, such as interpersonal problems and team attitude,
became unmanageable. (Human difficulties that could not have been
foreseen in advance, e.g., Miscommunication among project staff resulting
in delays).
·
A failure by project management to recognize that the project is falling
behind schedule and a lack of action to correct the problem.
·
The initial deadline set for the project was unrealistic. (An unrealistic
deadline established by someone outside the software development group
and forced on managers and practitioners within the group).
Aggressive (read "unrealistic") deadlines are a fact of life in the software
business Sometimes such deadlines are demanded for reasons that are
legitimate, from the point of view of the person who sets the deadline. But
common sense says that legitimacy must also be perceived by the people
doing the work.
iv.
How to Prevent Delays
While most of the above reasons result in project delays, unrealistic deadlines
cause the maximum damage. Unrealistic deadlines are caused either by the
client wanting a quick delivery or the management wanting a return business
nom a client.
286
img
Software Project Management (CS615)
However, unrealistic deadlines are the norm for software projects. You need
to resolve the conflict between an unrealistic deadline and the constraints of
the software development team.
As a project manager you need to balance the limited resources and the final
deliverable committed to the client. To do this, you can follow the points
listed below:
a) Study similar past projects for the method of dealing with similar
situations. Use the historical information to project time and effort
estimates for the current software project.
b) Use an incremental process model to create a schedule to deliver the
required functional module of the software product.
c) Present the schedule created on the basis of past projects to the client.
Explain the projected delays and the reasons for the same.
d) Present the incremental model as a strategy for developing the software
product.
All the strategies have their advantages and disadvantages. If the schedule
created using inputs from the past project does not help meet the deadline, you
can use the incremental model. In the incremental model, the strategy is to
deliver each module as and when it is completed. However, historical trends
show that clients opt for either strategy if provided reasonable time and effort
estimates.
8.2
Scheduling Fundamentals
i.
Scheduling Basics
Only a small percentage of all the activities in a software project have a direct
impact on the on-time completion of the software project. Therefore, you need
to identify the activities that are critical to the completion of the project. In
addition, you ensure that all inputs are available to complete the critical
activities. This is where a software project schedule comes into the picture.
The goal of a software project schedule is to determine the duration of the
software project and the phases within the project. A software project
schedule enables you to distribute the estimated effort to be spent in
performing the critical activities.
There are a few basic principles that determine how a software project
schedule is created. To create a project schedule, first you group similar
activities together. Then, you determine the dependencies of the different
activities. Next, you allocate the estimated time and resources to each activity.
Finally, you define the roles and responsibilities and the output and validation
criteria.
287
img
Software Project Management (CS615)
Some of the guidelines for creating a software project schedule are discussed
below:
a)
Classification
b)
Interdependence
c)
Time and effort allocation
d)
Validation criteria
e)
Defined responsibilities and outputs
a) Classification
While managing a software project, you need to group similar tasks and
activities so that they are completed successfully. The primary tools used to
group similar tasks are the WBS and decomposition technique. Using these
tools, you can divide a software project into different phases. The phases can
be further subdivided into activities. The software project schedule is prepared
according to the arrangement of the phases.
b) Interdependence
As you have seen, a software project is composed of multiple phases and each
phase is composed of multiple activities. Although each activity is treated
separately, it is linked to other activities. As a project manager, you determine
the interdependence and sequence of activities. For example, some activities
can be completed without any inputs from other activities, whereas other
activities cannot start unless a preceding activity is completed.
c) Time and Effort Allocation
Each activity in a software project needs a certain amount of time and effort
for completion. To manage the project, you assign start and end dates to each
activity. You also need to allocate appropriate effort to each activity. Most
software projects operate with time and effort constraints. Therefore,
managing within the available resources is very important for a software
project manager.
d) Validation Criteria
You also determine the validation criteria for time and effort allocation in a
software project. Determining the validation criteria allows you to ensure that
the optimal level of resources is available for a particular activity. Suppose 5
people are assigned to an activity that requires an effort of 3.5 person days.
This means resources allocated are more than the actual requirement.
e) Defined Responsibilities and outputs
As a software project manager, you assign roles and responsibilities to all
people assigned to a software project. This defines the hierarchy in the
development team. You also define the outputs from each activity. This helps
in identifying the results expected at the end of every activity. Next, you link
the roles to the outputs. When each role is linked to the expected results, you
288
img
Software Project Management (CS615)
can track each person's effort and the progress of each activity towards
closure.
289
Table of Contents:
  1. Introduction & Fundamentals
  2. Goals of Project management
  3. Project Dimensions, Software Development Lifecycle
  4. Cost Management, Project vs. Program Management, Project Success
  5. Project Management’s nine Knowledge Areas
  6. Team leader, Project Organization, Organizational structure
  7. Project Execution Fundamentals Tracking
  8. Organizational Issues and Project Management
  9. Managing Processes: Project Plan, Managing Quality, Project Execution, Project Initiation
  10. Project Execution: Product Implementation, Project Closedown
  11. Problems in Software Projects, Process- related Problems
  12. Product-related Problems, Technology-related problems
  13. Requirements Management, Requirements analysis
  14. Requirements Elicitation for Software
  15. The Software Requirements Specification
  16. Attributes of Software Design, Key Features of Design
  17. Software Configuration Management Vs Software Maintenance
  18. Quality Assurance Management, Quality Factors
  19. Software Quality Assurance Activities
  20. Software Process, PM Process Groups, Links, PM Phase interactions
  21. Initiating Process: Inputs, Outputs, Tools and Techniques
  22. Planning Process Tasks, Executing Process Tasks, Controlling Process Tasks
  23. Project Planning Objectives, Primary Planning Steps
  24. Tools and Techniques for SDP, Outputs from SDP, SDP Execution
  25. PLANNING: Elements of SDP
  26. Life cycle Models: Spiral Model, Statement of Requirement, Data Item Descriptions
  27. Organizational Systems
  28. ORGANIZATIONAL PLANNING, Organizational Management Tools
  29. Estimation - Concepts
  30. Decomposition Techniques, Estimation – Tools
  31. Estimation – Tools
  32. Work Breakdown Structure
  33. WBS- A Mandatory Management Tool
  34. Characteristics of a High-Quality WBS
  35. Work Breakdown Structure (WBS)
  36. WBS- Major Steps, WBS Implementation, high level WBS tasks
  37. Schedule: Scheduling Fundamentals
  38. Scheduling Tools: GANTT CHARTS, PERT, CPM
  39. Risk and Change Management: Risk Management Concepts
  40. Risk & Change Management Concepts
  41. Risk Management Process
  42. Quality Concept, Producing quality software, Quality Control
  43. Managing Tasks in Microsoft Project 2000
  44. Commissioning & Migration