



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Project Management is the art of maximizing the probability that a project delivers its goals on Time, to Budget and at the required Quality. This lecture handout was provided by Sir Debashis Koppale. It includes: Scheduling, Sailent, project, Manager, Delay, Classification, Interdependence, Allocation, Validation, Output
Typology: Study notes
1 / 6
This page cannot be seen from the preview
Don't miss anything!




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.
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.:
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.
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.
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