Академический Документы
Профессиональный Документы
Культура Документы
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
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.
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
Forward engineering
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”
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