Lec1 PDF

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

Managing Software Projects

Introduction to Software Project


Management

Lecture 1
What is software?

• Computer programs and associated


documentation
• Software products may be developed for a
particular customer or may be developed for a
general market
• Software products may be
– Generic - developed to be sold to a range of different
customers
– Bespoke (custom) - developed for a single customer
according to their specification
What is software engineering?

• Software engineering is an engineering discipline


which is concerned with all aspects of software
production
• Software engineers should adopt a systematic and
organised approach to their work and use
appropriate tools and techniques depending on the
problem to be solved, the development constraints
and the resources available
What is a software process?

• A set of activities whose goal is the


development or evolution of software
• Generic activities in all software processes are:
– Specification - what the system should do and its
development constraints
– Development - production of the software system
– Validation - checking that the software is what the
customer wants
– Evolution - changing the software in response to
changing demands
What is a software process model?
• A simplified representation of a software process,
presented from a specific perspective
• Examples of process perspectives are
– Workflow perspective - sequence of activities
– Data-flow perspective - information flow
– Role/action perspective - who does what
• Generic process models
– Waterfall
– Evolutionary development
– Formal transformation
– Integration from reusable components
What are the costs of software
engineering?
• Roughly 60% of costs are development costs,
40% are testing costs. For custom software,
evolution costs often exceed development
costs
• Costs vary depending on the type of system
being developed and the requirements of
system attributes such as performance and
system reliability
• Distribution of costs depends on the
development model that is used
What are software engineering methods?
• Structured approaches to software development which
include system models, notations, rules, design advice
and process guidance
• Model descriptions
– Descriptions of graphical models which should be produced
• Rules
– Constraints applied to system models
• Recommendations
– Advice on good design practice
• Process guidance
– What activities to follow
What are the attributes of good software?
• The software should deliver the required functionality and
performance to the user and should be maintainable,
dependable and usable
• Maintainability
– Software must evolve to meet changing needs
• Dependability
– Software must be trustworthy
• Efficiency
– Software should not make wasteful use of system resources
• Usability
– Software must be usable by the users for which it was designed
What are the key challenges facing
software engineering?
• Coping with legacy systems, coping with increasing
diversity and coping with demands for reduced delivery
times
• Legacy systems
– Old, valuable systems must be maintained and updated
• Heterogeneity
– Systems are distributed and include a mix of hardware and
software
• Delivery
– There is increasing pressure for faster delivery of software
Software Industry Challenges

Intervals
Costs Shrinking
Up Market
Expectations
Up
Complexity
Up Stockholders : ROI
Revenues Customers: Value
Down Users : Functionality & Quality

Need solutions that are


