But today there's a quiet revolution taking place in many IT organisations, as software is increasingly becoming the key focus for IT departments. Bernd Greifeneder, CTO & Founder, dynaTrace discusses the trials and tribulations of moving from a network to an application-centric IT landscape.
This shift in emphasis has been caused by a number of factors: the recognition that new technology and approaches like SaaS and SOA have changed the nature of software development, plus the realisation that the rise of e-commerce, and web applications means that IT is no longer seen as a cost overhead, but as a source of competitive advantage, productivity gains and revenue.
All of this is great news for future generations of software developers as more budgets and opportunities will open up to those with the requisite skills. Yet, with this new drive towards a software-centric view of the world comes responsibilities and greater complexity.
A complex but brave new world
New architectural approaches such as SOA and virtualisation and a move towards distributed and agile computing models are bringing greater flexibility, quicker time to market and lowering costs, yet creating greater complexity for architects and developers tasked with managing the performance of these applications.
Applications today are become increasingly interwoven, for example in order to execute an online order, several processes may be involved to access multiple internal and external applications to check product availability, verify credit, notify billing and arrange shipment. So a problem with one application can have serious repercussions across the business and the importance of availability and performance of software applications has never been higher.
Unfortunately, however, traditional application monitoring tools are simply not up to tackling the challenges posed by these very complex scenarios. As developers are called upon to dramatically increase the number and speed with which new software products are brought to market, the stakes have never been higher in terms of the impact of downtime on the business, so cutting corners on quality control is not an option.
Current application monitoring tools that seek only to flag a problem, but do little to help pinpoint and diagnose the problem are inadequate. Industry analysts Gartner estimate that 60per cent of all problems are software rather than hardware related, hence the need to find a more robust solution is pressing.
Alternative approaches to software performance management
There are two schools of thought on software performance management. The first is the reactive approach, which means that you have identified that a problem exists and you're looking to fix it in the quickest, most efficient manner. Currently Gartner estimates that 30 per cent of development time is spent in resolving software problems. The reason this is so time consuming is down to poor communications and inadequate processes.
Typically the developer receives insufficient information about what happened, to be able fix the problem, and has to resort to reproducing the error in order to find the root cause. This can take days or even weeks to achieve, which may have drastic repercussions on customer service, costs and morale of the team.
The second approach to software performance management is the proactive approach. The reactive approach is more of a fire-fighting philosophy, whereas most organisations would aspire to be able to address problems before they impact on the business.
Surprisingly, therefore, few solutions on the market actually achieve this, focusing instead on detecting rather than preventing problems occurring. Yet it is also a well known fact that the earlier in the development phase that issues can be discovered, the lower the cost to fix them.
It is estimated that 15 per cent of performance problems occurring in production today could have been detected in the development stage with the right tools and processes in place. Increasingly the inability to provide adequate solutions to developers to diagnose the problem without needing to try and reproduce the situation is at the heart of this fundamental failure to detect problems at an earlier stage in the life-cycle.
Most existing application profiling tools are only being used once a problem has been detected. Frequently performance problems only become apparent once the product goes into production; only major performance problems will come to light in a development environment where the product is being run on a single machine without the volume of data or integration with other applications that is evident in the live environment.
However, if the developer had visibility into the application code early on in the cycle many of these issues could be ironed out well before that stage. Equally if the information communicated back to the developers gave visibility at the transaction coding level, then the time-consuming exercise of reproducing the problem would be eliminated and the time to resolution dramatically improved.
Different views of the world
Providing visibility into the health and performance of applications across the lifecycle means different things for different people. The operations team want to be able to identify if the problem is a hardware or software issue in order to know who is responsible for fixing it. The business level managers are more interested in monitoring performance against SLA metrics to ensure user satisfaction is maintained.
The developers and architects, however, need a different perspective and require information that allows them to quickly pinpoint, diagnose and fix problems.
Since there is no solution (with the exception of dynaTrace 3.0) that addresses the needs of development, test and production environments in one single product, at a consistently high level, the different stakeholders are typically forced to use different tools, metrics and data which makes it extremely difficult to get a clear and consistent perspective on application performance management across the organisation.
Prevention and cure go hand-in-hand
Dynamic IT environments demand a new approach to application performance management, one that works in globally distributed environments, across different development languages; which offers the information required by the different stakeholders in the format and depth specific to their needs; and which operates across the entire application lifecycle.
With so much at stake - particularly in e-commerce businesses - ironing out potential issues proactively and before they reach a live environment is of paramount importance and should be at least of equal importance to reactive measures. Failure to do so is costly, inefficient and may actually cause lost revenue or dissatisfied customers.
Modern day tools need to be capable of offering a variety of different views; from a top down approach for the business management, to individual transactional coding level to help a developer pinpoint and fix a problem - and all of this needs to work in today's dynamic, virtualised and distributed environments. I believe that a continuous, cross life-cycle approach, which focuses on prevention as well as cure, is the way forward.
To help developers meet the challenges of creating more new software in a shorter period of time, without sacrificing quality; smarter, dynamic tools are required that enable early proactive analysis of problems and provide the requisite level of detailed information to enable a fast and efficient resolution.
In an economic climate where costs are constantly under scrutiny, the efficiency and productivity of the IT organisation can be dramatically enhanced by a move to an automated, proactive approach to application lifecycle performance management.