05 Lecture
05 Lecture
Semester:
Lecture No.: 5th
Lecturer: Zakirullah Ezam
1
Project Scheduling
Project scheduling is the process of deciding how the work in a project will be
organized as separate tasks, and when and how these tasks will be executed.
You estimate the calendar time needed to complete each task and the effort
required, and you suggest who will work on the tasks that have been identified.
You also have to estimate the hardware and software resources that are needed
to complete each task.
2
Continue…
Both plan-based and agile processes need an initial project schedule, although
less detail is included in an agile project plan. This initial schedule is used to
plan how people will be allocated to projects and to check the progress of the
project against its contractual commitments.
In agile processes, there has to 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.
3
Continue…
Tasks should normally last at least a week and no longer than 2 months. The
maximum amount of time for any task should be 6 to 8 weeks. If a task will
take longer than this, it should be split into subtasks for project planning and
scheduling.
4
Continue…
Schedule Presentation
Activity Networks
Activity networks show the dependencies between the different activities
making up a project. These networks are described in an associated web
section.
7
Continue…
Project activities are the basic planning element. Each activity has:
1) A duration in calendar days or months
2) An effort estimate, which shows the number of person-days or person-months
to complete the work
3) A deadline by which the activity should be complete
4) A defined endpoint, which might be a document, the holding of a review
meeting, the successful execution of all tests, or the like.
8
Continue…
When planning a project, you may decide to define project milestones. A mile
stone is a logical end to a stage of the project where the progress of the work
can be reviewed.
Continue…
Some activities create project deliverables. Project deliverables are the outputs
that are delivered to the software customer.
Usually, the deliverables that are required are specified in the project contract,
and the customer’s view of the project’s progress depends on these
deliverables.
Milestones and deliverables are not the same thing. Milestones are short reports
that are used for progress reporting, whereas deliverables are more substantial
project outputs such as a requirements document or the initial implementation
of a system.
10
Normally, you should use a project planning tool, such as the Basecamp or
Microsoft project, to create, update, and analyze project schedule information.
Project management tools usually expect you to input project information into a
table, and they create a database of project information. Bar charts and activity
charts can then be generated automatically from this database
11
Agile Planning
The argument for this approach is that the customer’s priorities and
requirements change, so it makes sense to have a flexible plan that can
accommodate these changes.
12
Continue…
Release Planning
Release planning involves selecting and refining the stories that will reflect the
features to be implemented in a release of a system and the order in which the
stories should be implemented.
The customer has to be involved in this process. A release date is then chosen,
and the stories are examined to see if the effort estimate is consistent with that
date. If not, stories are added or removed from the list.
14
Iteration Planning
When the delivery date is reached, the development iteration is complete, even
if all of the stories have not been implemented.
The team considers the stories that have been implemented and adds up their
effort points. The velocity can then be recalculated, and this measure is used in
planning the next version of the system.
15
The basis of the planning game is a set of user stories that cover all of the
functionality to be included in the final system.
The development team and the software customer work together to develop
these stories. The team members read and discuss the stories and rank them
based on the amount of time they think it will take to implement the story.
Some stories may be too large to implement in a single iteration, and these are
broken down into smaller stories.
16
Continue…
Ranking Stories
The problem with ranking stories is that people often find it difficult to estimate
how much effort or time is needed to do something. To make this easier,
relative ranking may be used.
The team compares stories in pairs and decides which will take the most time
and effort, without assessing exactly how much effort will be required. At the
end of this process, the list of stories has been ordered, with the stories at the
top of the list taking the most effort to implement.
The team then allocates notional effort points to all of the stories in the list. A
complex story may have 8 points and a simple story 2 points.
18
Velocity Estimate
Once the stories have been estimated, the relative effort is translated into the
first estimate of the total effort required by using the idea of “velocity.”
Velocity is the number of effort points implemented by the team, per day. This
can be estimated either from previous experience or by developing one or two
stories to see how much time is required.
Once you have a velocity estimate, you can calculate the total effort in person-
days to implement the system.
19
Estimation Techniques
The software may have to run on unfamiliar platforms or use new development
technology. The people involved in the project and their skills will probably not
be known.
Continue…
In both cases, you need to use your judgment to estimate either the effort
directly or the project and product characteristics. In the startup phase of a
project, these estimates have a wide margin of error.
If the initial estimate of effort required is x months of effort, they found that the
range may be from 0.25x to 4x of the actual effort as measured when the
system was delivered.
Continue…
Estimate Uncertainty
23
Experience-based Technique
Software development changes very quickly, and a project will often use
unfamiliar techniques such as web services, application system configuration,
or HTML5.
If you have not worked with these techniques, your previous experience may
not help you to estimate the effort required, making it more difficult to produce
accurate costs and schedule estimates.
25
Continue…
The estimate is used to define the project budget, and the product is adjusted so
that the budget figure is realized. A project that is within budget may have
achieved this at the expense of features in the software being developed.
26
Algorithmic cost models are developed by analyzing the costs and attributes of
completed projects, then finding the closest-fit formula to the actual costs
gained.
However, some research studies demonstrated a range of other uses for these
models, such as the preparation of estimates for investors in software
companies, alternative strategies to help assess risks and to inform decisions
about reuse, redevelopment, or outsourcing.
Most algorithmic models for estimating effort in a software project are based
on a simple formula:
28
Continue…
B: Represents the complexity of the software and usually lies between 1 and
1.5.