An Introduction To Software Development - Software Support and Maintenance
-
Upload
blue-elephant-consulting -
Category
Education
-
view
69 -
download
8
Transcript of An Introduction To Software Development - Software Support and Maintenance
An Introduction To Software
Development Using Python
Spring Semester, 2015
Class #24:
Software Support and
Maintenance
Yea! We’re Done – Or Are We?
• It feels great to complete the final iteration
• Now the real work starts – supporting a product lasts many times longer than the developing the product took (years)
• The success of the product is based on real user’s experience with the software.
• Products can be released with bugs and missing features.
• You had better understand and prepare for post release customer support.
Image Credit: www.playbuzz.com
What Is Customer Support?
• Customer support consists of two main activities:
– Product defect support
– Product nondefect support and services
• Support is not free – customers are charged a fee: 10% - 20% of the purchase price for 1 year of support
• Paying customers expect a professional level of support and regular maintenance updates.
Image Credit: www.ddssupport.com
User Problem Arrival Rate
• When software is released, there is usually a surge in customer questions and support requests.
• Initially customers find all of the easy to find bugs.
• Expect problem reports to decrease over time
• If you don’t see a surge in issues, then there is a good chance the your customers are not using the software the you just delivered to them.
Preparing To Support A Product
• Support preparation has to start before the software is released.
• Problem arrival rate has to be estimated.
• The problem arrival curve will determine the number of people required and the expected workload.
• Support staff have to be educated on the software product.
• Support staff can be made part of the testing effort in order to provide them with an education on both the software and the usage environment.
Image Credit: techsupportwindows.com
Every Product Dies
• Every product enters a sunset period and is eventually taken off the market
• This can take a year or two and involves the following steps:– Stop new feature releases
– Fix only high severity problems related to the product
– Announce a new replacement product
– Encourage existing users to migrate to the new product
– Notify remaining users of the planned termination of product support
– Pass on possible vendors who might continue to support old product
– Terminate support on announced date and withdraw product from the market.
Image Credit: www.wpclipart.com
Customer Service Organizations
• Example of a customer service organization with two levels of service and support.
• Outer layer interfaces with customers and inner layer of technical experts diagnose and fix more difficult problems.
Image Credit: www.epilepsy-setn.org
What Does A Customer Support Representative Do?
• Get the customer’s name and proof that they have paid for support
• Listen to and record a description of the problem
• Check the FAQ database to see if there is an existing solution to this problem
• Provide customer with the solution if this is something that is in the FAQ database
• Provide an expected fix date if this issue has already been reported
• If this is a new problem, provide a work-around. Agree with the customer on a severity level for this issue. Provide customer with an estimated fix date.
• Record the problem and issue a report to the technical fix team.
Image Credit: www.iqsol.biz
Technical Problem / Fix
• If support staff can’t fix a problem, then the technical analyst is brought in.
• Based on the trouble ticket, the solution to the problem is designed, coded, and tested.
Image Credit: techsupportwindows.com
Process For Fixing A Customer Problem
• The problem description, priority, and other important information is recorded in a problem report that is submitted to the technical fix group.
• The technical fix group will attempt to reproduce the problem.
• The technical fix group will then either accept or reject the problem.
• If the problem is rejected, the customer support team is immediately notified; if it is accepted, then a change request is generated and it enters the code change cycle.
• Depending on priority, a new code version may be created or the fix will be scheduled to be part of a future release.
• The FAQ database is updated with information on this issue
Image Credit: www.innoforce.com
Why Is Software Support So Hard?
• Note that the design, code, test of software support is very similar to the design, code, test of software development.
• The problem is that firms may not treat software support with the same level of discipline because only 1 or 2 lines of code may get fixed.
• People may be tempted to just fix a problem and then go on.
• However you need to remember to keep the requirements, design, coding, and testing documents up-to-date.
• Code fixes often have to be propagated to other versions of the code.
Image Credit: falcon1.net
Fix Deliveries & Fix Installs
• Periodic fix releases issued on a regular schedule
• Contains code fixes made since last release of the code
• Contains only those modules affected by the code fixes
• Customer is expected to apply fixes in sequential order
• High-priority emergency fixes
• Customer immediately applies fix upon receiving it
• This fix may have to be backed up before the next periodic fix is applied
New Software Release
Image Credit: techsupportwindows.com
Product Maintenance Updates and Release Cycles
• Product maintenance releases do not always just contain bug fixes.
• A version of the product that has fantastic new functionality is generally sold to existing customers as a new product.
• Small additional features are included in maintenance releases and provided for free (e.g. new printer support).
Image Credit: techsupportwindows.com
Change Control
• A customer service organization must be able to control the changes that they are making no matter where they come from.
• Generally, the scheduling of changes is based on customer priority and the level of support resources.
• Change control is a process that manages the following activities:– Origination of a change request
– Approval of a change request
– Acting on a change request
– Tracking and closing a change request
Image Credit: web.pdo.co.om
The Change Request Form
• Information on what needs to be changed is captured on a “change request form”.
• Every change request is given a tracking number, the date created, who created it, and is assigned a priority (H,M,L).
• Impact analysis identifies part of the code that this change will affect.
• Work estimates are created and added to the request form.
• Change requests forms can be studiedin order to get a better sense of whatproblems customers are havingwith the product.
What We Covered Today
1. Organization of customer service groups.
2. How customer problems are fixed.
3. Product Maintenance Updates and Release Cycles
4. Change control
Image Credit: http://www.tswdj.com/blog/2011/05/17/the-grooms-checklist/
What We’ll Be Covering Next Time
1. In-Class Team Presentations!
Image Credit: http://merchantblog.thefind.com/2011/01/merchant-newsletter/resolve-to-take-advantage-of-these-5-e-commerce-trends/attachment/crystal-ball-fullsize/