An Introduction To Software Development - Software Support and Maintenance

17
An Introduction To Software Development Using Python Spring Semester, 2015 Class #24: Software Support and Maintenance

Transcript of An Introduction To Software Development - Software Support and Maintenance

Page 1: 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

Page 2: An Introduction To Software Development - 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

Page 3: An Introduction To Software Development - Software Support and Maintenance

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

Page 4: An Introduction To Software Development - Software Support and Maintenance

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.

Page 5: An Introduction To Software Development - Software Support and Maintenance

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

Page 6: An Introduction To Software Development - Software Support and Maintenance

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

Page 7: An Introduction To Software Development - Software Support and Maintenance

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

Page 8: An Introduction To Software Development - Software Support and Maintenance

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

Page 9: An Introduction To Software Development - Software Support and Maintenance

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

Page 10: An Introduction To Software Development - Software Support and Maintenance

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

Page 11: An Introduction To Software Development - Software Support and Maintenance

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

Page 12: An Introduction To Software Development - Software Support and Maintenance

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

Page 13: An Introduction To Software Development - Software Support and Maintenance

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

Page 14: An Introduction To Software Development - Software Support and Maintenance

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

Page 15: An Introduction To Software Development - Software Support and Maintenance

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.

Page 16: An Introduction To Software Development - Software Support and Maintenance

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/

Page 17: An Introduction To Software Development - Software Support and Maintenance

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/