2. 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.
To schedule the project plan, a software project manager wants to do the
following:
1. Identify all the functions required to complete the project.
2. Break down large functions into small activities.
3. Determine the dependency among various activities.
4. Establish the most likely size for the time duration required to complete
the activities.
5. Allocate resources to activities.
6. Plan the beginning and ending dates for different activities.
7. Determine the critical path. A critical way is the group of activities that
decide the duration of the project.
3. Project Scheduling principles
COMPARTMENTALIZATION :
A given software project is compartmentalized into a number of manageable activities. The
project is divided into a number of small tasks.
INTERDEPENDENCY :
Interdependent tasks are accomplished first. Certain tasks occur in sequence whereas other
tasks occur in parallel. Therefore tasks which occur in sequence has to be performed in a
sequential order since the output of one task will be the input of the next task. Other tasks can
occur independently.
TIME ALLOCATION :
Each and every task has to be assigned a specific time period i.e a start date and a
completion date based on whether the work will be performed in a full time or part time basis.
4. EFFORT VALIDATION :
Every project is assigned to a software team. The project manager has to make sure that the
effort allocated should not be more than the number of people available to do the work.
DEFINED RESPONSIBILITIES :
Each of the scheduled task is assigned to a specific member of the software team.
DEFINED OUTCOMES :
Each task has a defined outcome. Work product is the outcome of a software project.
DEFINED MILESTONES :
Every task is associated with a milestone. A milestone is an action or event marking a significant
change in development process.
6. Effort Distribution
The number of effort required to develop the software as a whole. To produce
cost estimation in the software development project, we need to know the
percentage of each phase of software development, in this case called the effort
distribution.
7. Early stage effort estimations can be defined as making software development
effort estimations at the initial stages more precisely the Design stage of SDLC.
Carrying out effort estimations at the early stages is beneficial because the
design stage prediction implies fewer overheads at the later stages of
software development. Figure 1 above signifies that the total project effort
comprises of the efforts (given in percentage) which goes into surpassing each of
the individual phases.
It is evident from the Figure 1 that most of the efforts(nearly 60 per cent) are
spread over two initial phases of Analysis and Design. Hence if the accurate
effort requirements can be predicted from the initial or early phases of the SDLC,
then an efficient project development schedule can easily be prepared so as to
complete the project well within the targeted time and budget constraints.
8. Project Scheduling Methods:PERT and CPM
PERT and CPM are techniques of project management useful in the basic
managerial functions of planning, scheduling and control. PERT stands for
“Programme Evaluation & Review Technique” and CPM are the abbreviation for
“Critical Path Method”. These days the projects undertaken by business houses are
very large and take a number of years before commercial production can start.
9. Program Evaluation & Review Technique(PERT)
PERT is a way to schedule the flow of tasks in a project and estimate the total time
taken to complete it. This technique helps represent how each task is dependent on the
other. To schedule a project using PERT, one has to define activities, arrange them in an
orderly manner and define milestones.
Weighted average duration and not estimates are used by PERT to calculate different
time frames.The best thing about PERT is its ability to integrate the uncertainty in
project times estimations into its methodology.It also makes use of many assumption
that can accelerate or delay the project progress. Using PERT, project managers can
have an idea of the possible time variation for the deliveries and offer delivery dates to
the client in a safer manner.
10. Advantages of PERT:
1. It provides a graphical display of project activities that helps the users
understand the relationships among the activities.
2. It is the ideal technique for tactical level planning and operational level control
of projects.
3. It is effective in planning single project activities in any type of industry.
4. It allows project managers to do 'what if' analysis on project activities.
11. Critical Path Method (CPM)
Every project’s tree diagram has a critical path. The Critical Path Method estimates the
maximum and minimum time required to complete a project. CPM also helps to
identify critical tasks that should be incorporated into a project. Delivery time changes
do not affect the schedule. The scope of the project and the list of activities necessary
for the completion of the project are needed for using CPM. Next, the time taken by
each activity is calculated. Then, all the dependent variables are identified. This helps
in identifying and separating the independent variables. Finally, it adds milestones to
the project.
Critical path identification is required for any project-planning phase. This gives the
project management the correct completion date of the overall project and the
flexibility to float activities.
A critical path diagram should be constantly updated with actual information when the
project progresses in order to refine the activity length/project duration predictions.
12. Advantages of Critical Path Method
● Offers a visual representation of the project activities.
● Presents the time to complete the tasks and the overall project.
● Tracking of critical activities.
13. Software Prototyping
Software prototyping is similar to prototyping in other industries. It is an
opportunity for the manufacturer to get an idea of what the final product will look
like before additional resources, such as time and money, are put into finalizing
the product. Prototyping gives the software publisher the opportunity to evaluate
the product, ensure it's doing what it's intended, and determine if improvements
need to be made.
Often, the software prototype is not complete. Sometimes, only certain aspects of
the program are prototyped, such as those elements the publisher is most
concerned about or areas where user interface may be tricky.
14. The Software Prototyping Process
There is typically a four-step process for prototyping:
1. Identify initial requirements: In this step, the software publisher decides what the software
will be able to do. The publisher considers who the user will likely be and what the user will
want from the product, then the publisher sends the project and specifications to a software
designer or developer.
2. Develop initial prototype: In step two, the developer will consider the requirements as
proposed by the publisher and begin to put together a model of what the finished product
might look like. An initial prototype may be as simple as a drawing on a whiteboard, or it may
consist of sticky notes on a wall, or it may be a more elaborate working model.
3. Review: Once the prototype is developed, the publisher has a chance to see what the
product might look like; how the developer has envisioned the publisher's specifications. In
more advanced prototypes, the end consumer may have an opportunity to try out the product
and offer suggestions for improvement. This is what we know of as beta testing.
4. Revise: The final step in the process is to make revisions to the prototype based on the
feedback of the publisher and/or beta testers.
15. Software Prototyping Methods
INCREMENTAL PROTOTYPING
Incremental prototyping involves a series of prototypes being created, each one
representing a refined version and intended to represent the final product. Once the
client is completely satisfied with the product, the different versions are married
together into one fully functional design.
THROWAWAY PROTOTYPING
As the name suggests, throwaway prototyping is a model created with the intention
of discarding it after the testing process. This is opposed to other methods of
prototyping, which assume the prototype will later be built into the working system.
It does mean that throwaway is often the quickest and cheapest software
prototyping method.
16. EXTREME PROTOTYPING
Extreme prototyping is used mostly for web-based applications and is a process
of three clearly defined stages. These different stages could be compared to the
three levels of prototyping – as low, mid, and high fidelity models.
EVOLUTIONARY PROTOTYPING
The key purpose of evolutionary prototyping is to create a model which is refined
over time. Like stages of evolution, each stage of the process involves resolving
any issues and implementing any changes to the prototype.