Software Engineering and Project Management BCS501
Software Engineering and Project Management BCS501
BCS501)
MODULE-4
INTRODUCTION TO SOFTWARE PROJECT MANAGEMENT
1. Software Project Management is an art & Science of planning & leading software
Projects from ideas to reality.
3. Project management is the discipline of defining and achieving targets while optimizing
the new resources (time, money, people, materials, energy, space , etc.) over the course of
a project (a set of activities of finite duration).
4. Project management involves the planning, monitoring, and control of people, process,
and events that occur during software development.
Everyone manages, but the scope of each person’s management activities varies according his or
her role in the project.
Software needs to be managed because it is a complex undertaking with a long duration time.
Managers must focus on the fours P’s to be successful (people, product, process, and
project).
A project plan is a document that defines the four P’s in such a way as to ensure a cost effective,
high quality software product.
The only way to be sure that a project plan worked correctly is by observing that a high-quality
product was delivered on time and under budget.
Page 1
SOFTWARE ENGINEERING AND PROJECT MANGEMENT (
BCS501)
The Software Development life cycle is a methodology that also forms the framework for
planning and controlling the creation, testing, and delivery of an information system.
The software development life cycle concept acts as the foundation for multiple different
development and delivery methodologies, such as the Hardware development life -cycle and
software development life -cycle . While Hardware development life -cycle deal specially with
hardware and Software development life -cycle deal with software, a systems development life -
cycle differs from each in that it can deal with any combination of hardware and software , as a
system can be composed of hardware only , software only, or a combination of both.
o People
o Process
o Product
o Technology
Page 2
SOFTWARE ENGINEERING AND PROJECT MANGEMENT (
BCS501)
The triangle illustrates the relationship between three primart forces in a project. Time is the
available time to deliver the project. Cost represents the amount of money or resources available
and quality represents the fit-to-purpose that the project must achieve to be a scuccess.
Conclusion
Effective software project management is essential due to the inherent complexities and
challenges of software development. The key areas outlined require diligent attention and
management to ensure project success. The statistics provided illustrate the high stakes involved
and the substantial impact that good project management can have on the success rates of
software projects. By focusing on these areas, businesses can significantly improve their chances
of delivering successful projects that meet deadlines, stay within budget, and satisfy quality
standards.
WHAT IS A PROJECT:
The definition of a project as being planned assume that to a large extent we can
determine how we are going to carry out a task before we start. There may be some projects
of an exploratory nature where this might be quite hard. Planning is in essence thinking
carefully about something before you do it and even in the case of uncertain projects this is
worth doing as long as it is accepted that the resulting plans will have provisional and
speculative elements. Other activities, concerning, for example, to routine maintenance,
might have been performed so many times that everyone involved knows exactly what needs
to be done. In these cases, planning hardly seems necessary, although procedures might need
to be documented to ensure consistency and to help newcomers to the job.
Here are some definitions of ‘project’. No doubt there are other ones: for example,
‘Unique process, consisting of a set of coordinated and controlled activities with start and finish
dates, undertaken to achieve an objective conforming to specific requirements, including
constraints of time, cost and resources.
Page 5
SOFTWARE ENGINEERING AND PROJECT MANGEMENT (
BCS501)
There is a hazy boundary between the non-routine project and the routine job. The first time you
do a routine task, it will be like a project. On the other hand, a project to develop a system similar
to previous ones you have developed will have a large element of the routine.
Characteristics of Project:
Non-routine tasks are involved
Planning is required
Specific objectives are to be met or a specified product is to be created
The project has a pre-determined time span
Work is carried out for someone other than yourself
Work involves several specialism’s
Work is carried out in several phases
The resources that are available for use on the project are constrained
The project is large or complex.
The project that employs 20 developers is likely to be disproportionately more difficult than one
with only 20 staff because of the need for additional coordination.
Many of the techniques of general project management are applicable to software project
management. One way of perceiving software project management is as the process of
making visible that which is invisible.
Invisibility: When a physical artifact such as a bridge or road is being constructed the progress
being made can actually be seen. With software, progress is not immediately visible.
Page 6
SOFTWARE ENGINEERING AND PROJECT MANGEMENT (
BCS501)
Complexity: 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 individuals can be inconsistent.
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.
An example for infrastructure project is construction of a flyover. An example for a software
project is development of a payroll management system for an organization using Oracle l0g
and Oracle Forms 10G.
CONTRACT MANAGEMENT
ln-house projects are where the users and the developers of new software work for the
same organization.
However, increasingly organizations contract out ICT development to outside
developers. Here, the client organization will often appoint a 'project manager' to
supervise the contract who will delegate many technically oriented decisions to the
contractors.
Thus, the project manager will not worry about estimating the effort needed to write
individual software components as long as the overall project is within budget and on
time. On the supplier side, there will need to be project managers who deal with the
more technical issues.
Contract management is the process of managing the creation, execution, and analysis
of contracts to maximize operational and financial performance and minimize risk.
It involves various activities from the initial request for a contract, through negotiation,
execution, compliance, and renewal. Effective contract management ensures that all
parties to a contract fulfill their obligations as efficiently as possible.
Page 7
SOFTWARE ENGINEERING AND PROJECT MANGEMENT (
BCS501)
Planning:
If the feasibility study produces results which indicate that the prospective project
appears viable, 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.
SOFTWARE ENGINEERING AND PROJECT MANGEMENT (
BCS501)
Project Execution:
The project can now be executed. The execution of a project often contains design
and implementation subphases. The same is illustrated in Figure 1.2 which shows
the typical sequence of software development activities recommended in the
international standard ISO 12207.
Requirements Analysis:
This starts with requirement elicitation or requirement gathering which
establishes what the users require of the system that the project is to implement.
Some work along these lines will almost certainly have been carried out when the
project was evaluated, but now the original information obtained needs to be
updated and supplemented.
Specification:
Detailed documentation of what the proposed system is to do.
SOFTWARE ENGINEERING AND PROJECT MANGEMENT (
BCS501)
Design:
A design has to be drawn up which meets the specification. This design will be in
two stages. One will be the external or user design concerned with the external
appearance of the application. The other produces the physical design which
tackles the way that the data and software procedures are to be structured
internally.
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.
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.
Implementation/ Installation:
Some system development practitioners refer to the whole of the project after
design as ‘implementation’ (that is, the implementation of the design) while
others insist that the term refers to the installation of the system after the software
has been developed.
Acceptance Support:
Once the system has been implemented there is a continuing need for the
correction of any errors that may have crept into the system and for extensions
and improvements to the system. Maintenance and support activities may be seen
as a series of minor software projects.
A plan for an activity must be based on some idea of a method of work. To take a simple
example, if you were asked to test some software, even though you do not know anything about
the software to be tested, you could assume that you would need to:
Analyze the requirements for the software
Devise and write test cases that will check that each requirement has been satisfied
Create test scripts and expected results for each test case
Compare the actual results and the expected results and identify discrepancies
While a method relates to a type of activity in general, a plan takes that method (and perhaps
others) and converts it to real activities, identifying for each activity:
In workplaces there are systems that staff have to use if they want to do
something, such as recording a sale. However, use of a system is increasingly
voluntary, as in the case of computer games. Here it is difficult to elicit precise
requirements from potential users as we could with a business system. What the
game will do will thus depend much on the informed ingenuity of the developers,
along with techniques such as market surveys, focus groups and prototype
evaluation.
A traditional distinction has been between information systems which enable staff
to carry out office processes and embedded systems which control machines. A
stock control system would be an information system. An embedded, or process
control, system might control the air conditioning equipment in a building. Some
systems may have elements of both where, for example, the stock control system
also controls an automated warehouse.
Outsourced Projects
While developing a large project, it makes good commercial sense for a
company to outsource some parts of its work to other companies.
For example, A company may consider outsourcing as a good option, it if
feels that it does not have sufficient expertise to develop some specific
parts of the product or if it determines that some parts can be developed
cost-effectively another company.
Object-driven development
Projects may be distinguished by whether their aim is to produce or to meet
certain objective.
Many software projects have two stages, First is an object-driven project
resulting in recommendations which identify the need for a new software
SOFTWARE ENGINEERING AND PROJECT MANGEMENT (
BCS501) system and next stage is a project actually to create the software product.
STAKEHOLDERS
These are people who have a stake or interest in the project. It is important that they be
identified as early as possible, because you need to set up adequate communication channels
with them right from the start. The project leader also has to be aware that not everybody who is
involved with a project has the same motivation and objectives. The end-users might, for
instance, be concerned about the ease of use of the system while their managers might be
interested in the staff savings the new system will allow.
Boehm and Ross proposed a ‘Theory W’ of software project management where the
manager concentrates on creating the role and format situations where all parties benefit from a
project and therefore have an of communication interest in its success. (The 'W' stands for 'win-
win'.)
Stakeholders might be internal to the project team, external to the project team but in the
same organization, or totally external to the organization.
Internal to the project team: This means that they will be under the direct managerial
control of the project leader.
External to the project team but within the same organization: For example, the
project leader might need the assistance of the information management group in order
to add some additional data types to a database or the assistance of the users to carry out
systems testing. Here the commitment of the people involved has to be negotiated.
External to both the project team and the organization: External stakeholders may be
customers (or users) who will benefit from the system that the project implements or
contractors who will carry out work for the project. One feature of the relationship with
these people is that it is likely to be based on a legally binding contract.
Different types of Stakeholders may have different objectives and one of the jobs of the
successful project leader is to recognize these different interests and to be able to reconcile them.
It should therefore come as no surprise that the project leader needs to be a good communicator
and negotiator.
SETTING OBJECTIVES
The objectives should define what the project team must achieve for project success.
SOFTWARE ENGINEERING AND PROJECT MANGEMENT (
Objectives focus on the desired outcomes of the project rather than the tasks within it-
BCS501)
they are the ‘post-conditions’ of the project.
Objectives could be set of statements following the opening words ‘the project will be a
success if ….’ .
To have a successful software project, the manager and the project team members must
know what will constitute success. This will make them concentrate on what is essential
to project success.
There may be several sets of users of a system and there may be several different groups
of specialists involved its development. There is a need for well-defined objectives that
are accepted by all these people. Where there is more than one user group, a project
authority needs to be identified which has overall authority over what the project is to
achieve.
This authority is often held by a project steering committee (or project board or project
management board) which has overall responsibility for setting, monitoring and
modifying objectives. The project manager still has responsibility for running the project
on a day-to-day basis, but has to report to the steering committee at regular intervals.
Only the steering committee can authorize changes to the project objectives and
resources.
Setting objectives can guide and motivate individuals and groups of staff. An effective
objective for an individual must be something that is within the control of that individual. An
objective might be that the software application to be produced must pay for itself by reducing
staff costs over two years. As an overall business objective this might be reasonable. For
software developers it would be unreasonable as, though they can control development costs,
any reduction in operational staff costs depends not just on them but on the operational
management after the application has ‘gone live’. What would be appropriate would be to set a
goal or sub-objective for the software developers to keep development costs within a certain
budget.
Thus, objectives will need be broken down into goals or sub-objectives. Here we say that
in order to achieve the objective we must achieve certain goals first. These goals are steps on the
way to achieving an objective, just as goals scored in a football match are steps towards the
objective of winning the match.
The mnemonic SMART is sometimes used to describe well defined objectives:
Specific: Effective objectives are concrete and well defined. Vague aspirations such as
‘to improve customer relations’ are unsatisfactory. Objectives should be defined in such
a way that it is obvious to all whether the project has been successful or not.
SOFTWARE ENGINEERING AND PROJECT MANGEMENT (
Measurable: Ideally there should be measures of effectiveness which tell us how
BCS501)
successful the project has been. For example, ‘to reduce customer complaints’ would be
more satisfactory as an objective than ‘to improve customer relations’. The measure
can, in some cases, be an answer to simple yes/no questions, e.g. ‘Can we install the
new software by 1 November 2011?’
Achievable: It must be within the power of the individual or group to achieve the
objective.
Relevant: The objective must be relevant to the true purpose of the project.
Time constrained: There should be a defined point in time by which the objective
should have been achieved.
Measures of effectiveness
BUSINESS CASE
Most projects need to have a justification or business case: the effort and expense of
pushing the project through must be seen to be worthwhile in terms of the benefits that
will eventually be felt.
The quantification of benefits will often require the formulation of a business model
which explains how the new application can generate the claimed benefits.
Any project plan must ensure that the business case is kept intact. For example:
The development costs are not allowed to rise to a level which threatens to exceed the
value of benefits.
The features of the system are not reduced to a level where the expected benefits cannot
be realized.
The delivery date is not delayed so that there is an unacceptable loss benefit.
The project plan should be designed to ensure project success preserving the business
case for the project.
Different stakeholders have different interests, some stakeholders in a project might see
it as a success while others do not.
The project objectives are the targets that the project team is expected to achieve—
They are summarized as delivering:
SOFTWARE ENGINEERING AND PROJECT MANGEMENT (
BCS501) The agreed functionality
To the required level of quality
In time
Within budget
A project could meet these targets but the application, once delivered could fail to meet
the business case. A computer game could be delivered on time and within budget, but
might then not sell.
In business terms, the project is a success if the value of benefits exceeds the costs.
A project can be a success on delivery but then be a business failure, On the other hand,
a project could be late and over budget, but its deliverables could still, over time,
generate benefits that outweigh the initial expenditure.
The possible gap between project and business concerns can be reduced by having a
broader view of projects that includes business issues.
Technical learning will increase costs on the earlier projects, but later projects benefit
as the learnt technologies can be deployed more quickly cheaply and accurately.
Customer relationships can also be built up over a number of projects. If a client has
trust in a supplier who has done satisfactory work in the past, they are more likely to
use that company again.
MANAGEMENT:
Management involves following activities:
Planning - deciding what is to be done;
Organizing - making arrangements;
Staffing - selecting the right people for the job etc.;
Directing - giving instructions;
Monitoring - checking on progress;
Controlling - taking action to remedy hold-ups;
Innovating - coming up with new solutions;
Representing - liaising with clients, users, developer, suppliers and
other stakeholders.
SOFTWARE ENGINEERING AND PROJECT MANGEMENT (
BCS501)
Much of the project manager’s time is spent only in three activities, i.e. Project Planning,
Monitoring and control. This time period during which these activities are carried out is
indicated in Fig 1.5.
It shows that project management is carried out over three well-defined stages or processes
irrespective of the methodology used.
In the Project initiation stage, an initial plan is made. As a project starts, the project is
monitored and controlled to process as planned. Initial plan is revised periodically to
accommodate additional details and constraints about the project as they become available.
While carrying out project monitoring and control activities, a project manager may sometimes
find it necessary to change the plan to cope with specific situations and make the plan more
accurate as more project data becomes available.
MANAGEMENT CONTROL
Management involves setting objectives for a system and monitoring the performance of
the system.
In the above Fig, local mangers involve in data collection. Bare details such as “location X
has processed 2000 documents” may not be useful to higher management.
Data processing is required to transform this raw data into useful information. This might be
in such forms as “Percentage of records Processed”, average documents per day per person”,
SOFTWARE ENGINEERING AND PROJECT MANGEMENT (
BCS501)
and estimated completion date”.
In this example , the project management might examine the “estimated completion date” for
completing data transfer for each branch. They are comparing actual performance with
overall project objectives.
They might find that one or two branches will fail to complete the transfer of details in time.
It can be seen that a project plan is dynamic and will need constant adjustment during the
execution of the project. A good plan provides a foundation for a good project, but is nothing
without intelligent execution.
Software is not developed from scratch any more, Software development projects are based
on either tailoring some existing product or reusing certain pre-built libraries both will
maximize code reuse and compression of project durations.
Other goals include facilitating and accommodating client feedback and client feedbacks and
customer participation in project development work and incremental delivery of the product
with evolving functionality.
Some Important difference between modern management practices and traditional practices are:
Planning Incremental Delivery: Earlier, projects were simpler and therefore more
predictable than the present-day projects. In those days, projects were planned with
sufficient detail much before the actual project execution started. After the project
initiation, monitoring and control activities were carried out to ensure that the project
execution proceeded as per plan, Now, the projects are required to be completed over a
much shorter duration, and rapid application development and deployment are considered
key strategies.
Instead of making a long-term project completion plan, the project manger now plans all
incremental deliveries with evolving functionalities. This type of project management is
often called extreme project management. Extreme project management is highly
flexible approach that concentrates on human side of project management(e.g. managing
project stakeholders).
SOFTWARE ENGINEERING AND PROJECT MANGEMENT (
Quality Management: Customer awareness about product quality has increased
BCS501)
significantly. The key responsibility of a project manager now includes assessment of
project progress and tracking the quality of all intermediate artifacts.
Change Management: Earlier, when the requirements were signed off by the customer,
any changes to the requirements were rarely entertained. Customer suggestions are now
actively solicited and incorporated throughout the development process. To facilitate
customer feedback, incremental delivery models are popularly being used. Product
development is being carried out through a series of product versions implementing
increasingly greater functionalities. The Project manager plays a key role in product base
lining and version control. This has made change management a crucial responsibility of
the project manager. Change Management is also known as configuration management.