This presentation is a part of the COP2271C college level course taught at the Florida Polytechnic University located in Lakeland Florida. The purpose of this course is to introduce Freshmen students to both the process of software development and to the Python language.
The course is one semester in length and meets for 2 hours twice a week. The Instructor is Dr. Jim Anderson.
A video of Dr. Anderson using these slides is available on YouTube at:
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
An Introduction To Software Development - Software Support and Maintenance
1. An Introduction To Software
Development Using Python
Spring Semester, 2015
Class #24:
Software Support and
Maintenance
2. 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
3. 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
4. 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.
5. 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
6. 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
7. 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
8. 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
9. 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
10. 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
11. 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
12. 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
13. 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
14. 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
15. 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 studied
in order to get a better sense of what
problems customers are having
with the product.
16. 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/
17. 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/
Editor's Notes
New name for the class
I know what this means
Technical professionals are who get hired
This means much more than just having a narrow vertical knowledge of some subject area.
It means that you know how to produce an outcome that I value.
I’m willing to pay you to do that.