Author Archive

Enterprise, B2B and B2C Applications Analytics

Tuesday, May 14th, 2013 by Gabriel Torok

Cloud, mobile and distributed software services have made simulating “true” production impossible while production and release cycles have become more frequent. At the same time, communication and collaboration between development and operations has become a focal point for process improvement, spawning a trend in software development expressed by the term Development Operations (DevOps).

This is especially important as the focus shifts from long QA/user acceptance testing cycles to rapid identification and resolution of issues in production, and deployment of the fixed application back into production. This rapid identify-fix-deploy loop requires adoption of new tools and processes to be successful.

It will be increasingly important to have sharp insight into applications running in production. Without it, you will miss quality goals, have higher maintenance costs, and lower customer satisfaction. With it, you can prioritize work based on actual usage patterns, identify, triage and resolve problems before your customers are seriously impacted. You can also test changes to see how they affect user behavior and intended outcome, and drive both hard and soft costs to a minimum.

Collecting, analyzing and acting on application runtime data poses unique challenges both in terms of the types of data that need to be gathered and the metrics that measure success. Effective application analytics implementations must accommodate the diversity of today’s applications and the emergence of cloud, mobile and distributed computing platforms. Narrower analytics technologies such as standard reports provided in a cloud service will never fully satisfy development and management objectives for corporations.

Existing analytic solutions have almost exclusively resided in the cloud. This makes perfect sense from a technological implementation standpoint for the analytics vendor. However, for companies with sensitive data or that are constrained by government regulation, storing your data “in the cloud” is simply not an option. The only appropriate application analytic solution is one where data can be surfaced on a variety of endpoints (on premise and/or off premise) according to client-specific rules for compliance with relevant industry standards and regulations.

Comprehensive application analytics must support enterprise, B2B and B2C use cases including cloud, servers, web-based, traditional PC and mobile apps – and the data should stream within a private network or across public networks as well.

Our application analytics solutions achieve that objective. Let’s look at the pieces:

  • PreEmptive Analytics for TFS is a “Client-premises” or on-premises incident response solution that connects production incidents to development and operations via automated, intelligent, rule-driven creation and management of work items to decrease the mean time to fix an application.
  • PreEmptive Analytics Runtime Intelligence Service is a managed, multi-tenant service providing broad analytics and archival services – it’s a hassle-free, always up, analytics platform ideally suited to measure the most common metrics and KPIs.
  • PreEmptive Application Analytics Workbench is an on-premises solution that provides critical insight into the adoption, usage, performance, and impact of production applications to facilitate feedback-driven development and enhance software quality, user experience, and decrease the mean time to improve an application.


At this point you might be wondering which of these tools might be most useful to you now. That is where the Data Hub shines brightly.

The PreEmptive Analytics Data Hub is a client-premises endpoint that can be installed internally, on a “DMZ” server, or in the cloud - and it serves as the “one endpoint” for all of your applications, across all of our services – even as you expand and adjust your analytics strategies and implementations. The Data Hub monitors runtime data and routes that data to any/all other PreEmptive Analytics software and services (including other Data Hubs). The Data Hub is an enterprise-scale runtime data management and distribution service providing resilience (caching, retry and commit) and flexibility across architectures and platforms.

So you can instrument your apps, send them to the one endpoint you need, the Data Hub, and then slide in one or more of the available analytics solutions (including 3rd party solutions) that best meet your requirements. If your analytics toolset changes, you can make any necessary adjustment without having to re-instrument or redistribute your applications. Applications that do not have privacy or regulatory concerns could have runtime data forwarded to the “cloud”. And, Analytics for Applications that touch more sensitive data can be kept internally only. Runtime data can be sent to more than one place, providing a set of checks and balances. Flexible, powerful, secure, actionable… You can have your cake and eat it too.

Improving Mean Time to Repair

Tuesday, November 13th, 2012 by Gabriel Torok

IT shops are facing more challenges than ever before. Among other mandates, they must increase quality and deploy updates more frequently. And many IT organizations are running up against the fundamental truth that it is not possible to simulate production. QA and testing are required and necessary, but there are far too many permutations in production to fully test even under the best of circumstances. So, it is essential to respond to issues in production quickly and efficiently.

Mean Time To Repair (MTTR) is the interval from an unwanted event in production to the root cause being fixed and the service (or application) redeployed and in use by the customer.

A goal for IT is to decrease the MTTR for a service or application while possibly at the same time embracing the concepts of frequent delivery and deployment of software. A rapid diagnose-fix-deploy loop requires adoption of new tools and processes to be successful. Since 80% of MTTR may be spent in the diagnosis phase, it can be useful to focus on that first “diagnose” step in the loop.

Tools like PreEmptive Analytics can help development teams identify the most important and widespread issues in deployed applications even before users report them, and set the issues up to be quickly resolved.

PreEmptive Analytics collects and analyzes production incidents and automatically creates (and updates) work items within ALM tools such as Team Foundation Server. When development teams have easy and complete access to production incidents they can make great decisions about how to triage and repair problems. That saves time, money and makes for delighted users. Isn’t that what every development shop wants?

The Visual Studio and TFS 2012 DevOps Story

Monday, October 22nd, 2012 by Gabriel Torok

Cloud, mobile and distributed software services have made “simulating production” impossible while production and release cycles are becoming more frequent. At the same time, communication and collaboration between development and operations has become a focal point for process improvement, spawning a trend in software development expressed by the term Development Operations (DevOps).

Companies recognize that they need to provide continuous quality and eliminate waste in their software development process. This is especially important as the focus shifts from long QA/user acceptance testing cycles to rapid identification and resolution of issues in production, and deployment of the fixed application back into production. This rapid identify-fix-deploy loop requires adoption of new tools and processes to be successful.

There are complimentary “devops” tools shipping in Visual Studio and TFS 2012 that help reduce cycle times and continuously improve quality. Let’s look at them:

SCOM Application Performance Monitoring

Use SCOM Application Performance Monitoring if you own Microsoft’s System Center Operations Manager 2012 and you have internal applications you wish to monitor such as Internet Information Services (IIS)-hosted .NET applications. The .NET Application Performance Monitoring (APM) template in System Center Operations Manager 2012 allows you to get details about application performance and reliability that can help you pinpoint root causes of incidents. You specify settings, the types of events to collect, the performance goals to measure, and servers to monitor and .NET Application Performance Monitoring reveals how applications are running. You can see how frequently a problem is occurring, how a server was performing when a problem occurred, and the chain of events related to the slow request or method that is raising exceptions.

PreEmptive Analytics

Use PreEmptive Analytics for Team Foundation Server (PA/TFS) if you have a broader set of applications you wish to monitor that are:

  • Enterprise, B2B, or B2C: In and across enterprise, partner, & client domains.
  • Heterogeneous: .NET, Java, JavaScript, Windows Native including WP, Android, and WinRT.
  • Distributed: Client/Server, Mobile, Azure, hosted inside and across firewalls and domains.

PreEmptive Analytics allows you to see, as they happen, the errors your users are experiencing. By aggregating and analyzing exceptions reported by your production applications and automatically creating TFS work items, PA/TFS gives you access to incident data right where you need it – in Visual Studio, TFS Web, and Reporting Services. The work items include the exception type, message, full stack trace, the contents of any inner exceptions, and the list of all assemblies loaded at the time of the exception, as well as the number of such exceptions received. With a small amount of additional configuration, you will also be able to see unique instance identifiers (such as the serial number of each application instance that experienced the exception) as well as comments about the error and contact information, if provided by the end user. PreEmptive Analytics is always on (like Radar) and supports a broad set of “real world” scenarios efficiently, securely and reliably.

Intellitrace

Intellitrace is more like a CAT scan. It is able to provide “deep dives” into complex systems and is well suited when a problem is already known but not fully understood. As an example, if you are alerted to an issue in production with PreEmptive Analytics and you don’t have enough information yet to fully solve the problem, you could use Intellitrace to further dig in. To do this, start IntelliTrace data collection, reproduce the problem, and then stop collection. You can take the resulting log that IntelliTrace creates, open it in Visual Studio 2012 Ultimate, and analyze it. Intellitrace is great for debugging errors that are hard to reproduce or that happen outside Visual Studio, for example, in production or other environments.

DevOps tools and services improve software quality and reduce time to resolution by generating actionable bugs from deployed software. Visual Studio and TFS 2012 include three complimentary tools that help you dramatically reduce time for solving production errors. Take advantage of these and start building better software, faster.

PreEmptive Solutions and Microsoft Corp. Partner to Provide Exception Analytics in Visual Studio 2012 and Team Foundation Server 2012

Thursday, September 13th, 2012 by Gabriel Torok

With their official press release, Microsoft announced the inclusion of a light version of PreEmptive Analytics inside Visual Studio and Team Foundation Server 2012. While PreEmptive’s code protection product, Dotfuscator, has been inside Visual Studio since 2003, the addition of analytics represents a material expansion to our value proposition.  Because of this, our Visual Studio 2012 version has been renamed PreEmptive Analytics and Dotfuscator Community Edition™. You can find “PreEmptive Dotfuscator and Analytics CE” on the tools menu of Visual Studio 2012 in all versions except Express.

