DevSmart

Record and Replay

Development more time resolving application problems then designing and coding.

You're paying your application developers to write code. But are they doing what you're paying them to do?

In most IT organizations, the answer is no. Industry analysts estimate that developers spend only about 20 percent of their time designing and coding. How do they spend the bulk of their time? Resolving application problems.

Identifying and correcting defects discovered in the testing phase of a software project consumes 50 percent or more of your developers' time. Developers also spend time resolving problems, even after the application enters the maintenance phase of its lifecycle.

If you could streamline problem resolution, you could shorten the dev cycle. Your development staff would be able to deliver more apps faster and at a lower cost. Now new technologies are automating application problem resolution and delivering significant improvements in developer productivity.

Root Cause and Resolution
Problem resolution encompasses two steps: root cause analysis and problem fix. The vast majority of problem resolution time goes into root cause analysis.

It's a complex task. Symptoms rarely point directly to the source of the problem. If a transaction fails to execute during integration testing, the cause could be a source code bug, an application server service failure, a network problem, improper configuration or a combination of conditions. Pinpointing the cause is difficult enough in traditional applications. It's even more difficult in multi-tier applications that are built on services-oriented architecture, or .NET-connected applications that include Web services.

The analysis process is cumbersome as well. Developers collaborate with testers in the development stage and support teams in the maintenance stage using a reiterative process. Their approach is characterized by trial-and-error tactics and manual tasks.

Black Box Recorder
A new generation of technology is helping development teams streamline and accelerate the problem resolution process. Developers can leverage these solutions across the entire application lifecycle -- from development through maintenance.

Automated problem resolution software captures a synchronized, real-time log of application activity at several levels -- user, system and code -- much like the "black box" flight recorder on an aircraft captures a real-time record of a flight. The technology can help dev teams diagnose the root cause of unexpected application behavior, whether it's a user error, performance issue, configuration problem, functional error or integration or scalability problem. These tools help determine the root cause of Web service or database call failures, component incompatibility, .NET Remoting and Interop errors, business logic issues, performance, app migration and upgrade problems, among many others.

The documentary log from the information-gathering phase enables developers to replay the problem scenario exactly as the tester experienced it. It's like using a DVD to record and replay a movie. Replay eliminates the need to recreate problems manually, saving substantial developer time. It also eliminates non-reproducible problems that soak up valuable time on the part of developers, testers and app-support technicians.

Well-architected app problem resolution provides rich detail that eliminates the multiple problem-analysis cycles typically needed to determine root cause. Consequently, developers can drill down to system-level (Web page execution, database calls) and code level (function calls, arguments, exceptions) views and replay a problem scenario.

The Phantom Deadlock
[click image for larger view]
Development

This type of tooling can also be used to support the maintenance phase of the application lifecycle by optimizing collaboration processes among support specialists and developers, who are often the last line of support. The software streamlines incident documentation by capturing a synchronized timeline that includes user behavior, the complete problem environment and code execution. As in the development stage, the developer has all the information needed to replay a problem scenario and analyze the root cause.

Time Is Money
Automated problem resolution delivers important advantages in both the development and management phases of the application lifecycle.

Organizations that have implemented these solutions are finding that developers can cut problem resolution time nearly in half. Assuming that developers spend half of their total time in problem resolution during development and maintenance, this translates to a savings of more than one-fourth of the developer's total time. At a fully loaded cost of $100,000 per developer per year, automated problem resolution saves $25,000 annually per developer. For a team of 50 developers, that savings is $1.25 million a year.

Savvy organizations recognize that application developers create innovative business services that revolutionize the industry. Creating those business services takes time. With these tools in place, your dev team can deliver better apps in a technology environment that's increasingly complex.

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube