What qualifies as maintenance or adding new features?

Where should the line be drawn between service and new features?

The Oxford English Dictionary defines maintenance as:

(7.a) The action of preserving something in working condition, repair, etc .; maintaining a building, institution, corps of troops, etc., by providing funds for equipment, etc .; the state or fact that they are so supported; means or provision of content.

I work with a client-server application and support the client. By definition, I would expect to do:

  • Error correction
  • Adapting the API (small changes necessary to continue the client working with the server)
  • Optimization for identified performance issues

I would not expect execution:

  • New development (adding new features)

The Wikipedia Software Maintenance article uses corrective, adaptive, perfect, and preventative maintenance that seems to be consistent with what I would expect, but the nature of the client server complicates things.

EDIT . When using stand-alone applications that have no dependencies, if the software works, it should continue to work. When using client-server applications, the client may break when the server changes. Although this does not change the definition of service, it implies that there are more possibilities and cases where changes in the client application will be necessary.

If the two parties agree on a maintenance contract, it is necessary to understand what qualifies and is serviced, and what qualifies as new functions, so the question is.

+6
client-server maintenance
source share
7 answers

I would say that maintenance is all you do to ensure that the product works the way it was originally designed.

The adhesion point there is usually "designed." If you have not started with some detailed project document indicating what the software will do and what it will not do, it all depends on the interpretation. And when it comes to interpretation, usually the customer’s interpretation will be that the software should do whatever they want, and not all that they paid for it.

+4
source share

The line between error correction and function may be blurred. I would consider usability improvements and minor features as a service. My rule of thumb is: if it’s not worth bragging to your customers (or charging a fee for), then this is a service.

As an example, the addition of a feature that allows the user to print will be a new development. Changing the function that allows the user to print a certain range of pages would be maintenance (it is not significant and probably should have worked from the very beginning).

+6
source share

Based on the SO / IEC 14764 specification for software maintenance and my experience with websites and mobile applications, I wrote an article specifically designed to service and develop new features specific to digital products: http://www.rajiv.com / blog / 2012/12/19 / maintenance-vs-new-development /

The purpose of the article is to help answer questions such as: What do you mean by maintenance? What should be considered as maintenance or development of new features? Is there a standard industry definition? What are our selection criteria? Can you give some examples? What is the relationship between maintenance work and new features considered best practice for our industry? How do our organizations mix with this?

I was asked these questions on most of the assignments I was in. This article helps me answer them, especially for my company.

+2
source share

For bug fixes, it is easy to classify them as a service for the most part.

However, depending on your software product, you may encounter “new features” that you must perform with ongoing application maintenance.

For us, this usually happens due to business requests from our customers or from third-party rules. Customers may need to correct several errors, but at the same time, we need to support the processing of the new government regulation, which legally requires us to "get it now!".

This particular change is a “new feature”, but will be installed as part of a regular application service update.

I would say that it really depends on the model that your store wants to accept and even more, you will always encounter situations when they overlap.

+1
source share

Bug fixes are definitely maintenance.

Increasing productivity (speed) is a service.

Adding a function that was supposedly included in the latest version and which didn't or didn't work is a service (in my opinion).

When adding a general new feature, I DO NOT treat it as a service.

+1
source share

I worked in one place (the seller), who will fight with the client with each modification, that they were all new features! They would tell the customer that they bought bugs. It was a fun place to work! They gave up, but every month when they sent the bill, they "agreed" with customers. Keep in mind, we sold large user systems, and it was very difficult for customers to switch to the ship, and the management understood this. it was a hassle as a developer.

I think that maint supports the operation of the system, corrects errors, maintains compatibility with the OS and other necessary software, which may change. New features are features that they did not have before.

+1
source share

For me, the error is maintenance, but there is no improvement.

But in my experience, non-encoders often have difficulty distinguishing from improvement. For them, a mistake is something that doesn't work the way they want it. For me, a mistake is something that does not work as indicated or designed.

If the functionality was supposed to be in the original specification, but was not, and the client was subscribed to the specification, it looks like an increase (and, thus, additional paid work).

Of course, there are also “soft” considerations: maintaining good relationships, which is often wise to throw a couple of corrections necessary for free maintenance, especially if they are relatively small and you can manage this expectation quite well.

0
source share

All Articles