Вы находитесь на странице: 1из 88

Software Engineering and

Project Management
Evolving Role of Software
• It’s a product and vehicle for delivering
product.
– As a product deliver computing potential
embodied by a network of computers

– As the vehicle, software acts as the basis for the


control of the computer (operating systems), the
communication of information (networks), and the
creation and control of other programs (software
tools and environments).
Evolving Role of Software
• As per the IBM report, “31% of the project get
cancelled before they are completed, 53%
overrun their cost estimates by an average of
189% and for every 100 projects, there are 94
restarts”.
Evolving Role of Software
Evolving Role of Software
Evolving Role of Software
• Managers and Technical Persons are asked:

– Why does it take so long to get the program


finished?
– Why are costs so high?
– Why can not we find all errors before release?
– Why do we have difficulty in measuring progress
of software development?
Factors Contributing to the Software
Crisis
• Larger problems

• Lack of adequate training in software


engineering

• Increasing skill shortage

• Low productivity improvements.


Software
• Software is
– instructions (computer programs) that when
executed provide desired features, function, and
performance;

– data structures that enable the programs to


adequately manipulate information; and

– documents that describe the operation and use of


the programs.
Software Characteristics
1.Software is developed or engineered; it is
not manufactured in the classical sense.

2.Software doesn't “wear out”.

3.Although the industry is moving towards


component-based construction, most
software continues to be custom built.
Failure Curve for Hardware
Failure Curves for Software
Software Engineering
(1)The application of a systematic, disciplined,
quantifiable approach to the development,
operation, and maintenance of software; that
is, the application of engineering to software.

(2) The study of approaches as in (1).


The Changing Nature of Software
• System Software.
• Application Software.
• Engineering/ Scientific Software.
• Embedded Software.
• Product-line Software.
• Web-applications.
• Artificial intelligence Software.
• Open-world Computing.
• Net Sourcing.
The Changing Nature of Software
• Open world computing—pervasive, distributed
computing
• Ubiquitous computing—wireless networks
• Net sourcing—the Web as a computing engine
• Open source—”free” source code open to the
computing community
• Also …
– Data mining
– Grid computing
– Cognitive machines
– Software for nanotechnologies
Software Myths
(Management Perspectives)
• Management may be confident about good
standards and clear procedures of the company.

• Company has latest computers and state-of the-art


software tools, so we shouldn’t worry about the
quality of the product.

• Addition of more software specialists, those with


higher skills and longer experience may bring the
schedule back on the track!
Software Myths
(Management Perspectives)

• Software is easy to change

• Computers provide greater reliability than the


devices they replace
Software Myths
(Customer Perspectives)

• A general statement of objectives is sufficient to


get started with the development of software.
Missing/vague requirements can easily be
incorporated/detailed out as they get concretized.

• Software with more features is better software

• Software can work right the first time


Software Myths
(Developers Perspectives)

• Once the software is demonstrated, the job is


done.

• Software quality can not be assessed before


testing.

• The only deliverable for a software development


project is the tested code.
Software Myths
(Developers Perspectives)

• Aim is to develop working programs

• Software engineering will make us create


voluminous and unnecessary documentation and
will invariably slow us down
A Layered Technology

Tools

Methods

Process Model

A “Quality” Focus
Software Processes
Product and Process
• Product: What is delivered to the customer, is called a
product. It may include source code, specification
document, manuals, documentation etc. Basically, it
is nothing but a set of deliverables only.

• Process: Process is the way in which we produce


software. It is the collection of activities that leads to
(a part of) a product. An efficient process is required
to produce good quality products.

– If the process is weak, the end product will undoubtedly


suffer, but an obsessive over reliance on process is also
dangerous.
Product and Process
A software process is set of activities and associated results
which lead to the production of the software product. The
process that deals with the technical and management issues of
the software development is called Software Process.
A process model specifies a general process, which is
“optimum” for a class of projects. That is in the situations for
which the model is applicable, using the process model as the
project’s process will lead to the goal of developing software
with high Quality & Performance. A process model is
essentially a compilation of best practices into a “recipe” for
success in the project.
In other words, a process is a means to reach the goals of high
quality, low cost, and low cycle time, and a process model
provides a process structure that is well suited for a class of
projects.
A Process Framework
Process Framework
Framework Activities

Work Tasks
Work Products
Milestones & Deliverables
QA checkpoints

Umbrella Activities
Framework Activities
• Communication
• Planning
• Modeling
– Analysis of Requirements
– Design
• Construction
– Code generation
– Testing
• Deployment
Umbrella Activities
• Software Project Management
• Formal Technical Reviews
• Software Quality Assurance
• Software Configuration Management
• Work Product Preparation and Production
• Reusability Management
• Measurement
• Risk Management
Adapting a Process Model
– the overall flow of activities, actions, and tasks and the
interdependencies among them
– the degree to which actions and tasks are defined within each
framework activity
– the degree to which work products are identified and required
– the manner which quality assurance activities are applied
– the manner in which project tracking and control activities are
applied
– the overall degree of detail and rigor with which the process is
described
– the degree to which the customer and other stakeholders are
involved with the project
– the level of autonomy given to the software team
– the degree to which team organization and roles are prescribed
Three R’s of Software Engineering
Three R’s of Software Engineering
• Software evolution and maintenance is the major
part of Software development process
• Maintenance costs are often much more than
development cost for large scale software
• In software evolution process, three techniques
are often used
– Reuse
– Reengineering
– Retooling
Reuse
• Must build software faster.
• The challenge of faster development is compounded
by shrinking human resources and increasing demand
for improved software quality.
• To meet this challenge software must be constructed
from the reusable components.
• Reuse is not a new concept nor gives outline for its
major technical and management challenges.
• Yet with reuse, time frame to develop a software
shrinks from years to months.
Reuse
• OO development can lead to the design and
implementation of inherently reusable program
components
• It is required that these components must be defect
free.
• May be formal methods will play a role in
development of components that are proven correct
prior to their entry in a component library.
Reuse
• Even if the technological problems associated with
reuse are overcome, management and cultural
changes remains.
– Who will have the responsibility of creating reusable
components?
– Who will manage them?
– Who will bear the additional coast of development of
reusable components?
– What incentives will be provided to software engineers to
use them?
Reuse
– What are the risk associated with creating a reuse culture?
– How will developers of reusable components be
compensated?
– And many more......
• Still component reuse is the best way to meet the
software challenges in current scenario.
Software Reengineering
• Restructuring or rewriting part or all of a system
without changing its functionality
• Applicable when some (but not all) subsystems of a
larger system require frequent maintenance
• Reengineering involves putting in the effort to make
it easier to maintain
• The reengineered system may also be restructured
and should be redocumented
When do you decide to
Reengineer?
• When system changes are confined to one subsystem,
the subsystem needs to be reengineered

• When hardware or software support becomes


obsolete

• When tools to support restructuring are readily


available
Software Reengineering Process
Model
Software Reengineering Process
Model
• Inventory analysis
▪ storing active software applications by business criticality,
longevity, current maintainability, and other local criteria
▪ helps to identify reengineering candidates
• Document Restructuring options
▪ live with weak documentation
▪ update poor documents if they are used
▪ fully rewrite the documentation for critical systems
focusing on the "essential minimum"
Software Reengineering Process
Model
• Reverse engineering
▪ process of design recovery
▪ analyzing a program in an effort to create a representation
of the program at some abstraction level higher than source
code
• Code restructuring
▪ source code is analyzed and violations of structured
programming practices are noted and repaired
▪ revised code needs to be reviewed and tested
Software Reengineering Process
Model
• Data restructuring
▪ usually requires full reverse engineering
▪ current data architecture is dissected
▪ data models are defined
▪ existing data structures are reviewed for quality
• Forward engineering
▪ sometimes called reclamation or renovation
▪ recovers design information from existing source code
▪ uses this design information to reconstitute the existing
system to improve its overall quality or performance
Forward Engineering and
Reengineering

System Design and Ne w


specification implementation system

Forward engineering

Existing Understanding and Re-engineered


software system transformation system

Software re-engineering
Retooling
• To achieve first two R’s, we need third R – a new
generation of software tools.
• In retooling the software, one must remember the
mistakes of earlier software development approaches.
• Tools for next ten years will address all aspects of the
methods landscape.
• But they should emphasize reuse and reengineering.
Project Management
What Is a Project?
• A project is “a temporary endeavor undertaken to
create a unique product, service, or result”

