Services and SupportDownload Now
Hunting bugs is far from being an easy task. Many coding errors and functionality issues can be exposed by code analyzers, or reproduced by debuggers and profilers, and quickly resolved. However it’s those elusive or irreproducible bugs that can stall a mission-critical software project despite the best efforts of the development team. When complex applications misbehave inconsistently, random clues are left behind. It takes experienced developers with good analytical skills, knowledge of diagnostics tools, and wide system understanding to sift through the volume of events data and log files to and identify the root cause. On average, 75% of the time developers spend on problem resolution is dedicated to finding the root cause while only 25% is spent on fixing the code. It is precisely this challenge that has propelled the new Z-Ray technology introduced in Zend Server to widespread adoption and use.
Z-Ray provides unprecedented visibility into the execution of a transaction or web request, and a set of diagnostic views allowing developers to find the root cause of problems faster and from one familiar location – the application they are developing. Z-Ray displays a breakdown of the transaction by performance, drills down into database and functions execution, shows changes in session data and other superglobal variables, and synchronizes this data with the PHP runtime errors and application events collected by the Zend Server platform. And it accomplishes all this with no need to customize the application or change any configurations. Data related to the transaction is embedded in the application user interface as a pane and is readily accessible from the browser without the need to access backend servers or remote monitoring systems.
As popular Z-Ray is with PHP developers, its benefits extend to R&D executives and application business owners. With software innovation playing an increasing role in competitive business advantage, R&D executives are tasked with two main objectives.
The need for speed. Responding to or even anticipating business needs faster with software that helps the company compete in today’s dynamic and disruptive markets where industry innovators are iterating applications tens or hundreds of times daily.
The need for quality. In today’s mobile, cloud-connected world, internal and external users have heightened expectations for fast and flawless performance of applications.
These objectives typically require a financial investment as well as fundamental process changes. There is a high cost for delivering high quality software faster, and development organizations are not only budget constrained, but they may not have an understanding of expected ROI, which can be significant. (For more a detailed look at the ROI of faster software delivery, see How to Calculate the ROI of Continuous Delivery.)
Process improvements, primarily adoption of agile methodologies, DevOps automation and continuous delivery practices are designed to move organizations closer to achieving these objectives while keeping costs under control. In an agile, continuous delivery environment, software is developed in small increments, built, and then tested automatically to ensure proper quality. But such an environment also requires developers to resolve problems faster. Each severe failure stops the flow of releases until the issue is fixed. Developers must balance time spent to resolve issues with time spent on delivering new functionality to keep pace with innovation.
On average, developers today spend between 30-40% of their time finding and resolving problem, instead of being productive implementing new functionality. This trend is evident across programming languages and application types. For an R&D organization, developers are the most expensive resource and typically comprise the largest percentage of the organization’s overall budget. Reducing the time developers spend on problem resolution significantly not only increases the time but the motivation to deliver new functionality.
With the accelerating pace of technology change, problem resolution will always be with us, and is it unlikely that R&D organizations will significantly shorten the time to implement code fixes. However the work to diagnose and reproduce problems, analyze log, and gather data can definitely benefit from better tooling and automation.
As mentioned, about 75% of the time developers devote to problem resolution is spent on determining the root cause. Typically, they are dealing with limited visibility into the execution of their transactions, the distribution of loosely connected diagnostic data points, and the use of various analysis tools. As the application moves from development to testing, staging and production the cost of resolving problems increases and the time and effort required to identify the root cause intensifies. According to an NIST study, the time and cost to resolve a problem in production can be as much as 30 times higher than resolving it earlier in development.
It is in common scenarios like these that the Z-Ray technology excels. By providing comprehensive, in-browser application diagnostics, Z-Ray allows developers to significantly reduce root cause identification and problem resolution times.
Using Z-Ray, developers are finding they can detect and eliminate potential problems earlier, before they have any adverse impact. This is because Z-Ray provides visibility into the actual execution of the code even when the predefined thresholds common in application performance management (APM) systems have not been exceeded. This capability is integrated into the application UI, allowing developers to leverage it consistently on their desktops, production environments, mobile devices or anywhere the application is used.
Z-Ray eliminates the need to log into production servers, access log files that may include confidential information, or deploy external APM systems. With these visibility and productivity benefits in mind, it’s easy to see why development teams are readily adopting this new diagnostics methodology.
At the organizational level, R&D executives can realize even greater gains by standardizing on the kind of capabilities provided by Z-Ray technology. Assuming that:
Then the organization can increase its overall delivery capacity by at least 12% while at the same time ensuring higher quality of the released product. It’s the equivalent of adding another full-time engineer for every 10 developers – a dramatic ROI for any organization’s R&D department.