Click on it and follow some easy steps to configure analytics to collect information and/or apply code protection which helps prevent against tampering and reverse engineering. You can direct application analytics to our Runtime Intelligence Services in the cloud. Of if you are using TFS, point the exception reporting at your TFS Server (on premise or in the cloud). Then, configure “PreEmptive Analytics” included with TFS to receive the production incidents and create work items based on rules you specify. Lastly, collect, analyze, and surface exception analytics automatically inside TFS and rapidly respond to what is happening in production.

Using PreEmptive Analytics CE inside Visual Studio and TFS 2012, you already have technology to easily collect and “make actionable” production incidents (exceptions) from your applications in production. You already have automatic intelligent creation of TFS work items to solve the issues that affect most of your customers or your most important customers first.

As developers transition into more frequent deployments, it’s more important than ever to have analytics everywhere, and actionable everyday. That’s why we have partnered with Microsoft to deliver feedback-driven development and operations capabilities in the box for Visual Studio and TFS 2012.

PreEmptive Analytics and Dotfuscator are the only software components embedded inside Visual Studio not directly developed by Microsoft. The alignment of technology and product strategy ensures that PreEmptive software is rigorously tested as a part of each Visual Studio release. We are proud to play a strategic role in the Microsoft ecosystem by helping Visual Studio and TFS users build better software by increasing developer productivity, improving user experience, increasing operational transparency, and securing intellectual property. And we are excited to make Microsoft’s DevOps story more complete by complimenting tools like Intellitrace.

PreEmptive Solutions has over 5,000 corporate clients worldwide and software on millions of desktops. Microsoft believed enough in our protection and analytics software to put a community edition inside Visual Studio.  Fire up PreEmptive Dotfuscator and Analytics in Visual Studio 2012 and start protecting your code and making great choices based on real world information. Not sure which version of our software has the functionality you need? Check out our professional SKUs and compare them to the community versions here.

For a short video that introduces PreEmptive Analytics click here.

For a short demo of PreEmptive Analytics click here.

The Forward-Looking Development Organization

Thursday, May 3rd, 2012 by Gabriel Torok

I am giving the keynote at the VSLive conference this month in New York City titled the “Developer of the Future”. As we all know, the software development industry is constantly evolving. While it may be difficult to see those changes day to day, the effects are very apparent from year to year, and what makes a developer or development project successful certainly changes as a result. So, making predictions is always risky and prone to a notoriously low rate of success.

I could focus on the near term and state obvious trends — the demand for developers will not subside. Or, I could stretch far into the future (where no one can prove me wrong anyway) and talk about how “Software will eventually write Software.” Instead, I’m going try to find middle ground – take some risks with my predictions and make those predictions near enough that someone might actually hold me accountable in the coming years.

Applications that just a couple of years ago were available only on a single desktop platform are now available in the cloud or as apps that run on one or more phones/tablets. This trend clearly indicates where the software development market is heading — make the same application available on a multitude of platforms (desktop, phone, tablet, web, etc.). For developers, this means that a new type of expert will soon emerge. Let’s call him or her the “general expert”. The general expert will be valued over the many “narrow experts” that we have today. In the past, being a narrow expert in a single stack such as Windows or SQL Server was seen as a positive. Going forward though, developers will need to navigate across multiple languages and technology platforms to launch a single project.

Moving from the developer to the development team, teams will no longer be able to afford to produce big bang roll-outs and will need to reply upon continuous deployment workflows. Today, services already lack the familiar concept of a version number. What version of gmail are you using? It won’t be long before most applications will also lose their “version” identity. Users will simply expect to be running the latest version of whatever may be on (or connected) to their device. If you use Chrome today, I bet you don’t know what version you have – Chrome is already silently updating itself.

Customer expectations are higher than ever before and their attention spans are shorter. Developers that don’t have an understanding of what drives customer behavior, especially those who are trying to sell apps via marketplaces, will be at a huge disadvantage. Customers eat with their eyes; applications must be visually appealing and dead simple to use.

In any design project you’ll make some good decisions and some bad ones, but you won’t know for certain which is which until you find out from your customers. Rather than try to speak with all of your customers (they won’t always tell you the truth anyway), the use of Application Analytics or Telemetry will be an increasingly important aspect of the software development process. Applications should report back and make “actionable” the production incidents that cause unhappy users. They should also make generic usage information actionable as well (adhering to all privacy concerns of course) to allow for continual improvement based on real world usage and split testing. This is important whether you are building a mobile app, a desktop client application or a mission critical server application.

In summary, in addition to domain expertise, it is more important now than ever to have a broad understanding of platforms and technologies. Also, while understanding of technology is critical, knowledge of your customers, how they use your applications, and what’s important to them about the apps are just as critical. There’s no time like the present (don’t wait for the world to change around you). Get a head start by implementing feedback mechanisms inside your apps today, and make feedback driven development a reality, rather than a vision of what could be.

For more information on how PreEmptive Solutions is helping development today, see: http://www.preemptive.com/pa