• Operations is work done to sustain the business

• Projects end when their objectives have been


reached or the project has been terminated

• Projects can be large or small and take a short or


long time to complete
Examples of IT Projects
• A team of students creates a smart phone application
and sells it online
• A company develops a driverless car
• A small software development team adds a new
feature to an internal software application for the
finance department
• A college upgrades its technology infrastructure to
provide wireless Internet access across the whole
campus
Project Attributes
• A project
– has a unique purpose
– is temporary
– is developed using progressive elaboration
– requires resources, often from various areas
– should have a primary customer or sponsor
• The project sponsor usually provides the direction and
funding for the project
– involves uncertainty
Project and Program Managers
• Project managers work with project sponsors,
project team, and other people involved in a project to
meet project goals
• Program: group of related projects managed in a
coordinated way to obtain benefits and control not
available from managing them individually
• Program managers oversee programs; often act as
bosses for project managers
The Triple Constraint of Project
Management
The Triple Constraint of Project
Management
• Scope
– What work will be done as a part of project?
– What unique product, service or result does the customer
expect from the project?
– How will the scope be verified?
• Time
– How long should it take to complete the project?
– What is the project schedule?
– How will the team track actual schedule performance?
– Who can approve changes to the schedule?
The Triple Constraint of Project
Management
• Cost
– What should it cost to complete the project?
– What is the project’s budget?
– How will the cost be tracked?
– Who can authorized the changes to the budget?
What is Project Management?
• Project management is “the application of
knowledge, skills, tools and techniques to project
activities to meet project requirements”

• Project managers strive to meet the triple constraint


(project scope, time, and cost goals) and also
facilitate the entire process to meet the needs and
expectations of project stakeholders
Project Management Framework
Project Stakeholders
• Stakeholders are the people involved in or affected
by project activities
• Stakeholders include
– the project sponsor
– the project manager
– the project team
– support staff
– suppliers
– opponents to the project
Project Management Knowledge
Areas
• Knowledge areas describe the key competencies that
project managers must develop

• The four core knowledge areas of project management


include project scope, time, cost and quality.

• The five facilitating knowledge areas of project


management are human resource, communications,
risk, procurement and stakeholder management.
Project Management Knowledge
Areas
• The core knowledge areas lead to specific project
objectives
– Project scope management involves defining and managing
all the work required to complete the project successfully.
– Project time management includes estimating how long it
will take to complete the work, developing an acceptable
project schedule, and enduring timely completion of the
project.
– Project cost management consist of preparing and
managing the budgets for the project
– Project quality management ensures that the project will
satisfy the stated or implied needs for which it was
undertaken
Project Management Knowledge
Areas
• Facilitating knowledge areas are the process through which the
project objectives are achieved
– Project human resource management is concerned with making
effective use of the people involved with the project.
– Project communication management involves generating, collecting ,
disseminating and storing project information.
– Project risk management includes identifying, analysing and
responding to risk related to the project.
– Project procurement management involves acquiring or producing
goods and services for a project from outside the performing
organization.
– Project stakeholder management includes identifying and analysing
stakeholder needs while managing and controlling their engagement
throughout the life of the project.
Project Management Knowledge
Areas
• Project integration is an overarching function
that affects and affected by all of the other
knowledge areas. Project managers must have
knowledge skills in all the areas.
Project Management Tools and
Techniques
• Assist project managers and their teams in
carrying outwork in all knowledge areas.
Project Management Tools and
Techniques
Super Tools
• “Super tools” are those tools that have high use and
high potential for improving project success, such as:
– Software for task scheduling (such as project management
software)
– Scope statements
– Requirements analyses
– Lessons-learned reports
• Tools already extensively used that have been
found to improve project importance include:
– Progress reports
– Kick-off meetings
– Gantt charts
– Change requests
The Role of the Project Manager
• Job descriptions vary, but most include
responsibilities like planning, scheduling,
coordinating, and working with people to
achieve project goals

• Remember that 97% of successful projects


