Developing Loupe 4 - Details on what's coming and why

Last February and March we interviewed many users of Loupe to understand how well the changes in Loupe 3.5 were being adopted.  The answers were a mixed bag - a number of features weren’t being used broadly because people didn’t know about them, weren’t sure how to use them, or didn’t feel the juice was worth the squeeze.  We decided to defer what we had planned for Loupe 4.0 to double back and really address this feedback from our most critical audience (folks using Loupe every day to solve software problems).

Not the Results We Expected

Customers aren’t using Loupe Server as we expected when it was developed. Reviewing the Loupe Service we identified that most subscribers hadn’t set up user accounts or logged into Loupe Server. Those that had clearly weren’t making an effort to keep up with the review list, use notifications or rules, or create issues. In short, users are predominantly using Loupe Server as if the web interface isn’t available.

After interviewing users, we identified several common reasons for this:

  1. They assume Loupe Server is a subset of Loupe Desktop and don’t try it.
  2. They couldn’t find key sessions in Loupe Web to drill into efficiently, so they use Loupe Desktop to do this.
  3. They couldn’t identify errors for recent versions and key users.
  4. They perceived it takes too much work to manage the review list.
  5. The extra work to create issues feels like duplicating their defect tracking system.

Tackling all of these reasons is going to require a set of changes, but we’re determined to get as much of them in as we can for 4.0.  Item Four was the motivation for the new Issue Management screen in Loupe 3.6.  We did some additional navigation adjustments in Loupe 3.7 for this as well.

For Loupe Desktop

People assume that a web UI is a subset of a desktop UI - is a subset of Microsoft Outlook, Word and Excel online are a subset of their desktop counterparts, etc.  With Loupe, the current feature set of Loupe Server and Loupe Desktop are almost entirely non-overlapping.  We need to address that by bringing unique features of Loupe Web down into Loupe Desktop.  The big barrier to this is that Loupe Server doesn’t have a data access API.  Instead, Loupe Desktop synchronizes down a copy of the latest session summaries.  To access Issues, Application Events, and Log Events in Loupe Desktop we’ll have to have a web API that can query them in real time and then build a desktop UI for it.

This opens the door to address a scalability problem with Desktop - it keeps all of the session summaries for the repository in memory for rapid updates and presentation.  That works fine up to a few hundred thousand sessions but now we have customers with millions of sessions - too much for memory.  We need to stop copying down summaries and instead query them from the server in real time too.

New User Support Features in Loupe Web

Loupe 3.8 Wireframe SampleItems two and three are squarely functional issues in Loupe Web.  These items are directly related to providing rapid support to users as opposed to general software quality concerns.  For example, the current web UI is primarily built around knowing what the top problems are with a particular version of your software but it doesn’t provide a quick way to find the specific problems one user is having.  What we’ve seen is that when providing support people go from support request to computer to session to error.  Loupe Desktop currently approaches data from the other side - the error to find the related sessions and therefore computers.  All of the data is in the database but the server lacks the visualizations to make it quick to find.

For Loupe 3.8 we’re going to add new ways of drilling through the computer and session information on the server to enable these on-the-spot support scenarios, like:

  • User contacts you with a problem (via email or phone or your support system).  Usually you get a partial set of information but know their name, possibly the computer they were using or the timeframe in their time zone and a fragment of an error message.
  • You need to find the full error information in Loupe as well as contextual items (like what computers are involved, what versions they’re running, recent changes they may have made to their environment) so you can solve the problem for this user and determine if there’s an underlying defect that needs to be resolved.

Dig into the Details

We’ve published the internal document the team developed that walks through the problems above and others that we found in more detail along with proposed solutions.  It’s worth a read to get a full view of what’s being planned for Loupe 4.

Deeper Integration

Loupe’s focus on managing runtime quality problems is a great complement to your team’s workflow tracking system (where you have all defects, feature requests, etc.) but no one likes entering anything in two places or keeping them in sync.  We’ve had defect tracking integration with FogBugz and Gemini for years through our add in extensibility API, but this API predates the Issue and Application Events in Loupe Server so it’s not up to the task of providing a true, fully automated integration point.

For Loupe 3.8 we’re going to have to go beyond this capability to both increase the value of combining Issues with your workflow tracking system and lower the effort.  We plan on extending the add in extensibility API to expose all of the server data entities as well as the events necessary to create rich, bi-directional integration.  We’ve also gotten numerous requests to have built-in integration with JIRA and TFS so we’re going to attempt that as well.

We’ve also had requests to extend Server notifications to support web hooks.  In the abstract, this seems like a cool idea but we’re not quite sure what integration scenarios that would create out of the box, so we’ll have to do more work there to understand exactly what it’d take to accomplish what people want.  If you have a specific webhook integration scenario in mind, please let us know!

Up Next - Wireframes!

In the next article on developing Loupe 3.8 we’ll present the wireframes the team made to address the features we’re looking to add in this release.  As we get into the sprint where we’re building out each we’ll first publish an article which walks through just that section.  If you think we’re headed in the right direction, wrong direction, or have any other comments let us know - either in the comments here or in the forums on the Loupe support site.

Get Your Backstage Pass

We are trying a more open approach with Loupe 3.8 development. Please register below to receive additional Loupe 4 updates, design artifacts, previews builds and special offers.

There’s a lot of stuff planned for Loupe 4 - and we’d like your feedback on what would make the biggest difference to you so we can be sure to hit the mark! You can always leave a comment here, but even better would be to pop over to the support site and write a feature request to make sure your voice is heard!

Related Posts

PostSharp Diagnostics Now Supports Loupe in the Box

The latest update to PostSharp Diagnostics adds Loupe support, enabling extensive high-performance logging to be added to any .NET application with virtually no code changes. PostSharp even has a great free option for developers that complements Loupe Desktop! Read more

Loupe Agent for .NET Core Now Available

The first release of the Loupe Agent for .NET Core is also our first open source version of the Loupe Agent. This is the first step in our plan to open source the entire Loupe Agent to make it easier for anyone to extend and take advantage of what Loupe... Read more

Rock solid centralized .NET logging

Unlimited applications, unlimited errors, scalable from solo startup to enterprise.