ITPM Notes Unit 1
ITPM Notes Unit 1
Large amounts of money are spent on ICT (Information and communications technology ) e.g. UK
government in 2003-4 spent £2.3 billion on contracts for ICT and only £1.4 billion on road building . Project
often fail – Standish Group claim only a third of ICT projects are successful. 82% were late and 43%
exceeded their budget. Poor project management a major factor in these failures.
Software project management is the art and science of planning and leading software projects. It is a sub-
discipline of project management in which software projects are planned, implemented, monitored and
controlled
What is a Project?
Project: The dictionary definitions put a clear emphasis on the project being a planned activity. A project is a
unique venture with a beginning and an end, conducted by people to meet established goals within parameters
of cost, schedule and quality.
A Planned activity
A Specific pan or design
A planned undertaking
A large undertaking
Non-Software Examples:
A wedding
An MBA degree
A house construction project
A political election campaign
What is a Task?
Non-software Examples:
Attend a lecture class
Buy a chocolate from the market
Book a railway ticket
Jobs versus Projects
On the one hand there are repetitive jobs a similar task is carried out repeatedly, for example Kwikfit
replacing a tyre on a car or a lecturer giving an introductory talk on project management. The task is well-
defined and there is very little uncertainty. In some organizations, software development might tend to be
like this – in these environments software process management might be more important than software
project management.
On the other hand some exploratory activities are very uncertain. Some research projects can be like this –
we may not be sure what the outcome will be, but we hope that we will learn some things of importance.
It may be very difficult to come up with precise plans, although we would probably have some idea of a
general approach.
Projects seem to come somewhere between these two extremes. There are usually well-defined hoped-for
outcomes but there are risks and uncertainties about achieving those outcomes.
Invisibility
Complexity
Conformity
Flexibility
Invisibility
Software remains invisible, until its development is complete and it is operational. Anything that is
invisible is difficult to manage and control. Consider a house building project. The manager can
closely monitor the progress of the project, and take remedial actions if he finds that the progress is
not as per plan.
In contrast, it becomes very difficult for the manager of a software project to assess the progress of the
project due to the invisibility of software. The best that he can do perhaps is to monitor the milestones
that have been completed by the development team and the documents that have been produced ---
which at best are rough indicators of the progress achieved.
Invisibility of software makes it difficult to assess the progress of a project and is a major cause for
the complexity of managing a software project.
Complexity
Even moderate sized software has millions of parts (functions) that interact with each other in many
ways: data coupling, serial and concurrent runs, state transitions, control dependency, file sharing, etc.
Due to the inherent complexity of the functioning of a software product in terms of the basic parts
making up the software, many types of risks are associated with its development. This makes
managing these projects much more difficult than that for many other kinds of projects.
Per dollar, pound or euro spent, software products contain more complexity than other engineered
artifacts.
Conformity
The ‘traditional’ engineer is usually working with physical systems and physical materials like cement
and steel. These physical systems can have some complexity, but are governed by physical laws that
are consistent. Software developers have to conform to the requirements of human clients. It is not
just that individual can be inconsistent.
Organizations, because of lapses in collective memory, in internal communication or in effective
decision making can exhibit remarkable ‘organizational stupidity’ that developers have to cater for.
Flexibility
The ease with which software can be changed is usually seen as one of its strengths. However, this
means that where the software system interfaces with a physical or organizational system, it is
expected that, where necessary, the software will change to accommodate the other components rather
than vice versa. This means the software systems are likely to be subject to a high degree of change.
Contract Management
It is the management of contracts made with customers, vendors, partners, or employees. Contract
management includes negotiating the terms and conditions in contracts and ensuring compliance with the
terms and conditions, as well as documenting and agreeing on any changes that may arise during its
implementation or execution. It can be summarized as the process of systematically and efficiently managing
contract creation, execution, and analysis for the purpose of maximizing financial and operational
performance and minimizing risk.
The feasibility study this investigates whether a prospective project is worth starting that it has a valid
business case. Information is gathered about the requirements of the proposed application. Requirements
elicitation can, at least initially, be complex and difficult. The client and other stakeholders may be aware of
the problems they wish to overcome and the aims they wish to pursue, but not be sure about the means of
achievement. The probable developmental and operational costs, along with the value of the benefits of the
new system, will also have to be estimated. With a large system, the feasibility study could be treated as a
project in its own right – and have its own planning sub-phase. The study could be part of a strategic planning
exercise examining and prioritizing a range of potential software developments. Sometimes an organization
has a policy where a group of projects is planned as a program of development.
Planning If the feasibility study produces results which indicate that the prospective project appears viable
and then planning of the project can take place. However, for a large project, we would not do all our detailed
planning right at the beginning. We would formulate an outline plan for the whole project and a detailed one
for the first stage. More detailed planning of the later stages would be done as they approached. This is
because we would have more detailed and accurate information upon which to base our plans nearer to the
start of the later stages.
Project execution The project can now be executed. The execution of a project often contains design and
implementation sub-phases. Students new to project planning often find it difficult to separate planning and
design, and often the boundary between the two can be hazy. Essentially, design is thinking and making
decisions about the precise form of the products that the project is to create. In the case of software, this could
relate to the external appearance of the software, that is, the user interface, or the internal architecture. The
plan lays down the activities that have to be carried out in order to create these products. Planning and design
can be confused because at the most detailed level, planning decisions are influenced by design decisions.
Requirements analysis This starts with requirements elicitation which investigates what the potential users
and their managers and employers require as features and qualities of the new system. These will relate to the
system as a whole. A quality requirement might be, for instance, that the user should be able to complete a
transaction within a certain time. In this case transaction time would be affected by the speed of human
operation, as well as hardware and software performance.
Architecture design This maps the requirements to the components of the system that is to be built. At the
system level, decisions will need to be made about which processes in the new system will be carried out by
the user and which can be computerized. This design of the system architecture thus forms an input to the
development of the software requirements. A second architecture design process then takes place which maps
the software requirements to software components.
Code and test This could refer to writing code in a procedural language such as C# or Java, or could refer to
the use of an application-builder such as Microsoft Access. Initial testing to debug individual software
components would be carried out at this stage.
Integration The individual components are collected together and tested to see if they meet the overall
requirements. Integration could be at the level of software where different software components are combined,
or at the level of the system as a whole where the software and other components of the system such as the
hardware platforms and networks and the user procedures are brought together.
Qualification testing The system, including the software components, has to be tested carefully to ensure that
all the requirements have been fulfilled.
Installation This is the process of making the new system operational. It would include activities like setting
up standing data (such as payroll details for employees if this were a payroll system). It would also include
setting system parameters, installing the software onto the hardware platforms and user training.
Acceptance support This is the resolving of problems with the newly installed system, including the
correction of any errors that might have crept into the system, and any extensions and improvements that are
required. It is possible to see software maintenance as a series of minor software projects. In many
environments, most software development is in fact maintenance.
Requirements analysis: This starts with requirements elicitation which investigates what the
potential users and their managers and employers require as features and qualities of the new system.
These will relate to the system as a whole.
Architecture design This maps the requirements to the components of the system that is to be built.
At the system level, decisions will need to be made about which processes in the new system will be
carried out by the user and which can be computerized.
This design of the system architecture thus forms an input to the development of the software
requirements. A second architecture design process then takes place which maps the software
requirements to software components.
Code and test This could refer to writing code in a procedural language such as C# or Java, or could
refer to the use of an application-builder such as Microsoft Access. Initial testing to debug individual
software components would be carried out at this stage.
Integration The individual components are collected together and tested to see if they meet the
overall requirements. Integration could be at the level of software where different software
components are combined, or at the level of the system as a whole where the software and other
components of the system such as the hardware platforms and networks and the user procedures are
brought together.
Qualification testing The system, including the software components, has to be tested carefully to
ensure that all the requirements have been fulfilled.
Installation This is the process of making the new system operational. It would include activities like
setting up standing data(suchaspayrolldetailsforemployeesifthiswereapayrollsystem).Itwouldalso
include setting system parameters, installing the software onto the hardware platforms and user
training.
Acceptance support This is the resolving of problems with the newly installed system, including the
correction of any errors that might have crept into the system and any extensions and improvements
that are required. It is possible to see software maintenance as a series of minor software projects. In
many environments, most software development is in fact maintenance.
Distinguishing different types of project is important as different types of task need different project
approaches.
Objective-driven projects: a general objective or problem is defined, and there are several different ways in
which that objective could be reached. The project teams have freedom to select what appears to be the most
appropriate approach.
Stakeholders:
These are people who have as take or interest in the project in general, they could be users / clients or
Developers / implementers. They could be:
Different stake holders may have different objectives. Project leader need to define common project
objectives using ‘Theory W’ (win-win).
Setting Objectives:
Informally, the objective of a project can be defined by completing the statement: The project will be
regarded as a success “if” Rather like post-conditions for the project, Focus on what will be put in
place, rather than how activities will be carried out.
e.g. ‘a new payroll application will be operational by 4th April’ not ‘design and code a new payroll application’
Overall authority over the project is often termed as project steering committee or project management
board. The project manager runs the project on a day-to-day basis, but regularly reports to the steering
committee. Roles: Setting, monitoring and modifying objectives.
The project manager runs the project on a day-to-day basis, but regularly reports to the steering committee.
Sub-objectives and goals: A goal can be allocated to an individual. Individual may have the capability of
achieving goal, but not the objective on their own. A more appropriate goal or sub objective for the software
developers would be to keep development costs within a certain budget.
For e.g.
Objective – user satisfaction with software product,
Analyst goal–accurate requirements and
Developer goal – software that is reliable
A–Achievable, that is, it is within the power of the individual or group concerned to meet the target
R–Relevant, the objective must relevant to the true purpose of the project
T–Time constrained, there is defined point in time by which the objective should be achieved
1. Specific
There are a number of different ways in which SMART objectives can be set, one method is to start by
identifying what you want the individual to do or achieve that reflects both the departmental or team
objectives.
2. Measurable
Having identified what needs to be achieved and having written this as a statement (in the box above) you
then apply the SMART criteria to it.
3. Achievable
This is where you need to consider the context, abilities etc. of the individual that you are expecting to do this
work. Is it something that they would be able to do? It may be that the individual would need support in the
form of resources, training/development etc. in order to achieve the objective set.
4. Relevant
Double check that the statement you are now crafting reflects both what is needed by the department and fits
in with the expectations of the individual as described in their job summary/ job description.
5. Time Constrained
A deadline date or time when the objective will be accomplished or completed is necessary and must be
included so as to make the objective measurable. A deadline helps to create the necessary urgency, prompts
action and focuses the minds of those who are accountable for the commitments that they have made through
the objectives.
Measures of effectiveness
How do we know that the goal or objective has been achieved? By a practical test, that can be objectively
assessed. E.g. For user satisfaction with software product:
- Repeat business–they buy further products from us
- Number of complaints – if low etc.
- Performance Measurement: Measure reliability using MTBF (Mean Time between Failures).
Business Case:
Its objective is to provide a rationale for the project by showing that the benefits of the project outcomes will
exceed the costs of development, implementation and operation.
Business case may contain: Introduction and background to the proposal, the proposed project, the market,
organizational and operational infrastructure, the benefits, outline implementation plan, costs, the financial
case, risks and management plan.
Strategic and operational assessment carried by an organization on behalf of customer is called portfolio
management. Project portfolio management provides an overview of all the projects that an organization is
undertaking or is considering. It prioritizes the allocation of resources to projects and decides which new
projects should be accepted and which existing ones should be dropped.
It also includes:
- Identifying which project proposals are worth implementation
- Assessing the amount of risk of failure that a potential project has
- Deciding how to share limited resources, including staff time and finance between projects
- Being aware of the dependencies between projects
- Ensuring that projects do not duplicate work
- Ensuring that necessary developments have not been in advertently been missed.
An organization should record in a single repository detail of all current projects. A decision will be needed
about whether projects of all types are to be included.
The projects can be divided into new product developments, renewable projects and information system
projects.
Once the portfolio has been established, more detailed costing of projects can be recorded. The value that
managers hope will be generated by each project can also be recorded.
This information can be the basis for them or a rigorous screening of new projects.
The performance of the portfolio can be tracked by high-level managers on a regular basis. Some projects
could potentially be profitable but could also be risky.
Other projects could have modest benefits, such as those cutting costs by automating processes, but have
fewer risks.
The portfolio ought to have a carefully thought – out balance between the two types of project.
Project Evaluation:
Project evaluation is a step by step process of collecting, recording and organizing information about project
results, short - term outputs (immediate results of activities or project deliverables) long term outputs
(changes in behavior , practice or policy resulting from the result.
Technical assessment of a proposed system evaluates functionality against available Hardware and Software.
Limitations:
• Nature of solutions produced by strategic information systems plan
• Cost of solution. Hence undergoes cost -benefit analysis.
Comparing the expected costs of development and operation of the system with its benefits. Cost
benefit analysis comprises of two steps:
Step-1: identifying and estimating all of the costs and benefits of carrying out the project.
Step-2: expressing these costs and benefits in common units.
Step-1: It includes Development cost of system, operating cost of system and benefits obtained by system.
When new system is developed by the proposed system, then new system should reflect the above three as
same as proposed system.
Example: sales order processing system which gives benefit due to use of new system.
It considers the timing of the costs and benefits and the benefits relative to the size of the investment.
Common method for comparing projects on the basic of their cash flow forecasting.
1) Net profit
2) Payback Period
3) Return on investment
4) Net present Value
5) Internal rate of return
It ignores any benefit that occurs after payback period; therefore it does not measure profitability.
Example:
Calculate ROI for project1.
Answer: Total investment=1,00,000
Net profit = 50,000
Total no. of years=5
Average annual profit =50,000/5=10,000
ROI=(10,000/1,00,000)*100=10%
(4) Net present value (NPV):
• Discounted Cash Flow (DCF) is a cash flow summary adjusted to reflect the time value of money. DCF can
be an important factor when evaluating or comparing investments, proposed actions, or purchases. Other
things being equal, the action or investment with the larger DCF is the better decision. When discounted cash
flow events in a cash flow stream are added together, the result is called the Net Present Value (NPV).
• When the analysis concerns a series of cash inflows or outflows coming at different future times, the series is
called a cash flow stream. Each future cash flow has its own value today (its own present value). The sum of
these present values is the Net Present Value for the cash flow stream.
• The size of the discounting effect depends on two things: the amount of time between now and each future
payment (the number of discounting periods) and an interest rate called the Discount Rate.
• The example shows that:
• As the number of discounting periods between now and the cash arrival increases, the present value decreases.
• As the discount rate (interest rate) in the present value calculations increases, the present value decreases.
Year Cash-flow Discount factor (discount rate 10%) Discounted cash flow
0 -1,00,000 1.0000 -1,00,000
1 10,000 0.9091 9,901
2 10,000 0.8264 8,264
3 10,000 0.7513 7,513
4 20,000 0.6830 13,660
5 1,00,000 0.6209 62,090
NPV 618
Management, in general, involves setting objectives for a system and then monitoring the
performance of the system.
This will involve the local managers in data collection.
data processing will be needed to transform this raw data into useful information
Effective decision making
• Ability to negotiate and influence the organization and the project management team
• Guidelines:
- focus on goals to be served
- follow a decision making process
- study the environment factors
- develop personal qualities
- simulate team creativity
- manage opportunity
Risk Evaluation
Risk identification and ranking
In any project evaluation we should identify the risk and quantify their effects.
One approach is to construct a project risk matrix utilizing a checklist of possible risks and
classifying risks according to their relative importance and likelihood.
– Importance and likelihood need to be separately assessed
– We might be less concerned with something that, although serious, is very unlikely to
occur than with something less serious that is almost certain.
The project risk matrix may be used as a way of evaluating projects (those with high risks being less
favored) or as a means of identifying and ranking the risks for a specific project.
Program initiation
• Program initiation is the first step in Strategic Program Management. It involves defining the
program objectives, identifying the strategic fit, and understanding the stakeholders. During
this phase, it is essential to assess the feasibility and alignment of the program with the
organization's strategic priorities.
Program planning
• Once the program is started, a comprehensive plan is developed to guide its execution. This
involves creating a program roadmap that outlines the program's major milestones,
deliverables, and dependencies.
Program execution
• During the program execution phase, the focus shifts to managing program resources,
monitoring progress, and addressing risks and issues.
• Project Resource management involves allocating the necessary personnel, budget, and
equipment to individual projects within the program.