were led by experienced project managers,
who can often help influence success factors
Responsibilities of Project Manager
• Planning and Defining scope
• Activity Planning and Sequencing
• Resource Planning
• Development Schedule
• Time Estimating
• Developing a Budget
• Documentation
• Creating Charts and Schedules
• Risk Analysis
• Managing Risk Issues
Responsibilities of Project Manager
• Monitoring and Reporting progress
• Team Leadership
• Strategic Influencing
• Business Partnering
• Working with Vendors
• Scalability, Interoperability and Portability Analysis
• Controlling Quality
• Benefits Realization
Suggested Skills for Project
Managers

• The Project Management Body of Knowledge


• Application area knowledge, standards, and
regulations
• Project environment knowledge
• General management knowledge and skills
• Soft skills or human relations skills
Ten Most Important Skills and Competencies for
Project Managers

1. People skills
2. Leadership
3. Listening
4. Integrity, ethical behavior, consistent
5. Strong at building trust
6. Verbal communication
7. Strong at building teams
8. Conflict resolution, conflict management
9. Critical thinking, problem solving
10. Understands, balances priorities
Different Skills Needed in Different
Situations
• Large projects: Leadership, relevant prior experience,
planning, people skills, verbal communication, and
team-building skills were most important
• High uncertainty projects: Risk management,
expectation management, leadership, people skills,
and planning skills were most important
• Very novel projects: Leadership, people skills, having
vision and goals, self confidence, expectations
management, and listening skills were most important
Importance of Leadership Skills
• Effective project managers provide leadership
by example
• A leader focuses on long-term goals and big-
picture objectives while inspiring people to
reach those goals
• A manager deals with the day-to-day details
of meeting specific goals
• Project managers often take on the role of both
leader and manager
Projects Cannot Be Run
In Isolation
• Projects must operate in a broad organizational
environment
• Project managers need to use systems
thinking:
– taking a holistic view of carrying out projects
within the context of the organization
• Senior managers must make sure projects
continue to support current business needs
A Systems View of Project Management

• A systems approach is an analytical approach to


management and problem solving (emerged in the
1950s)

• Three parts include:


