Packaged vs. Custom: Can you develop an offline sales and field service app from scratch in 6 months?
To build or to buy?
That’s a question countless companies face when shopping for software to further enhance their operations. And mobile solutions for sales and field service are no exception. But since there are already dozens of articles discussing the general issue of packaged (commercial) vs. custom developed software, we decided to go further down the rabbit hole and ask a more specific question:
What if someone told you they can develop a mobile app for sales and field service with full offline functionality for you in 6 months? Is that even possible?
To give a detailed answer we started by taking a closer look at our very own Resco Mobile CRM. Let’s break it down with a bit of simple math.
Resco Mobile CRM’s offline functionality code consists of:
Offline database – 5348 lines of code
Includes SQL query generation, data access layer, CRM specific datatype mapping.
Encryption – 2000 lines
Contains password protection, database protection, binary large objects (BLOB – mostly multimedia attachments) protection, and configuration protection.
Synchronization – 11894 lines
Incorporates generic upload and download of modified records, tracking of modified records, CRM-specific rules, synchronization filters, conflict handling, BLOB handling, and deleted records tracking.
Communication – 4100
Combines HTTPS network communication, data serialization, and error recovery processes.
The total number of lines of code for Resco Mobile CRM’s offline capability is 23 342 (at the time of publishing this blogpost). Keep in mind that we are still talking only about the coding required to get the app’s offline functionality up and running – no work on other aspects of the solution is included in this calculation.
Importantly, building such an essential functionality is not a “mass-programming” task for juniors and needs to be handled by developers with substantial experience. Data synchronization must work for multiple (hundreds, or thousands) parallel sessions connected to the same CRM server working with the same subset of a CRM database. Moreover, connection through the mobile data network is often quite unstable and so it can cause many interruptions and other problems. Also, the synchronization must consider all the CRM specifics such as business rules, cascading server actions, record dependencies, circular references, data transfer optimizations, etc.
Hence, we are talking about quite complex and difficult algorithms requesting deep knowledge of math, database, internet, security, mobile device environment, and other advanced techniques and technologies. The entire source code is difficult to read for outside developers and to avoid confusion and possible misunderstandings, the team working on the project shouldn’t be too large – even the smallest uninformed intervention to the code can cause synchronization crashes, or even cause damages to the server CRM data.
Let’s say that a senior developer working on the offline capability can on average write 10 new lines of code per day (according to Frederic Brooks’s The Mythical Man-Month). At that rate, you would need over 2334 man-days to create the 23 342 lines of code, which translates to more than 116 months of development (That’s over 9 and a half years!). Even if you had 15 senior software developers working solely on the offline functionality, they still wouldn’t complete the assignment in half a year (6 months translates to 120 man-days, which multiplied by 15 equals 1800 – still 534 man-days short).
And we haven’t considered the costs incurred, so far. According to Payscale.com, the average hourly rate of an experienced senior developer is approximately $60. With that in mind, merely the salary expenses for 15 senior developers would account for $864,000 over a 6 month period.
Furthermore, to develop a properly functioning mobile app for sales or field service you need experienced professionals in a wide spectrum of areas. To name just a few of the essential roles, you’ll definitely require a database and SQL expert, networking and synchronization expert and a security (authentication and encryption) specialist. Not to mention a skilled CRM professional, who knows the ins and outs of the system you’re integrating the mobile solution with – whether it’s Microsoft Dynamics, Salesforce, Oracle CX, or others. In addition, an iOS, Android, or Windows specialist – depending on the platform you are developing for – is necessary. Or an entire team of them, if the app’s supposed to work across multiple mobile operating systems.
And speaking of mobile platforms – the leaders introduce new mobile OS’ annually and also add several major updates throughout the year. On your desktop, you could be still running even Windows XP (first introduced more than 15 years ago) without any issues and a user experience almost identical to the latest Windows 10. The mobile landscape, however, is significantly different – operating systems are still evolving at a rapid pace, with essential functionality added every few months. And with new, more powerful phones and tablets constantly coming to the market, the upgrade cycle for mobile devices is faster as well. The result? A mobile solution is never “finished” and apps require continuous maintenance to stay on top of new versions of operating systems, wide range of mobile devices and their features.
Take fingerprint login as an example: As soon as it was introduced in iOS and Android devices it became a standard way of logging in. And when the technology became available to incorporate into third-party solutions, countless companies implemented it into their apps. Using it either as a primary sign-in option or as another security layer for multi-factor authentication.
Another pressing caveat when creating a custom solution from scratch, comes to the light after the initial development. Yes, we’re talking about the testing stage which shouldn’t be fast-tracked. Thoroughly checking that all processes and features work as expected is the foundation that ensures avoiding complications in the future. After all, you probably don’t want to lose that vital business information if you suddenly turn out to be without an internet connection. What happens when you drive through a tunnel or step into an elevator with no coverage while working with your mobile CRM app? Even such mundane situations need to be thoroughly thought about.
Put it in one sentence: We don’t think you can build a reliable offline mobile CRM solution from scratch in 6 months. As a matter of fact, we don’t think that having a custom developed offline app is a viable idea at all. It’s almost the same situation, as if you decided to custom develop a speech recognition. Such complex solutions need years of development and further years of real-life usage and quality assurance. So is there any good news? Yes – this is where Resco comes into the picture for just a fraction of the expenses and time needed for custom development!
“Initially, we decided to hire an off-shore software development company to build a mobile CRM for us from scratch. However, the result turned out to be more of a container for the web browser application with limited functionality on a touchscreen device – not a native mobile application. Additionally, the implementation wasn’t as fast as projected and the costs were nowhere near the initial quotes. We soon realized we needed a different solution and started researching different options. We evaluated Resco and working directly with the Resco team, we were able to provide a high-quality solution in a short time frame. This gave us confidence in Resco Mobile CRM to deliver our requirements and Resco, as an organization, to support us,” CRM Development Manager Andy Darby, recalls why Enterprise Inns – Britain’s largest pub company – chose to equip their mobile workforce with Resco’s mobile solution.
Resco Mobile CRM is continuously being developed since 2009, with full offline functionality and utilized by more than 1600 corporate customers all around the world, integrating with Microsoft Dynamics CRM, Oracle, Salesforce, or used even as a standalone solution. And unlike most commercial software products it is also extremely customizable and ready to be tailored head-to-toe to unique business requirements – from features and functionality, to the user interface look and feel.
To find out more, please visit www.resco.net or ask us at email@example.com. You can also learn about the latest features of Resco Mobile CRM in the upcoming two-part webinar series, taking place on January 24 and January 26, 2017.