Unit-5 SEPM
Unit-5 SEPM
Software Release
Disclaimer:
The lecture notes have been prepared by referring to many books and notes prepared by the teachers. This document does not claim
any originality and cannot be used as a substitute for prescribed textbooks.
Topics
• Product Release Management
• Product Implementation
• Risk management
• Reactive Vs proactive risk strategies
• Software risks
• Risk identification
• Risk projection
• Risk refinement
• RMMM - RMMM plan
• Maintenance and Reengineering
2
Product Release
• The software product which has been built till now is now complete.
• It needs to be taken to the customer’s site and get it implemented so that the
end users can start using it.
• However, do not run fast in anticipation of wrapping things as early as possible.
• After all this is the magnum opus and needs to be carefully handled.
• Depending on the situation, the project manager may need to convince the
management to cut short some of the product features to meet the deadline as
well as meet quality standards.
• A half-baked product will never have any takers; instead, the project manager
may be blamed for its poor-quality issues.
Product Release Management
• Bargaining also must be done for other requirements of bug fixes, feature
enhancements, etc.
• If quality concerns are paramount, then moving some of the tasks of new features
to a future release may be the best solution for meeting quality standards.
• If the software vendor is not too sure about product quality, then he may opt for
an alpha or beta release of the product.
• In that case, the product will be released only among a few selected groups and
not in the market.
• These measures will ensure that the product is transitioned into market without
facing major difficulties.
Product Implementation
• The product that has been developed and thoroughly tested now it needs to be
implemented at a customer site.
• It is necessary to prepare all master data and test transaction data for testing
the implemented product.
• In addition, need to get all required hardware and software that needs to be
there for installing the software product.
• Furthermore, need to make sure that development and testing is done for all
the hardware and software interfaces for integrating the product, with existing
legacy systems and infrastructure.
Product Implementation
• Moreover, need to make sure that the product will run smoothly on customer
premises without any interference with their existing applications (Figure above
– Task list for software product implementation).
• So, it is better to prepare a list of roles that are needed to operate the
product.
• This list needs to be given to the end users and ask them to select one
user per role who will receive the training.
• Apart from the user manual, it is necessary to prepare a tutorial to
include probable scenarios that may arise during operation of the
product.
User Training
• The tutorial will provide a step-by-step guide for using the product under
those scenarios.
• This will be a very important step in training, because if users do not learn it
during training, then they may contact later after implementation and ask
for information as to how to use the product in those circumstances.
• This will lead to a waste of the support team’s time.
• It is lot better to train them now, during user training, rather than face user
requests later.
Risk Management Process
• Risk Management is the process of identifying, assessing, and controlling risks
that could potentially affect a software project’s objectives such as cost,
schedule, scope, or quality.
• A risk is a potential event or condition that may negatively (or positively) impact
a project. In SEPM, most risks are related to:
– Technical feasibility
– Requirements uncertainty
– Human resources
– Budget constraints
– Scheduling issues
– External factors (regulatory, client-side changes)
• There are two primary risk management strategies: Reactive and Proactive
Risk Management Process : Steps
1. Risk Identification:
• Qualitative: High/Medium/Low.
3. Risk Prioritization:
• Types of strategies:
– Avoidance: Change plans to sidestep the risk.
– Mitigation: Take actions to reduce risk.
– Transfer: Shift the risk to another party (e.g., insurance).
• Examples:
– Identifying possible technology risks early and planning a backup tech stack.
• Cons:
– Performance bottlenecks
– Security vulnerabilities
– Inadequate testing
Classification of Software Risks
3. Product Risks: Risks that impact the functionality and quality of the final
software product.
– Misunderstood or changing requirements
– Incomplete or incorrect specifications
– Low usability
4. People Risks: Risks associated with the human factor in the project.
• Goal: To prioritize risks and focus on the ones that matter most.
• Goal: To gain deeper insight into the nature, sources, and interactions of
risks—especially the most serious ones.
• The RMMM Plans the strategies and actions that will be taken to:
– Mitigate risks before they happen,
• Components of RMMM:
– Risk Mitigation
– Risk Monitoring
– Risk Management (Contingency Planning)
Risk Mitigation
• Goal: Reduce the likelihood or impact of a risk before it occurs.
Mitigation Strategies:
• Proactive planning: Define backup plans
• Training: Upskill the team to reduce people risks
• Prototype development: Minimize tech feasibility risks
Example:
Example:
Management Actions:
• Plan B execution
• Reallocation of resources
• Schedule or scope adjustments
Example:
1. Introduction
2. Risk Identification
3. Risk Analysis & Projection
4. Risk Mitigation Plan
– Technical risks
– Product risks
– People risks
– Organizational/external risks
– Tools used: brainstorming, checklists, past project data, risk taxonomy
RMMM Plan
3. Risk Analysis & Projection:
Evaluation of each risk:
– Probability of occurrence (Low/Medium/High or percentage)
– Impact level (Low/Medium/High)
– Risk exposure (Risk = Probability × Impact)
Example:
• Risk: Team member may leave
• Mitigation: Cross-training, good work culture, incentives
RMMM Plan
5. Risk Monitoring Plan:
• How risks will be tracked during the project
• Indicators or trigger conditions for each risk
• Frequency of risk review meetings
• Person/team responsible for monitoring each risk
7. Risk Register (or Risk Table): A tabular summary of all risks and corresponding
plans
RMMM Plan
• Monitoring risks
2. Software defects: There are major software defects in the product and it is
difficult to operate. For this reason, a software patch may be needed to be
applied so that these defects are removed.
Maintenance Introduction
3. Change in user requirements: The business organization that was using the
software product has seen a change in business transactions or business
workflows that are not supported by the software product.
• It is estimated that more than 70% of all costs associated with software product
development, implementation, and support and maintenance is consumed in
the activities of supporting and maintaining software products.
Maintenance Introduction
• These kinds of queries have always puzzled the business community.
• This recognition has resulted in an awareness of the importance of finding ways
to build such a software product.
• This situation has led to including maintainability characteristics during the
entire product development cycle.
• Yet, a lot of work remains to be done during the maintenance phase of any
software product.
• If there are some deficiencies in the product that must be rectified, then
perfective maintenance will fit the bill (Figure below – Software maintenance
types).
Maintenance Types
Maintenance Types
Corrective: Even after thorough reviews and testing, the software product contains
many defects when it goes into production.
• These defects are uncovered as users start using the application.
• They are logged with the support staff and after a sizable number of errors are
detected, the software vendor instructs his maintenance team to create a patch
to rectify them.
• The maintenance team then makes a plan and fixes those defects.
• After application of the patch containing the fixes, the software starts running
without these defects.
• If any of these change over time, it becomes difficult to run the software product.
Adaptive: Maintenance Types
• In such cases, it becomes necessary to do adaptive maintenance so that the
software product becomes reusable.
• This kind of maintenance may involve changing the interface or porting the
application to another hardware/ software platform.
Perfective:
• In such cases, preventive maintenance on the software product can make sure
that the product will be useful even after these environmental changes occur.
Maintenance Cost
• A software product is generally very valuable to an organization if it is used for
doing a large portion of their daily business.
• If for some reason the software product has become unusable, then the
organization in fact will be making losses on their revenue.
• Moreover, large enterprise software products are that much crucial!
• When the organization faces such a case, it is left with no alternative but to
either get an entirely different software product that will replace the existing
one or do maintenance of an existing product to make it usable.
Maintenance Cost
• Following are some financial reasons for which a maintenance may be needed:
1. Loss in business revenue: It may happen that business transactions are faulty
and thus the business may lose revenue.
2. Opportunity loss: Sometimes there could be some business opportunity in
the marketplace, but due to some software problems it could not be availed.
• Quick fix model: This is the simplest of maintenance models; whenever any
defects with the software products are found they are immediately fixed. There
is no planning involved in the whole process, and it is mostly an ad-hoc
approach.
Maintenance Process
Maintenance Process
• Boehm’s model: Boehm’s model is based on economic models and often
involves calculating ROI, for any planned maintenance.
• If ROI turns out to be good, then it is carried out or else it is dropped.
• Osborne’s model: Osborne realized that difficulties in carrying out
maintenance work are due to gaps in communication.
• For fixing any defects, existing components are analyzed and then the
appropriate changes are made.
Maintenance Life Cycle
• Like the software development, software maintenance also has a life cycle.
• Requirements for software maintenance come from the list of defects that have
been logged.
• Either the list of defects can be taken as a whole or a subset of defects from this
list can be taken for a fixing plan.
• This way it can be ensured that highly visible, important, and priority defects are
fixed first and other defects which do not make much impact on operations of
the product are tackled later
Maintenance Life Cycle
• In the software maintenance life cycle, testing is a crucial phase.
• There is no proper documentation that can be used for understanding how the
product is designed and constructed.
• Sometimes there is no documentation at all.
• Even if documentation is there, it is not up to date.
• This out-of-date documentation is not of much use for any maintenance work.
• Sometimes even if the documentation is up to date, the maintenance work is
difficult due to dirty design or construction work.
• All these situations call for some specific techniques for maintenance work
depending on the situation.
• Some of the common maintenance techniques include reengineering, reverse
engineering, and forward engineering.
Maintenance Techniques
Maintenance Techniques
Reengineering
• Reengineering is also known as reuse engineering. This technique is a standard method
for maintenance work for component-based software products.
• Details about all components in the software products are well known.
• When any maintenance work is needed, from the list of defects, each defect is
specifically analyzed to find out the root cause of the defect.
• Once this analysis is successful, then fixing that defect becomes easy.
Maintenance Techniques
Reverse Engineering
• Reverse engineering technique is the most useful when nonexistent or sketchy
documentation is available for the software product.
• Using this technique, similar components or product parts are constructed as compared
to existing product components/parts.
• This way the software product functionality is changed as the new constructed parts will
have the desired functionality.
Maintenance Techniques
Forward Engineering
• Forward engineering is just the opposite of reverse engineering.
• In this situation, we have ample documentation about the existing product.
• Due to new customer needs, the existing product needs to be extended so that
the new needs can be fulfilled.
• All new extended development is based on the existing design and construction
methods and will be made for the same hardware/software platform.
Software Release – Case Study
• In the series of case studies, here is the piece related to software release and
maintenance.
• SaaS vendor releases minor versions of its product on a quarterly basis and major
versions on a yearly basis.
• For each minor release, new features to be added are carefully planned.
• The product manager makes sure that the release plan for a minor release will be on
time by assigning priority to each new feature.
• The high priority features will be definitely added and the low priority features for
that iteration will be added if any time remains in the iteration.
Software Release – Case Study
• SaaS vendor does not release alpha or beta releases of its product as they do not
serve mass markets.
• Their product is an enterprise computing product and is used by large retailers,
government offices, logistics providers, manufacturers, and distributors.
• They always release new versions of their product to their existing customers.
• Since they do not do alpha or beta releases, they make sure that their new version is
tested thoroughly by their testing team, and no major defects are passed in the
production instances.
• Since there are no immediate customers who will be available for doing user
acceptance testing, the internal testing team does the user acceptance testing as
well.
Software Maintenance – Case Study
• The software vendor keeps all of the production instances of its software
product at its data centre (also known as operations center).
• All previous versions of the software as well as the current working version of
the software product run at this centre as production instances of different
versions of their software product.
• The maintenance team makes sure that all versions of the product are available
for users.
• But with SaaS environments, this kind of maintenance is not needed at all.
• All defects are quickly and easily fixed, without hampering work of end users.
REFERENCES
• Ashfaque Ahmed, Software Project Management: A Process-driven approach,
Boca Raton, Fla: CRC Press, 2012.
THANK YOU