– Systems philosophy: an overall model for thinking about
things as systems
– Systems analysis: problem-solving approach
– Systems management: address business, technological, and
organizational issues before making changes to systems
A Systems View of Project
Management
• Using a systems approach is critical to successful
project management. Top management and project
managers must follow
– System philosophy to understand how projects relate to the
whole organization
– Use system analysis to address needs with a problem
solving approach
– Use system management to identify key business,
technology and organizational issues related to each project
in order to identify and satisfy key stakeholders and do
what is best for the organization
Issues Addressed
• Business
– Project cost to develop, resources needed and
impact of the project on organization
• Organization
– Extension development, providing training to the
end users, effect on the end users etc.
• Technology
– Software and hardware specifications needed,
technologies needed to develop the project, skills
needed by developers to develop the project,
environmental changes for the project
Three Sphere Model for Systems
Management
Understanding Organization
• The systems approach requires that project managers
always view their projects in the context of the larger
organization.
• Organizational issues are often the most difficult part
of working on and managing projects.
• For example, many people believe that most projects
fail because of company politics.
• Project managers often do not spend enough time
identifying all the stakeholders involved in projects,
especially the people opposed to the projects.
Understanding Organization
• Project managers also often do not spend enough time
considering the political context of a project or the
culture of the organization.
• To improve the success rate of information
technology projects, it is important for project
managers to develop a better understanding of people
as well as organizations.
The Four Frames of Organization
• Structural frame
– Deals with how the organization is structured and focuses
on different groups roles and responsibilities in order to
meet the goals and policies set by top management.
– This frame is very rational and focuses on coordination and
control.
– For example, within the structural frame, a key information
technology issue is whether a company should centralize
the information technology personnel in one department or
decentralize across several departments.
The Four Frames of Organization
• Human Resources (HR) frame
– Focuses on producing harmony between the needs of the
organization and the needs of the people.
– It recognizes that there are often mismatches between the needs
of the organization and the needs of individuals and groups and
works to resolve any potential problems.
– For example, many projects might be more efficient for the
organization if personnel worked 80 or more hours a week for
several months.
– This work schedule would probably conflict with the personal
lives of those people.
– Important issues in information technology related to the human
resources frame are the shortage of skilled information
technology workers within the organization and unrealistic
schedules imposed on many projects.
The Four Frames of Organization
• Political Frame
– Addresses organizational and personal politics. Politics in
organizations take the form of competition among groups
or individuals for power and leadership.
– The political frame assumes that organizations are
coalitions composed of varied individuals and interest
groups.
– Often, important decisions need to be made based on the
allocation of scarce resources.
– Competition for scarce resources makes conflict a central
issue in organizations, and power improves the ability to
obtain scarce resources.
The Four Frames of Organization
– Project managers must pay attention to politics and power
if they are to be effective.
– It is important to know who opposes your projects as well
as who supports them.
– Important issues in information technology related to the
political frame are the power shifts from central functions
to operating units or from functional managers to project
managers.
The Four Frames of Organization
• Symbolic Frame
– Focuses on symbols and meanings.
– What is most important about any event in an organization
is not what actually happened, but what it means.
– Was it a good sign that the CEO came to a kickoff meeting
for a project, or was it a threat?
– The symbolic frame also relates to the company’s culture.
How do people dress? How many hours do they work?
How do they run meetings?
– Many information technology projects are international and
include stakeholders from various cultures. Understanding
those cultures is also a crucial part of the symbolic frame.
Perspectives on Organizations
Stakeholder Management
• Stakeholders are important part of the project
management framework.
• Stakeholders request project, approve them, reject them,
support them and oppose them.
– Purpose is to identify
– Peoples or organizations affected by a project
– To analyze stakeholder expectations
– To engage stakeholders in project decisions throughout the life
of a project
• Project manager and their team must have good
communication with stakeholders and address the issues
as they occur to ensure the stakeholder satisfaction.
Stakeholder Management
• Project managers must learn to identify, understand
and work with a variety of stakeholders.
• The four processes in project stakeholder
management are
– Identifying
– Planning
– Managing
– Controlling
Stakeholder Management
• Identifying Stakeholders
– Identifying everyone involved in the project or affected by
it and determine the best ways to manage relationships with
stakeholders.
– Out put of this process is stakeholder register
• Planning Stakeholder
– Determining strategies to effectively engage stakeholders in
project decisions and activities based on their needs,
interest and potential impact.
– Stakeholder management plan and project documents
updates are the outputs of this process.
Stakeholder Management
• Managing Stakeholder
– Communicating and working with project stakeholders to
satisfy their needs and expectations, resolving issues and
fostering engagement in project decisions and activities.
– The outputs of this process are issue logs, changes requests,
project management plans updates, project documents
update and organizational process assets updates.
• Controlling Stakeholder
– Monitoring stakeholder relationships and adjusting plans
and strategies for engaging stakeholders as needed
– Work performance information, change requests, project
documents updates and organizational process assets
updates are the outputs of this process
Project Phases and the Project Life
Cycle
• A project life cycle is a collection of project phases
that defines
– what work will be performed in each phase
– what deliverables will be produced and when
– who is involved in each phase, and
– how management will control and approve work produced
in each phase
• A deliverable is a product or service produced or
provided as part of a project
More on Project Phases
• In early phases of a project life cycle
– resource needs are usually lowest
– the level of uncertainty (risk) is highest
– project stakeholders have the greatest opportunity to
influence the project
• In middle phases of a project life cycle
– the certainty of completing a project improves
– more resources are needed
• The final phase of a project life cycle focuses on
– ensuring that project requirements were met
– the sponsor approves completion of the project
Phases of the Traditional Project Life
Cycle
Product Life Cycles

• Products also have life cycles


• The Systems Development Life Cycle (SDLC) is a
framework for describing the phases involved in
developing and maintaining information systems
• Systems development projects can follow
– Predictive life cycle: the scope of the project can be clearly
articulated and the schedule and cost can be predicted
– Adaptive Software Development (ASD) life cycle:
requirements cannot be clearly expressed, projects are
mission driven and component based, using time-based
cycles to meet target dates
Predictive Life Cycle Models
• Waterfall model: has well-defined, linear stages of
systems development and support
• Spiral model: shows that software is developed using
an iterative or spiral approach rather than a linear
approach
• Incremental build model: provides for progressive
development of operational software
• Prototyping model: used for developing prototypes to
clarify user requirements
• Rapid Application Development (RAD) model: used
to produce systems quickly without sacrificing
quality

Вам также может понравиться