Tuesday, November 25, 2014

Deploying a modern app to a distributed sales force in a not-so-modern industry

Earlier this year a great opportunity came my way: the proof of concept WinRT app created to showcase the possibilities for our sales force was received favorably and my team was given the green light to make it a reality. We started preliminary design work in June, finished the first release in October, and we're currently wrapping up the second release that includes order entry capabilities.

Project Goal

The goal was pretty ambitious given the short time frame and its impact on 150+ sales reps throughout North America:
  • Distribute new ThinkPad 10 devices running Win 8.1 Pro with WWAN service.
  • Convert the reps to Office 365 in the process.
  • Deploy an easy-to-use, touch-first sales intelligence app that provides far more actionable information about our customers than ever before available in the field.
Regarding the sales intelligence app, it certainly helped to have had previous experience creating an occasionally-connected Win 8 app. Here's an overview of the new sales app:

Functional highlights

  • Daily engagement list at the rep's fingertips for easy access to customer information.
  • Graphical sales trends, filterable by product segments.
  • Recent history of quotes and orders for a rep's customer base.
  • Rich customer profile info, including sales history and trends, AR and aging data, contacts, quote and order history, even recent history of customer phone interactions with our inside sales.
  • Real-time inventory and pricing data on all products.
  • Ordering capabilities.

Technical highlights

  • Lenovo's ThinkPad 10 device running Win 8.1 Pro, joined to the domain.
  • Designed as an occasionally-connected app using SQLite for caching data locally, with a variable refresh schedule so that more static data is cached for longer, while volatile data is refreshed more frequently.
  • WinRT (C# / XAML).
  • CSLA.NET framework for encapsulating all business logic, not to mention the built-in plumbing necessary to support our 4-tier architecture.
  • MVVM Light toolkit.
  • RayGun error and crash reporting service.
  • Telerik's UI controls for Windows Universal apps
  • SCCM for managing deployment, as this is not distributed through the Windows Store.

Other highlights

  • The ThinkPad 10 device replaces the sales reps' existing desktops and/or laptops. Given that it runs Win 8.1 Pro, we've even loaded some of our legacy apps onto the device, while other legacy apps are accessed via VMWare's VM View remote solution. It's going to be an adjustment for our sales reps...time will tell.
  • This project has certainly helped push our small development group further along to thinking about application design in a more modern way, using newer technologies, frameworks and toolkits.
  • The benefits of the CSLA .NET framework show yet again that our investment in learning and adopting the framework has proven valuable, as we can easily leverage our knowledge to build maintainable applications with lower cost.
  • RayGun, if you've not checked it out, is quite handy. It allows us to be notified of errors encountered by our distributed users before our help desk even hears about it. It pays to read Hanselman
  • This app provides a modern experience that parallels our 20 year old legacy order entry app (still VB6 to this day). It has been a great exercise for our IT group and users to be challenged to think outside of the way-we've-always-done-it box. Old paradigms didn't work with a touch-first app, so creativity was required. At the same time, 20 years of an actively developed application reveal that a lot of thought was put in to it by a lot of smart people during that time.

No comments:

Post a Comment