Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

4.0 Software Project Management: Lesson Introduction

Download as pdf or txt
Download as pdf or txt
You are on page 1of 17

4.

0 Software Project Management

Lesson Introduction

Although software development is one of the most complex activities, sound development
processes and proper project management can help ensure your software projects are delivered
on time and under budget.

Learning Outcomes:
• After completion of this lesson, students will be able to:
o Describe the main tasks of project managers
o Explain project planning process
o Draw network diagrams and find the critical path

Lesson Outline:
• Project management activities
• Project planning
• Project scheduling
• Activity networks
4.1 Software project management

The software project is a software development process, from requirements gathering to testing
and maintenance. Software development is a new stream of world business and the experience
of building software products is very small. Importantly, the underlying technology changes and
advances constantly and rapidly, as the experience of one product does not apply to the other.
These environmental barriers pose a risk for software development. Therefore, it is essential to
manage software projects efficiently.

All projects are carried out under certain constraints, traditionally, they are cost, time and scope.
These three factors (commonly called 'the triple constraint') are represented as a triangle (see
Figure 1). Every block is made vertical, with quality as the central theme:

Figure 1

Software project management aims at ensuring the followings.


➢ Projects must be delivered within cost
➢ Projects must be delivered on time
➢ Projects must meet the agreed scope – no more, no less
➢ Projects must also meet customer quality requirements
Software projects are unique from the other types of engineering in a number of ways that make
the software management challenging.

Software management distinct

a) The product is intangible: Software cannot be touched and managers cannot see the
progress by simply looking at the artefacts.
b) Large software projects are often “one-off” projects: Large software projects are usually
different in some ways from previous ones. Even managers previous experience may find
it difficult to anticipate problems.
c) Software processes are variable and organization-specific: Still cannot reliably predict
which software process is likely to lead to development process.

The following activities are the most common activities to be carried out by the project manager
in every software development project.
➢ Project Planning
➢ Reporting and Controlling
➢ Risk Management
➢ People Management

Project Planning

Project planning is one of the most important jobs of a software project manager. The project
manager needs to be assigned to the task group, assigning them to team members, anticipating
problems that may arise, and setting up temporary solutions to these problems.
Project planning is everything you do to make your project a success. It is the process by which
you define your project objectives, clarify the scope of things to do, and establish the steps
needed to create a to-do list. Project planning take place in below mention stages in project life
cycle.

In the proposed phase, when you are bidding for a contract to develop or supply a software
system. This is for high-level requirements and generally low in confidence in estimates. When
you have to plan who is working on the project, how to break the project into incremental stages,
and how to allocate resources across your company. From time to time throughout the project,
adjust your plan according to the information you receive from the experience and the progress
of the work. In the proposed phase, when you are bidding for a contract to develop or supply a
software system. This is for high-level requirements and generally low in confidence in estimates.

Plan Driven Development

In plan-driven development, the development process is planned in detail. The idea is to plan
everything in advance and execute the project. It is a traditional way of managing large software
development projects. This is a project plan with a detailed level of detail on what we need to
do, who will do it, the development schedule and work products. Project managers use the plan
to help them make decisions and measure progress. Figure 2 presents the main steps in plan-
based development.

Figure 2

The problem with plan-driven development is that early decisions have to be revised because of
changes to the environments in which the software is developed and used. The arguments in
favor of a plan-driven approach are that early planning allows organizational issues (availability
of staff, other projects, etc.) to be taken into account. Potential problems and dependencies are
discovered before the project starts, rather than once the project is underway.

The problem with design-based development is that the original decisions need to be revised due
to changes in the environment in which the software is developed and used. The argument for a
design-based approach is that early planning can address organizational issues (staffing, other
projects, etc.). Potential issues and dependencies are discovered before the project begins.
Project Plans

In a plan-driven development project, a project plan sets out the resources available to
the project, the work breakdown, and a schedule for carrying out the work.

Plan sections,

➢ Introduction
➢ Project Organization
➢ Risk Analysis
➢ Hardware and Software resource requirements
➢ Work breakdown
➢ Project schedule
➢ Monitoring and reporting mechanisms

Project Plan Supplements

In addition to the above traditional project planning we would have documents that describes
below sections.

Table 1
The Planning Process

Project planning is an iterative process that starts when you create an initial project plan during
the project startup phase.
The project planning process involves a set of interrelated activities followed in an orderly
manner to implement user requirements in software and includes the description of a series of
project planning activities and individual(s) responsible for performing these activities. In
addition, the project planning process comprises the following.

