Cluj München 1140km

Gânduri clujene din Bavaria

München - Munich - Monaco di Baviera

17. februarie 2014 23:08
by skorpionking
6 Comentarii

Do you think about software maintenance?

17. februarie 2014 23:08 by skorpionking | 6 Comentarii

Even though software maintenance is a simple concept it is quite often misunderstood and its importance is very often minimized. Be honest, when starting a project, how many of you think so far when planning? Most customers (and some IT professionals in the hurry of the project) assume that once the software goes live in production there is nothing else to be done about it. This is far from being true and there are many things that can change around after a software system goes live, it is released, accepted by the customer. Some examples: operating system updates/patches, diagnosing and fixing newly discovered defects, business rules updates, infrastructure required updates (e.g. application server, digital certificates, third party libraries), changes in the interfaces of third party service/data providers consumed by the application, legally enforced updates (hello SEPA), expanding markets, etc. Depending on the software complexity and its quality, software maintenance activities can account for as much as 80% of the total costs during the lifetime of a software system.  

In general software maintenance activities can be classified into the following categories:

  • Corrective Maintenance - Covers fixing errors and defects discovered while the software system is operational in production. Corrective maintenance has high priority especially if the error/defect is affecting application users. For example, an e-commerce application fails to process payments.  
  • Perfective Maintenance - Covers updating existing business rules due to changes in the underlying business processes. For example, the registration page of an online website needs to be updated to make the password retrieval security question mandatory (it was previously optional). Some organizations also include new development under perfective maintenance and some prefer to keep new development separate.  
  • Adaptive Maintenance - Covers the necessary adaptation of the software system to changes in the operating environment. For example, the operating system manufacturer issues important security patches which must be installed. This is strongly related to operations. The adaptive maintenance activities need to be planned and scheduled in advanced such that minimum disruption is experienced by customers. Cloud platforms like Windows Azure offer great advantages because some of the adaptive maintenance activities are performed by the cloud provider transparently for the users without service interruption.    
  • Preventive Maintenance - Covers activities to continuously improve the maintainability and reliability of a software system throughout its life time. Examples: consolidate code to eliminate existing duplication, refactoring, eliminate tight components coupling, analyze bottlenecks and refactor code to run more efficient, build performance counters, strong and adaptive logging, implement error reporting framework that sends an email to the development team any time an error/exception occurs including as many details about the incident as possible, etc. This is also strongly related to operations.

From my software development experience (as a software engineer and consultant), providing a quality software maintenance service mainly depends on having a process and a stable knowledgeable team. The process must be capable of recording and tracking all maintenance related activities and associated artifacts from beginning to end - I recommend to use an issue tracking system (Microsoft Team Foundation Server provides great ways for this purpose but not only). The team assigned with software maintenance must be highly knowledgeable of the system (i.e. technical side and business side) in order to make sure they know how to respond and they understand the consequences of their actions on the software system.

I hope the above overview is concise enough to convey the importance of software maintenance for operating highly reliable and maintainable software Systems today, as for all us quality of deliverables in time and budget should be a commitment. And yes, software maintenance is not cheap nor easy, but software maintenance is necessary!

Comentarii (6) -


It is the best time to make some plans for the future and it is time to be happy. I have read this post and if I could I desire to suggest you few interesting things or tips. Perhaps you can write next articles referring to this article. I wish to read more things about it!

Free auto approve list 8-9-2018

I just wanted to let you all know that I added a new list. It has taken me awhile to let everyone know due to server issues. Everything should be back on track now.

Free auto approve list 8-9-2018

I’ve been having issues with my Windows hosting. It has set me back quite a bit while making the next list. This is the current list that I have. I should add another list in less than a week. I’ll let you all know when the next list is ready. Thank you for your patience.


<p>just what i need for my test,thanks</p>

Blacked Raw

Undoubtedly, It has multiple features which are useful for affiliate marketers. I am currently using Pretty Link to cloak the affiliate links. It also works fine for me. Thanks for showing an awesome alternative.

foloren torium

Whats up are using Wordpress for your blog platform? I'm new to the blog world but I'm trying to get started and create my own. Do you require any coding expertise to make your own blog? Any help would be greatly appreciated!

Adaugă comentariu