flexible, expansible, survivable,
sustainable, affordable and secure
8/14/19 Seton Hall University
The Solution
• Software Project Management.
– But let us define ‘Project’
– Then we will elaborate on project management
What is a Project? (Definition #1)

A project is a temporary
endeavour undertaken
to create a unique product,
service, or result

(Guide to the Project Management – Body of Knowledge,


the Project Management Institute, 3rd. Ed., 2004, p. 5)
What is a Project? (Definition #2)

A project is a sequence of unique,


complex and connected activities having
one goal or purpose that must be
completed by a specific time, within
budget and according to specification

(Robert Wysocki / Robert Beck Jr. / Daniel B. Crane: Effective Project


Management, John Wiley & Sons, 2002, p.65)
What is a Project? (Definition #3)

A project is a complex, nonroutine, one-


time effort limited by time, budget,
resources, and performance
specifications designed to meet
customer needs

(Clifford F. Gray / Erik W. Larson, Project Management:


The Managerial Process, 2. ed., p. 15)
What is a Project? (Definition #4)
A project is an endeavour in which
human, material and financial resources
are organized in a novel way, to
undertake a unique scope of work of
given specification, within constraints of
cost and time, so as to achieve unitary,
beneficial change, through the delivery of
quantified and qualitative objectives
(J.R. Turner, The Handbook of Project-Based Management: Improving
Processes for Achieving Your Strategic Objectives, Mcgraw Hill: New York,
1992)
What is a Project? (Definition #5)
• Projects are ad hoc, resource-
consuming activities used to
implement organizational strategies,
achieve enterprise goals and
objectives, and contribute to the
realization of the enterprise‘s mission

(David I. Cleland / Lewis R. Ireland, Project Management:


Design and Strategic Implementation, 4th ed., p. 10)
Elements of Projects
• Complex, one-time processes
• Limited by budget, schedule, and resources

• Developed to resolve a clear goal or set of


goals

• Customer-focused

1-17
General Project Characteristics (1/2)
• Ad-hoc endeavors with a clear life cycle

• Building blocks in the design and execution of organizational


strategies

• Responsible for the newest and most improved products,


services, and organizational processes

• Provide a philosophy and strategy for the management of


change

1-18
General Project Characteristics (2/2)
• Entail crossing functional and organization boundaries

• Traditional management functions of planning, organizing,


motivating, directing, and controlling apply

• Principal outcomes are the satisfaction of customer


requirements within technical, cost, and schedule constraints

• Terminated upon successful completion

1-19
Why are Projects Important?

1. Shortened product life cycles


2. Narrow product launch windows
3. Increasingly complex and technical products
4. Emergence of global markets
5. Economic period marked by low inflation

1-20
Project Life Cycles
Man Hours

Conceptualization Planning Execution Termination

1-21
Project Life Cycles and Their Effects
Client Interest
Project Stake

Resources

Creativity

Uncertainty

Conceptualization Planning Execution Termination

1-22
Determinants of Project Success

Client
Budget Acceptance

Success

Schedule Performance

1-23
Six Criteria for Software Project
Success
• System quality
• Information quality
• Use
• User satisfaction
• Individual Impact
• Organizational impact

1-24
Four Dimensions of Software Project
Success
Importance

4
Preparing for
The Future
3
Business
2 Success
1 Impact on
Project Customer
Efficiency

Project Time
Completion

1-25
What are Subprojects?

Subprojects are smaller, more manageable


components of larger, more complex projects

Subprojects have their own goals and outputs or


deliverables which together constitute the final
deliverable. Subprojects have, analogous to the
main project in which they are integrated, their
own scope, schedules, costs, human resources,
risks etc.

Subprojects are comprised of project team members and are headed by subproject
managers who, similar to the project manager, must have excellent decision-making,
communication and other requisite skills, and be in a position to manage the
implementation of the subproject work effectively and efficiently.
What is a Programme?
Afforestation

E X AMP LE S
A programme is basically a group Primary Education Promotion
of related projects managed in Electrification
a coordinated way to obtain
benefits and control not Immunization
available from managing them

OF
Poverty Alleviation
individually
Privatization

P ROGRAMME S
Space Exploration
Project A Project D
Urban Regeneration
Programme
Project B Project E Water Resource Development
X
Weaponization
Project C Project F
Programmes & Projects: Similarities
ü Programmes and projects have goals and objectives which define their
purpose of existence

ü Programmes and projects have life-spans defining a starting and


ending point in time

ü Programmes and projects consume resources and necessarily incur a


cost

ü Programmes and projects require application of a methodo-logy and


must be managed properly to bolster their chances of success

ü Programmes and projects aim at helping organizations achieve their


mission and adding value to them.
Programmes & Projects: Differences
X Programmes may have multiple overarching goals whereas projects
have one prime goal

X A programme has a comparatively longer life-span, and obviously


costs more than the combination of all the projects which
constitute it

X A programme is inherently more complex than a constituting


project – it has a broader scope and may require extensive
coordination between its various constituting projects

X Whereas a project results in the creation of an output and is then


ended, a programme must integrate and maintain the
operationality of that output for a specified period of time
What is a Process?

A set of interrelated actions and


activities that are performed to
achieve a prespecified set of
products, results, or services.
Project vs Process
Project Process
• Take place outside the • Ongoing, day-to-day
process world activities
• Unique and separate from • Use existing systems,
normal organization work properties, and
capabilities

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.

1-31
Software Project Properties
• The product is intangible.
– Its hard to claim a bridge is 90% complete if there
is not 90% of the bridge there. It is easy to claim
that a software project is 90% complete, even if
there are no visible outcomes.
• We don’t have much experience.
– Software engineering is a new discipline, and so
we simply don’t have much understanding of how
to engineer large scale software projects.
Software Project Properties (Cont’d)
• Large software projects are often
“bespoke”(tailored).
– Most large software systems are one-off, with
experience gained in one project being of little
help in another.
• The technology changes very quickly.
– Most large software projects employ new
technology; for many projects, this is the raison
d’etre.
Software Project Management
• 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.
Software Project Management

• Goal of software project


management:
–enable a group of engineers to work
efficiently towards successful
completion of a software project.
Software Project Management
• Concerned with activities involved in ensuring
that software is delivered
– on time
– within the budget
– in accordance with the requirements
• Project management is needed because software
development is always subject to budget and
schedule constraints
– Set by the development organisation or the customer
Management activities
• Proposal writing
• Project planning and scheduling
• Project costing
• Project monitoring and reviews
• Personnel selection and evaluation
• Report writing and presentations
Why do software projects fail?
• People begin programming before they understand
the problem
– Everyone likes to feel that they’re making progress
– When the team starts to code as soon as the project
begins, they see immediate gains
– When problems become more complex (as they always
do!), the work gets bogged down
– In the best case, a team that begins programming too soon
will end up writing good software that solves the wrong
problem

38
Why do software projects fail?
• The team has an unrealistic idea about how
much work is involved.
– From far away, most complex problems seem
simple to solve
– Teams can commit to impossible deadlines by
being overly optimistic and not thinking through
the work
– Few people realize the deadline is optimistic until
it’s blown

39
Why do software projects fail?
• Defects are injected early but discovered late.
– Projects can address the wrong needs
– Requirements can specify incorrect behavior
– Design, architecture and code can be technically flawed
– Test plans can miss functionality
– The later these problems are found, the more likely they
are to cause the project to fail

40
Why do software projects fail?
• Programmers have poor habits – and they don’t feel
accountable for their work.
– Programmers don’t have good control of their source code
– Code written by one person is often difficult for another
person to understand
– Programmers don’t test their code, which makes
diagnosing and fixing bugs more expensive
– The team does not have a good sense of the overall health
of the project.

41
Why do software projects fail?
• Managers try to test quality into the software.
– Everyone assumes that the testers will catch all of the
defects that were injected throughout the project.
– When testers look for defects, managers tell them they are
wasting time.
– When testers find defects, programmers are antagonized
because they feel that they are being personally criticized.
– When testers miss defects, everyone blames them for not
being perfect.

42
How can we make sure that our projects
succeed?
• Make sure all decisions are based on openly shared
information
– It’s important to create a culture of transparency, where
everyone who needs information knows where to find it
and is comfortable looking at it.
– All project documents, schedules, estimates, plans and
other work products should be shared with the entire
team, managers, stakeholders, users and anyone else in
the organization who wants them.
– Major decisions that are made about the project should be
well-supported and explained.

43
How can we make sure that our projects
succeed?
• Don’t second-guess your team members’
expertise
– Managers need to trust team members.
– Just because a manager has responsibility for a
project’s success, it doesn’t mean that he’s more
qualified to make decisions than the team
members.
– If you don’t have a good reason to veto an idea,
don’t.

44
How can we make sure that our projects
succeed?
• Introduce software quality from the very
beginning of the project
– Review everything, test everything.
– Use reviews to find defects – but don’t expect the
review to be perfect.
– Use reviews to gain a real commitment from the
team.
– It’s always faster in the long run to hold a review
than it is to skip it.

45
How can we make sure that our projects
succeed?
• Don’t impose an artificial hierarchy on the project
team
– All software engineers were created equal.
– A manager should not assume that programming is more
difficult or technical than design, testing or requirements
engineering.
– Managers should definitely not assume that the
programmer is always right, or the tester is always raising
false alarms.

46
How can we make sure that our projects
succeed?
• Remember that the fastest way through the project
is to use good engineering practices
– Managers and teams often want to cut important tasks –
especially estimation, reviews, requirements gathering and
testing.
– If it were faster to build the software without these
practices, we would never use them.
– Every one of these practices is about saving time and
increasing quality by planning well and finding defects
early. Cutting them out will cost time and reduce quality.

47
How can we make sure that our
projects succeed?
• Project Managers should show the impacts of
theirs decision to senior managers since:
– Decisions are frequently made based on gut
feelings instead of objective analysis.
– The people making decisions about the project
need to understand the details.
– Show senior managers that improving project
management practices will help them meet their
goals.

You might also like