1) Objectives and scope of the project


2) Techniques used to perform project planning
3) Effort (in time) of individuals involved in project
4) Project schedule and milestones
5) Resources required for the project
6) Risks associated with the project.
7)
Project planning process comprises several activities, which are essential for carrying out a
project systematically. These activities refer to the series of tasks performed over a period of
time for developing the software. These activities include estimation of time, effort, and
resources required and risks associated with the project.

Figure 3
Project planning process consists of the following activities.
➢ Identification of project requirements: Before starting a project, it is essential to identify
the project requirements as identification of project requirements helps in performing
the activities in a systematic manner.
➢ Identification of cost estimates: Along with the estimation of effort and time, it is
necessary to estimate the cost that is to be incurred on a project. The cost estimation
includes the cost of hardware, network connections, and the cost required for the
maintenance of hardware components.
➢ Identification of risks: Risks are unexpected events that have an adverse effect on the
project. Software project involves several risks (like technical risks and business risks) that
affect the project schedule and increase the cost of the project. Identifying risks before a
project begins helps in understanding their probable extent of impact on the project.
➢ Identification of critical success factors: For making a project successful, critical success
factors are followed. These factors refer to the conditions that ensure greater chances of
success of a project. Generally, these factors include support from management,
appropriate budget, appropriate schedule, and skilled software engineers.
➢ Preparation of project charter: A project charter provides a brief description of the project
scope, quality, time, cost, and resource constraints as described during project planning.
It is prepared by the management for approval from the sponsor of the project.
➢ Preparation of project plan: A project plan provides information about the resources that
are available for the project, individuals involved in the project, and the schedule
according to which the project is to be carried out.
➢ Commencement of the project: Once the project planning is complete and resources are
assigned to team members, the software project commences.

Once the project objectives and business objectives are determined, the project end date is fixed.
The project management team prepares the project plan and schedule according to the end date
of the project. After analyzing the project plan, the project manager communicates the project
plan and end date to the senior management.

The progress of the project is reported to the management from time to time. Similarly, when
the project is complete, senior management is informed about it. In case of delay in completing
the project, the project plan is re-analyzed and corrective actions are taken to complete the
project. The project is tracked regularly and when the project plan is modified, the senior
management is informed.
Project Scheduling

Project management scheduling is a collection of tasks, deliverables and milestones within the
project. A schedule usually includes the planned start and finish date, duration and resources
allocated to each activity. Effective project scheduling is a key component of successful time
management.

The project schedule specifies what needs to be done, which resources need be used, and when
the project is due. In brief, it's a timetable which specifies the start and end dates and milestones
that must be met for the project to be completed on time. The project schedule is often used in
conjunction with a Work Breakdown Structure (WBS) as a way to evenly distribute work among
team members. The project schedule should be updated on a regular basis in order to gain a
better understanding of the project's current status.

Both plan-based and agile processes require an initial project schedule. It is including less details
in an agile project plan. This initial project schedule is used to plan team member allocation for
the project and check the progress of the project against its contractual obligations.

Throughout typical development processes, the complete schedule is initially developed and
then modified as the project progresses. In agile processes, there must be an overall schedule
that identifies when the major phases of the project will be completed. An iterative approach to
scheduling is then used to plan each phase.

It is breaking down the total work in to separate tasks when scheduling the plan-driven project
and then estimating the time required to complete each task. Each task normally should be
complete at least one week, and it cannot take no longer than two months. Finer subdivision
ensures that a vast amount of time must be spent on re-planning and updating the project plan.

The maximum time allocation for the any task has be to 6 to 8 weeks. It a task will task more
time; it should be divided in to sub tasks for project scheduling. Some of these tasks are carried
out parallelly with different people working on different components of the system. You need to
coordinate these parallel tasks and avoid the introducing unnecessary dependencies between
the tasks. It is important to avoid a situation where the entire project is delayed because a critical
task has not been completed.

A schedule is your project’s timetable, consisting of sequenced activities and milestones that
have to be delivered under a given deadline. Having a project plan, you know exactly what to
offer. Resource allocation helps you find and assign the right employees. Then, a schedule will
tell you when it all needs to happen.

With the right scheduling techniques, you can also adjust some activities and tasks in case of a
project running late or if any changes to the scope occur.

There are three main types of schedules:

