Maintenance: the cost for software vendors and what it means to your organization
description
Transcript of Maintenance: the cost for software vendors and what it means to your organization
Software maintenance: the cost for
vendors and what it means to you…
Nicolas C. Hans
dotCast Consulting Services
September 2008
Maintenance, the last line on the invoice
Software maintenance has bad
press with both buyers and
vendors:
“el impuesto revolucionario”
An annual cost of 12 to 20%
of the list price for large
systems
As part of support costs,
software maintenance fees
have a significant impact on
the Total Cost
of Ownership/Operation (TCO)
The cost of maintenance for software vendors
“The modification of a software
product after delivery to correct
faults […] improve performance […]
or to adapt the product to a
modified environment”
The total cost of system
maintenance for a vendor is
estimated to be at least 60%
of the total product life cycle costs
Requirements Analysis 3%
Specification 3%
Design 5%
Coding 7%
Testing 3%
Operations & maintenance 67%
Source: ISO/IEC 14764 and “Principles of software engineering and design”,
Zelkowitz, M.V. Shaw, A.C., and Ganon, J.D., 1979.
Estimated cost of software
engineering and design
Maintenance, the hidden part of the iceberg
Software is a product whereas
maintenance is a service
Maintenance, the hidden part of the iceberg
Software is a product whereas
maintenance is a service Requirements Analysis,
specifications, design, coding
and testing1/3
Maintenance, the hidden part of the iceberg
Software is a product whereas
maintenance is a service
Two recent trends
in the software industry try
to switch the paradigm:
Open Source Initiative(GNU GPL)
Software As A Service (SaaS)
Requirements Analysis,
specifications, design, coding
and testing1/3
Operations & maintenance
2/3
There’s more to maintenance than bug fixes…
Corrective maintenance
Bug fixing (“residual errors”)
Trigger: a problem report from an end-user
Adaptive maintenance
Adapting software to changes in the hardware or O/S platform
Trigger: none. Monitoring the software environment
Perfective maintenance
Enhancing the system features and functions
Trigger: a modification request from an end-user
Preventive maintenance
Increasing a system’s maintainability by updating documentation,
commenting code, improving the modular structure of the system
Source: ISO/IEC 14764
Users drive the maintenance effort…
Corrective,
20%
Adaptive, 25%Perfective,
50%
Preventive, 5%
Source: “Software maintenance management: a study of the maintenace of computer application
software in 487 data processing organizations”, Lientz, B.P. and Swanson, E.B. 1980
Maintenance issues faced by software vendors
Vendors face a number of issues when maintaining software systems:
Unstructured code
Poor development practices
Insufficient knowledge of the maintenance team
Original developers rarely ensure long-term maintenance
Lack of documentation
Understanding of user environment is limited
Software maintenance has a bad image
It’s the last wagon of the software development cycle
Specifics of software for broadcast environments
Bespoke developments
Number of specific integrations rapidly give way to custom solutions
Mission critical environments
From black screens to dead air
High profile users
Floating standards
MOS, MXF…
Regulatory issues
Amortization of broadcast specific devices is often different
from IT ones requiring for longer support of legacy devices
Requirements of as-run logs, unions,…
Factors that directly impact maintenance costs
1. Size
The larger a system, the larger the effort to maintain it
Maintenance=(complexity)
2. Age
The older the system, the more legacy of changes needs to be taken
into account, the less likely the original development team available
3. Number of inputs/outputs
Integration with third party systems
4. Documentation (or lack of)
…
What to look for when buying
maintenance contracts…
Practice due diligence of maintenance services
Check the vendor’s infrastructure
Do they have a dedicated support and maintenance team?
How can users submit problem reports and modification requests?
Do they have a central repository and queuing system?
Do they have a user group?
Do they provide 24/7 hotline services?
…
Review the Service Level Agreement (SLA)
Updates and upgrades
Response times for bugs and change requests
Penalties for delays and downtime
…
Negotiate your maintenance fee
Remember that for some vendors the logic is to “give away the razor and
charge for the blades”
Negotiate purchase price first…
then the maintenance price,
then the impact of paying upfront 3 to 5 years maintenance fees (if
your organization can afford it)
Negotiate maintenance cost on the basis of the purchase price instead
of the list price
Setup a penalty system if SLAs are not met (service credits)
Beware of annual increases in maintenance cost…
Optimize the service that you get
Train your support team: your own support staff will be a lot quicker
to solve issues than the vendor’s hotline
When implementing a system for the first time, hire consultants
that know the product well and learn from their experience
Minimize the amount of customizations required
Upgrade to the next release as soon as possible
Have a stand-alone test system to validate updates and upgrades
Document your system
Invest in the relationship with the vendor’s support team
Attend training sessions organized by your supplier
Make sure that your supplier is well informed about your plans
Source: http://www.supportandmaintenance.org/support/self-service/230-gain-more-from-your-software-supplier.html
A few worthwhile links:www.supportandmaintenance.org
Software Maintenance Maturity Model (SMmm)
Nicolas C. Hans
+33 687 549 166
http://www.slideshare.net/secret/t1wiQlQ2UDt2PY