For people who spend their workdays out in the field, away from an office and a desk, mobile apps are often the primary connection between the work they do every day and their corporate offices. The apps and services that a field mechanic, cable or phone technician or beverage salesperson use are essential tools.
GoSpotCheck, based in Denver, has become an essential tool for many workers. The company’s mobile app and cloud dashboards help 200+ enterprise brands in 70 countries across 6 continents power their mobile workforces. Its software helps teams perfect merchandising, increase sales, reduce labor and expenses, ensure safety and quality, and improve profitability from the field.
Despite having a dynamic product built in three different environments – web, Android and iOS – GoSpotCheck’s engineering team found itself constantly being hampered by slow and complex development cycles. Its Ruby on Rails product monolith had more than 10,000 specs that needed to be tested before every build, but each build was run on a single computer which took 30 minutes per build. Not only was the build and testing process slow and manual, there was no pipeline – everything was handled in an ad-hoc way, without clear gates that the change needed to pass before being pushed to production.
“Our iOS developers, in particular, needed a way to efficiently provision profiles, sign certificates and get properly-signed builds into the App Store,” explains Nick Wilson, Vice President of Technical Operations at GoSpotCheck. “Only one developer at a time could be responsible for that, so if a different developer was running the build on their laptop, they had to revoke and reprovision. It was a mess.”
The team switched to CircleCI and a continuous integration and delivery process, which allowed them to build a fully-automated pipeline for deployments to the web app, the Android app, and the iOS app.
“It’s the difference between working in the Stone Age with crude tools and working in the future,” said Nick Wilson, VP Technical Operations at GoSpotCheck. “Every commit, or every merge pull request can be deployed pretty much immediately.”
The ability to run tests in parallel, in particular, has slashed those 30-minute builds in half. This allows the team to push out an average of one new release each day in its web app.
The ability to use concurrency and split those tests up and run them across multiple containers is one of the things that has allowed us to keep our build times down, despite the complexity and number of tests continuing to increase as we develop against that product,” Wilson said. “Speed is the name of the game in the SaaS business. Being able to deploy new features on a regular basis is super valuable for us, it’s highly differentiating for us in the marketplace and one of the things that has helped us be successful.”
To see more about how GoSpotCheck uses CircleCI for its CI/CD pipeline, watch our case study video on YouTube.