The .NET community is millions of developers strong, with people around the world turning ideas into apps across web, mobile, desktop, and the newest connected device platforms. Colonial Life’s developers know that whatever you’re building, user experience matters, and they’ve used their C# expertise to equip their field sales agents with intuitive, native mobile apps. With the Colonial Life Agents app, agents focus on what matters: serving customers.
Today, Teryn Gull and Matt Baston, Colonial Life Software Engineers, join us to share how their team completely rebuilt their agent app to include intelligent filtering, consumer-esque help tips, and more. Long-time C# and Microsoft advocates, using end-to-end Microsoft mobile development tools and services, including Xamarin.Forms, automated testing, distribution, crash reporting, and Team Foundation Server, allows them to move quickly and continuously deliver value to the business.
Tell us a little bit about your company. Who are your customers?
Colonial Life is a national leader in the employee benefits industry, founded in South Carolina nearly 80 years ago. We’re one of the area’s most prominent and respected companies, and we’re often recognized as one of the best places to work in the state. Our teams work with employers to provide comprehensive and competitive benefits packages to their team members (including vital health and wellness protection, like life, disability, accident, hospitalization, critical illness, and cancer insurance). Our goal is to help employers attract and retain the best talent and to help employees protect their families, their finances, and their futures.
We take our mission seriously. Our 10,000 member national sales team is dedicated to ensuring all employees understand what their employer provides, as well as their unique needs, often meeting one-to-one with every employee in a given account. As a development team, these field sales team members are our customers, and we need to equip them with the best possible tools and services to give the best service to their clients.
What does your development team look like? How is it structured?
We’re the definition of “lean.” Our four-developer team builds, maintains, and updates 15+ web apps and 1 mobile app that all help support our sales team. We’re part of a larger Agile team that includes a Test Engineer, SCRUM Master, and Business Analyst.
[Matt Baston, MB] Like Teryn, I’m a Software Engineer and I started at Colonial Life in 2008. Before settling in my current role as a web/mobile developer, I was a part of a mainframe Data Warehouse team as well as our BPM (Business Process Management) team. I’ve also done some freelance work, teaching students and entry level programmers the basics of web development. I’m passionate about programming and designing software. It’s always better when you’re building something and can see how it’s benefiting your customers.
Tell us about your app and why you’ve built it. Why does it matter to Colonial Life?
We have a unique organization, where our teams’ customers are our field sales agents: independent contractors who are licensed to offer our insurance services to employees at the workplace. Therefore, they’ll only use technology that helps them, not just because it’s corporate-sponsored. In this environment, quality becomes even more important. We knew we needed to not only offer something beneficial, something that makes their jobs easier, but something on par, or better, than any other business productivity app.
Our first-ever field agent app spun out of an internal IT hackathon, back in 2015. At the time, the agents and managers used web-based applications with tons of customer and account information. This is great when you’re at your laptop or at home, but not always practical on the road. A couple of developers saw a need: a pared-down version of our web experience, focused on surfacing the information that’s most important to our agents when they’re out calling on customers.
They created the “Colonial Life Agents” app, built with Xamarin.Android and Xamarin.iOS, and published via the public app stores.
Tell us more about the first project. How did you build it?
The original Colonial Life Agents app simplified access to existing account data for field canvassing, with various mobile-unique capabilities, like locating nearby customer accounts, click-to-call contacts, and more.
From a dev perspective, we chose Visual Studio Tools for Xamarin based on several factors:
- We’re a Microsoft shop and our staff has extensive C# expertise. Leveraging our existing skillset meant that we could focus on learning about specific mobile platform nuances without learning additional programming languages at the same time.
- We knew we’d be able to deliver native apps quickly, meeting our customers’ timeline and quality expectations.
- Code reusability across platforms. Not just for the initial build, but to reduce ongoing maintenance overhead.
Our executives, sales managers, and agents immediately took notice and liked the project, but, since we support the entire organization, other priorities quickly overshadowed mobile enhancements. We’ve continued to grow as a company, and it came time to re-launch (and improve) our agents’ mobile experience.
When we began tackling the new project, we wanted to do more. The hackathon project was a great starting point, but it was difficult to sort through accounts, especially for sales managers whose reps manage hundreds (if not thousands) of customers at one time. We use “help our field agents do more, faster,” as our mantra, and every feature and capability we designed had, and continues to have, this guiding principle in mind.
So, we didn’t just update the app to a fresher look and feel, we took agent and sales leadership feedback and our own experiences with quality apps and started from scratch. We looked at what features field agents used most frequently, on both web and mobile, and created a user experience that put actionable data in their hands without overwhelming them … and it’s paid off: we’ve seen about a 400% increase in daily users, and the sessions per user have almost tripled since the relaunch in August!
You completely redesigned and rebuilt your apps! Talk to us about what’s changed, and why.
Yes! We completely reengineered our supporting data model to accommodate manager and office hierarchy, so managers can drill into specific reps’ accounts, or see a complete list and status at-a-glance. We also completely redesigned the UI for a much better user experience. For example:
- We’ve expanded our app. Instead of using tabbed pages to navigate that expansion, we’ve added a hamburger menu to make it easy to navigate to different screens.
- Our new dashboard feature gives agents a high-level overview of their accounts and the ability to view detailed breakdowns (like active and inactive accounts). Tapping on any breakdown navigates to those types of accounts.
Now, reps and managers can use robust filters to find the right accounts without being overwhelmed with several thousand accounts, making them more productive and resulting in a better experience for field agents and Colonial Life’s end customers. Agents don’t waste time looking for accounts who could benefit from new policies or tracking down contact information, they’re able to prioritize and spend time helping customers get the best possible coverage.
What is the most compelling or exciting aspect of your app? Why?
We’re really proud of the targeted location-based search and our account filtering options. These features are very powerful and bring great value to our agents. Most recently, we’ve also added built-in help tips to show users how to navigate and get the most out of the app.
In-app education prompts vary, based on what access the user has, so we’re not serving up the same tips for everyone. The first time agents open the app, they swipe through three screens, showing how to navigate through the app, the dashboard, and see all accounts nearby. Managers see a 4th tip, specific to seeing their team’s accounts. Having these help tips alongside the apps’ main features allows us to deliver a well-rounded, feature rich application that we can be proud of.
Walk us through your development process.
Since we have in-house C# expertise, and the original app was built with Xamarin.iOS and Xamarin.Android, we knew that we wanted to use Visual Studio Tools for Xamarin off the bat. But, we debated whether to continue with the traditional approach, or recreate everything in Xamarin.Forms. After weighing our options, we went with Xamarin.Forms. While this meant we needed to redo all of the existing app functionality, once we’d completed the existing features, new changes took us even less time than before. Now, we’re creating the UI once and sharing our backend and front end codebases, and we’re sharing over 90% of our code across Android and iOS!
We use Visual Studio for Mac on the IDE side, while Xamarin Test Cloud*, HockeyApp*, and Team Foundation Server (TFS) round out our CI/CD processes. From redesign to deploy, we shipped our first version just four months after we started, in August 2017. Given our complex underlying data structures and 100% from-the-ground up work, this was a big win for us as a team, as well as for our agents.
*Ed note: Xamarin Test Cloud and HockeyApp are now part of Visual Studio App Center.
Talk to us about how you’ve set up (or are setting up) CI/CD and why it’s important to you.
We operate on two week sprints, and we know that CI/CD will set us up to push updates as frequently as we can, whether we’re adding new features, incorporating newly available data, or updating backend capabilities. Since launching in August, we’ve already deployed two updates (as of November), with many more in the works, and we’re just getting started with our automated development pipeline.
Going from a two-year lull in upgrades to three releases in three months? That’s why we believe in CI/CD and automation, and are investing in streamlining the end-to-end process.
Additionally, mobile quality and releasing with a high degree of confidence is something we take very seriously; we want to release great new features, but they need to work.
To help us do that, we:
- Use HockeyApp* for beta testing and crash reporting. For beta testing, we push apps to our in-office test devices and to internal beta testers (we love that HockeyApp* allows us to manage Android and iOS apps in one place, instead of using two different tools). We use crash reporting to track down bugs, understand why they’re occurring, recreate them, and ship fixes.
- Understand the value of automated UI testing on real devices. This is really important for us; we only have six or so physical devices (Android and iOS) in our office, and, with Xamarin Test Cloud*, we easily test dozens of software and hardware combinations that we don’t have access to. We’ve authored 50+ UI tests, testing every page in our app, from basic functionality to more nuanced interaction, so we spot and fix problems before we get too far in development (or release buggy apps to the store).
- Will implement TFS Build & Release to automatically push our builds to HockeyApp* with every check-in, distributing new versions to testers more frequently and notifying them accordingly.
*Ed note: Xamarin Test Cloud and HockeyApp are now part of Visual Studio App Center.
What have your users or business stakeholders said about your app?
We asked our internal stakeholders, and one recent quote from a Vice President at Colonial Life sums up the general feedback and tells us we’ve accomplished Step 1 of our goals:
“The agent app is an information speedway, designed to quickly give our sales agents the right information, in the right format, and at the right time. This ultimately generates surplus time that’s better devoted to acquisition and retention needs, which is good news for the customer, agent, and company.”
What’s your team planning to build next?
We’re going to keep expanding, and improving, the Colonial Life Agents mobile app with exciting features already planned for 2018!
What advice do you have for developers who are just starting out or investigating mobile development?
To get up to speed, we took a few Xamarin University classes to learn the basics, and then we learned as we went, researching issues via Xamarin Forums and Stack Overflow. There’s a lot of sample code available in Xamarin Docs, and we referenced the Xamarin.Forms sections to get up and running quickly (we used the custom map pin guidance extensively; it was really the best source to figure out our implementation).
Additionally, don’t be afraid to go against the grain in your development tools. We needed a local database on the device that would house city, state, and zip code combinations. Instead of calling a service every time, our apps load the data first time you launch the app, so it’s much faster to search and pull results. SQLite seemed like the popular choice, but I’d seen some interesting news about Realm.io, and it’s turned out to be just what we needed. Long story short, make sure you research all of your choices, and pick the one that’s best for your project, not just the one with the most search results.
Our parting recommendation: explore the resources (there are tons!), but, honestly, you’ll learn so much as you start coding.
Visit xamarin.com/customers to learn how our customers across industries and geographies deliver amazing mobile apps, and visit xamarin.com/download to start building your own.