1) Master project schedule - A master schedule is a list of simplified tasks with a timeline or
project calendar.
2) Milestone schedule or summary schedule - This schedule tracks key milestones and key
deliveries, but does not require all the work required to complete the project.
3) A detailed project schedule – This is a more in-depth project schedule as every project
activity is identified and monitored. If you have a complex, large or lengthy project, it is
important to have a detailed project schedule that helps you keep track of everything.

Benefits of project scheduling in project management

➢ Assists with tracking, reporting on, and communicating progress.


➢ Ensures everyone is on the same page as far as tasks, dependencies, and deadlines.
➢ Helps highlight issues and concerns, such as a lack of resources.
➢ Helps identify task relationships.
➢ Can be used to monitor progress and identify issues early.
Work breakdown structure (WBS)

The division of complex projects into simple and manageable tasks is known as the Work
Breakdown Structure (WBS). Generally, project managers use this method to simplify project
execution. In WBS, larger tasks are divided into manageable work blocks. These blocks can be
easily monitored and assessed. WBS is not restricted to a specific field when it comes to
application. This methodology can be used for any type of project management.

Following are a few reasons for creating a WBS in a project:

➢ Accurate and readable project organization.


➢ Accurate assignment of responsibilities to the project team.
➢ Indicates the project milestones and control points.
➢ Helps to estimate the cost, time and risk.
➢ Illustrate the project scope, so the stakeholders can have a better understanding of the
same.

In a WBS diagram, the project scope is expressed graphically. Typically, the diagram begins with
a graphic object or a box at the top, which represents the entire project. Then, there are sub-
components under the box. These boxes represent the distributions of the project. Under each
distributable, sub-element are listed. These sub-elements are functions that must be performed
to achieve distribution.

Although most WBS diagrams are designed based on distribution, some WBSs are based on
project phases. Usually, information technology projects are perfectly fit into WBS model.
Therefore, almost all information technology projects make use of WBS.
Watch the video titled “work breakdown structure” available
in Moodle for more information.

Critical Path

Projects are made up of tasks that need to be scheduled in a timely manner to meet deadlines.
It seems simple, but you can quickly abandon it without mapping the work and your project will
off track. Project managers use many techniques to schedule their project activities so that
everything is in place and the project fits into the agreed timeline. The critical path method is one
of these.

Think of critical path as the critical path to project management. It is a series of stages in which
you understand the minimum amount of time required to complete a task with the least amount
of slowness. Therefore, the critical path is the longest length of time it takes to complete the
project.

Critical Path: Basic Steps

The technique for figuring out the critical path in your project can be boiled down to four essential
steps.

➢ List all the tasks required to complete the project. You can use a work breakdown
structure, which is a hierarchical decomposition of the project, noting every deliverable.
➢ Write down the duration of each of those tasks, such as how long each one takes to
complete and move on to the next task.
➢ If there are any dependencies, you need to add them as well. Task dependency is the
inability of one task to start until another. It is a key part of good task management
➢ What are the milestones in the project? That being the major phases. Also, what are the
deliverables? Create a list of these.

When you have this data collected, you’re able to calculate the longest path your planned tasks
will take to reach the end of the project, as well as the earliest and latest that each task can start
and finish without impacting the project schedule.

Therefore, you’re deciding which tasks are critical and can be floated, which means that
increasing the length of the project can delay them without negatively impacting them. Now you
have the information you need to plan your schedule more accurately and have a greater
assurance that you will meet your project deadline.

Activity Network

An activity network diagram is a diagram of project activities showing the serial relationships of
activities/tasks using arrows and nodes. The Activity Network Diagram Tool is widely used to
determine the critical path of a project. Consider the following example scenario. In the first
version, the high-level scenario is presented.
In the second version, the individual tasks are identified.

In the third version, the tasks are listed down to understand easily.

Upon identifying all the tasks, they can be organized in a table as shown below.
Then the time required to complete the tasks (Duration) and the tasks to be completed before
starting a particular task (Predecessor Tasks) can be identified.

When drawing an activity network, the tasks can be represented using task box that are arranged
in 3 well-known types.

The structure of the task box:

Type 1: Dependent tasks:


Type 2: Multiple successor tasks

Type 3: Multiple predecessor tasks


Below is an example project to understand how to draw the activity diagram and find the critical
path.
Now the activity diagram can be drawn and the critical path can be found as shown below.

Thus, the time required to complete the project is 155 days.

You might also like