Anatomy 101: Keeping the Applications Running

Anatomy 101: Keeping the Applications Running

Once an application is finished and you're using it, that's all there is to it, right? Doubtful. Technology changes quickly and some issues don't show up until after the application has been live for days, months or even years. Recently, we started troubleshooting resource alarms on a client's production application and discovered some underlying issues that didn't begin to appear until the system had over a thousand users managing hundreds of thousands of unique data elements.

As of 2014, the application in question has been in use for approximately five years. Since we took over maintenance nearly two years ago, the number of active users has continued to grow steadily - a very good thing. We received an alert because a user (one user) did something pretty basic: they updated their email address. Seems like a minor task, right? It is, until you look at what that email address is linked to. Updating that one field resulted in cascading changes that triggered an (almost) overwhelming number of calls to the database to update other uses of the old email address in data snapshots. The result was a single process overloading the server because it was going through each open item and retrieving, then updating, the snapshot individually (for those that like math, that's 2N+1 calls to the database, N being the number of open records). This caused other users on the system to receive timeout messages waiting for their unrelated request to execute.

Without someone monitoring and maintaining the application after launch, this would have continued on into the "emergency zone". Fixing emergencies can be devastating to small businesses, especially when the application in question is a revenue generator. When considering a developer, whether a freelancer or software consulting company, you should always consider the long-term and what might happen after the application is launched. Most professionals have maintenance plans that include a certain number of hours each month for bug fixes and minor changes.

An application, whether its a revenue generator or something to help with the day-to-day business operations, is an investment. Every business should budget appropriately for on-going maintenance, bug fixesfeature requests, or improvements that may come up - either through your customers' feedback or your staff's.

Ping! Development

1000 Characters left