Unit - V Software Project Management
5.0 INTRODUCTION
A project is well-defined task, which is a collection of several operations done in order to achieve a
goal (for example, software development and delivery).
A project is defined as, a specification essential for developing or maintaining a specific product.
Software project is developed when the software processes are executed for certain specific
requirements of the user.
Software project scheduling is an action that distributes estimated effort across the planned project
duration by allocating the effort to specific software engineering tasks.
Project scheduling in a project refers to roadmap of all activities to be done with specified order and
within time slot allotted to each activity.
A well-defined process framework should provide a set of milestones that can be used for project
tracking.
5.1 PROJECT SCHEDULING
Project scheduling is a mechanism to communicate what tasks need to get done and which
organizational resources will be allocated to complete those tasks in what timeframe.
A project schedule is a document collecting all the work needed to deliver the project on time.
Project scheduling provides details like start and end date of the project, milestones, and tasks for the
project.
Project scheduling specifies the resources like people, equipment etc. required to complete the project
and dependencies of tasks of the project on each other.
An appropriate project schedule prepared according to the project plan not only aims to complete the
project on time but help to avoid the additional cost occurs when project is delayed.
Scheduling for software development projects can be viewed from two rather different perspectives:
1. An end date for release of a computer-based system has already been established.
2. Rough chronological bounds have been discussed but that the end date is set by the software
engineering organization.
Factors affecting the software-project scheduling:
1. People-work relationships,
2. Task definition and parallelism.
3. Effort distribution, and
4. Scheduling methods.
Software project scheduling is an action that distributes estimated effort across the planned project
duration by allocating the effort to specific software engineering tasks.
During early stages of software project planning, a macroscopic schedule is developed. This type of
software project schedule identifies all major process framework activities and the product functions
to which they are applied.
As the software project gets under way, each entry on the macroscopic schedule is refined into a
detailed schedule. Here, specific software actions and tasks are identified and scheduled.
Effort is distributed to make best use of resources, and an end date is defined after careful analysis of
the software. Unfortunately, the first situation is encountered far more frequently than the second.
Need of Project Scheduling:
Following points describes need of project scheduling:
1. Error tracking methods can also be used for assessing the status of current Perform a detailed
project estimate for project effort and duration using historical data.
2. Use an incremental process model that will deliver critical functionality imposed by deadline, but
delay other requested functionality.
3. Meet with the customer and explain why the deadline is unrealistic using your estimates based on
prior team performance.
4. Offer an incremental development and delivery strategy as an alternative to increasing resources
or allowing the schedule to slip beyond the deadline.
Project Scheduling Process:
Project schedules may simply be represented in a table or spreadsheet showing the tasks, effort,
expected duration, and task dependencies. Project scheduling is the process of deciding how and when
tasks in a project will be organized as separate tasks, and when and how these tasks will be executed.
Fig. 5.1 shows process of project scheduling.
Fig. 5.1 shows following phases in process scheduling.
1. Identify Activity: Identifying the specific activities that must be performed to produce the various
project deliverables.
2. Identify Activity Dependencies: Identifying and documenting interactivity dependencies.
3. Allocate Resources: Resources are allocated and estimating the number of work periods which will
be needed to complete individual activities.
4. Create Project Charts: Project activity charts are created to analyzing activity sequences, activity
durations, and resource requirements to create the project schedule.
5. Allocate People to Activities: According to different activities people are allocated to those
activities.
5.1.1 Basic Principles of Project Scheduling
Software project scheduling is an activity that distributes estimated effort across the planned project
duration by allocating the effort to specific software engineering tasks.
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.
Project scheduling helps to establish a roadmap for project managers together with estimation
methods and risk analysis.
Project scheduling begins with the identification of process models, identification of software tasks
and activities, estimation of effort and work and ends with creation of network of tasks and making
sure it gets done on time.
A number of basic principles guide software project scheduling are:
1. Principle #1: Compartmentalization: The software project must be compartmentalized into a
number of manageable activities and tasks. To accomplish compartmentalization, both the product
and process are refined.
2. Principle #2: Effort Validation: Each and every project has a defined number of people on the
software team. As time allocation occurs, you must ensure that no more than the allocated number of
people has been scheduled at any given time.
3. Principle #3: Interdependency: The interdependency of each and every compartmentalized activity
or task must be determined. Some tasks must occur in sequence, while other tasks can occur in
parallel. Some activities cannot commence until the work product produced by another is available.
Other activities can occur independently.
4. Principle #4: Defined milestones: Every task or group of tasks should be associated with a
milestone product. A milestone is accomplished when one or more work products has been reviewed
for quality and has been approved.
5. Principle #5: Defined outcomes: Each and every task that is scheduled should have a defined
outcome. In most cases, the outcome is normally a work product or a part of a work product. Work
products are combined in deliverables.
6. Principle #6: Defined responsibilities: Each and every task that is scheduled should be assigned to a
specific team member.
Factors that Delay Project Schedule:
1. Unrealistic deadline established outside the team.
2. Changing customer requirements not reflected in schedule changes.
3. Underestimating the resources required to complete the project.
4. Risks that were not considered when project began.
5. Technical difficulties that complete not have been predicted in advance.
6. Human difficulties that complete not have been predicted in advance.
7. Miscommunication among project staff resulting in delays.
8. Failure by project management to recognize project failing behind schedule and failure to take
corrective action to correct problems.
5.1.2 Work Breakdown Structure
Work Breakdown Structure (WBS) is a hierarchical depiction of all components of work required to
accomplish the entire work of the project.
A complex project is made manageable by breaking it down into individual components and
organizing the work components in a hierarchical structure. Such a structure defines the logical
relationships between work components and the total work content of the project.
A work breakdown structure is a key project deliverable that organizes the team’s work into
manageable sections. A work-breakdown structure element may be a product, data, service, or any
combination thereof.