Case Study


In industries regulated by the U.S.Food and Drug Administration (FDA), ensuring quality in their product development and manufacturing processes is quite literally about life and death. These firms’ compliance with government regulations concerning quality control ensures that the drugs, medical devices, and food that those companies manufacture are safe for consumption and use. CodeStringers’ client, MasterControl, provides a cloud-based quality management system (QMS) that enables firms that produce regulated products to comply with government quality regulations and industry standards by:
● Managing critical documents related to product design and manufacturing.
● Ensuring access to documentation is controlled.
● Ensuring personnel are trained and certified to perform their job functions and that their access to information is dependent upon maintaining certifications.

Under the government regulations, documents, including their revisions and history, and training certification information must be maintained for a minimum of 10 years. As such, when a new customer purchases the MasterControl product, they may have tens of thousands to millions of documents and records that need to be migrated into MasterControl.

MasterControl’s Professional Services organization is responsible for helping new customers upload that data into the product for new customers. Their processes and technology for gathering customer data and loading it into the MasterControl product had been, until CodeStringers’ involvement, entirely manual. MasterControl’s data collection process utilized:

● Complex spreadsheets.
● Physical or cloud-based storage to gather documents.
● Import functionality to import information into the product.
● Manual editing of information in the MasterControl product to add missing information and interrelate data records based on the design of the MasterControl system.

CodeStringers was engaged to design and build a web application to entirely automate the aggregation and loading of information into MasterControl with the goal of reducing onboarding time by at least 50% and decreasing customer fatigue during the onboarding process. The results exceeded the objectives. In one case, a configuration was reduced from weeks of effort and months of duration to 30 minutes. On average, the application has reduced onboarding time by 57 %.
“Our Services organization is scaling quickly, and we urgently needed a custom software application to automate our workflows without breaking our annual budget,” said Lori Oakley, EVP of Professional Services and Training at MasterControl. “CodeStringers was the perfect fit, supporting us from ideation through go-live and everything in between. They innovated, hit their deadlines, and released an amazingly high-quality application that decreases our internal costs and improves our reputation with our customers. It would not have happened without CodeStringers.”

On average, the application has reduced onboarding time by 57 %

MasterControl’s Business

MasterControl provides quality management software to drug, medical device, food and discrete manufacturers that enables them to maintain quality standards and adhere to government regulations and industry standards. The continual growth of MasterControl’s business has mandated a number of initiatives to improve internal scalability via improved processes and technologies. One of these initiatives has been to streamline onboarding of new customers, decreasing the time-to-value that customers experience from contract signing to the point their employees are able to use the MasterControl product to manage their quality processes, documents, and data.

Business Challenge

Adherence to government requirements, including the U.S. FDA, dictates that customers maintain documents and employee training and certification data for decades. For documents, this includes all revisions, approvals, and other workflow status changes. For training, this includes all courses completed, certifications granted, and certifications that have expired for all employees involved in regulated processes.

Customers who purchase the MasterControl product will have from tens of thousands to millions of database records and documents that need to be loaded into the MasterControl software to ensure that MasterControl is not only their compliance management system going forward, but also for storage of historical data.

To date, configuring the MasterControl product and loading each customer’s data into the system has been a largely manual process and typically differs from customer to customer. The process involved using spreadsheets to gather database data; a variety of methods ranging from physical storage devices to cloud storage services to transfer digital documents; manual import processes to import data; and record-by-record editing of records in the MasterControl to required linkages between different records and documents. The process would take anywhere from a few months to a year depending upon the size and complexity of the customer and their requirements. Prior attempts at creating best practices that conform to industry standards had been only partially successful or unsuccessful because they did not provide any flexibility for varying customer requirements or they failed to scale to support the growth in MasterControl’s business.

The process involved using spreadsheets to gather database data…
The process would take anywhere from
a few months to a year

The Solution: RapidOnboarder

RapidOnboarder MasterControl engaged CodeStringers in early 2018 to begin ideation around a set of internally-defined best practices to standardize customer onboarding while providing sufficient flexibility for varying customer requirements and, in tandem, a custom software application that automated those best practices. The primary objective was simple. Reduce time-to-value for customers by at least 50%. Secondary objectives included decreasing customer fatigue caused by the onboarding process and making customers expansion-ready (ready to purchase more functionality from MasterControl) sooner.

Product Planning Phase

Prior to writing the first line of code, CodeStringers collaborated for more than a year with key stakeholders in both the Product and Professional Services organizations at MasterControl to understand their product functionality and the existing processes for onboarding customers. Our work took the following stages closely resembling a design thinking process:

Stage 1 – Discovery
We needed to understand the “day in the life” of an Implementation Consultant at MasterControl, including the process and tools they use to define and assemble each customer’s configuration and data and load that data into the MasterControl product. We also needed to understand the different configuration data types within the MasterControl product that manage the workflow of documents and training records and how those data types interrelate. This process involved several hundred hours of sessions with stakeholders and culminated in a firm understanding of how the business currently operated.

Stage 2 – Ideation
In this stage, we started to envision the solution, both by defining a future state forthe stakeholders we had interviewed and by envisioning the software that would deliver that future state. We identified mechanisms to allow Implementation Consultants to more rapidly capture and interrelate data in the system, but this process still involved manual effort. Thus, we also defined methods to automatically generate a customer’s configuration, including the interrelation of different configuration data types, in order to dramatically reduce the time to create a customer’s configuration while also aligning the auto-generation to the best practices that had been defined internally.

Stage 3 – Prototyping and User Testing
At the heart of good software product management is the ability to translate ideas into an executable software development and release plan. In this state, we took the first step in that journey by drafting high level (summaries only) user stories (agile development method functional requirements written in the voice of the user of the feature), creating wireframes of the user interface, and making those wireframes into an interactive (clickable) prototype. No software was built during this phase. Rather, we used tools available to product managers and user interface designers to create a low-fidelity set of screens that have clickable zones that mimic what real software might do

That prototype was then presented to the same stakeholders who participated in the discovery phase and the prototypes were iterated numerous times to get to a final prototype that all stakeholders stated would achieve the objectives set for the program.

Stage 4 – Release Planning
In the final planning phase, we developed a software release plan, which included:

● Detailed user stories, including a “definition of done” (acceptance criteria), grouped into epics (related groups of stories that improve requirements traceability).
● Determining which user stories and epics would be completed in the first release, which is termed a “minimum viable product,” and which stories and epics would be deferred to subsequent releases.
● Time-based estimates of each user story, including both development and testing time.
● A methodology to translate the effort above into a duration that factors in multiple developers and quality assurance engineers as well as the overlapping nature of some workstreams (i.e., definition of test cases for a given feature happens while the feature is being coded while actual testing of the feature happens when the developer has completed initial coding).
● A methodology for prioritization of defects and service-level agreement for pre-release defects as well as escaped defects (those that are not caught by quality assurance and end up affecting production users).
● User interface style guides that marry the MasterControl corporate branding with product style guides and the functionality included in the RapidOnboarder application.
● User interface designs that provide pixel-perfect screen designs for all functionality to be developed.
● A recommended technology stack, including infrastructure (hosting), web front-end functionality, and database back-end services.
● An architecture that includes both microservices and initial database schemas, factoring in that RapidOnboarder is a multi-tenant application that logically separates each customer’s data into a separate instance of the database and a dedicated web application domain (i.e.,

RapidOnboarder Functionality

RapidOnboarder is designed as a multi-tenant enterprise cloud application that separates customer data into separate database instances and web services in order to secure and compartmentalize confidential customer data while sharing common hosting infrastructure in order to leverage the built-in economies of scale afforded by cloud hosting. Professional Services Consultants at MasterControl access the application through a “System” console where they can create and access each customer’s “Domain”, which is each customer’s instance of RapidOnboarder. Customer users access their own domain only. Permissions are managed to ensure that Consultants are able to access only domains to which they are assigned and are able to edit all information within those domains, while customer users are able to access their domain and view all information and edit only a limited set of information based on the business process through which the Consultant leads them.

The web application is designed to allow users to quickly and efficiently enter thousands of data records into multiple datasets and then interrelate records among the datasets. Examples are datasets that capture records of users (employees) and a dataset that includes permission roles where one user may be assigned to multiple roles. Each of those datasets may include several hundred to thousands of records and the number of interrelationships maybe tens of thousands. Thus, the user experience and interface must allow for rapid entry of the user and role records and for interrelating those records. Then expand this example to a dozen different datasets where each dataset may relate to between two and 10 other datasets.

The users dataset in RapidOnboarder showing roles to which each user is assigned

Every dataset allows for manual entry of data, copying data from another formatted source and pasting it into the RapidOnboarder application, or downloading of an Excel import template, completion of the template, and import of the Excel document into RapidOnboarder.

Some of the datasets capture MasterControl product configuration information, such as roles, while other datasets capture customer data, such as users. In the case of configuration information, RapidOnboarder sought not only to make it easier and faster for Consultants to manually enter information, but to actually fully automate the creation and interrelationship of that information, applying industry and MasterControl-specific best practices. We call it “autogeneration” of configuration and, for a customer that can access best practices without customization, autogeneration can reduce weeks or months of effort defining and creating the system configuration to minutes.

Finally, RapidOnboarder allows Consultants to configure multiple MasterControl servers into each customer domain for the purpose of pushing information from RapidOnboarder to the customer’s development, testing, and production instances of the MasterControl product via Application Programming Interfaces (APIs) within the MasterControl product.

Thus, Consultants work with customers to create and interrelate information in the RapidOnboarder application; review the final configuration with the customer in RapidOnboarder; and then “push” the information from RapidOnboarder to the customer’s MasterControl server(s).

RapidOnboarder enables Consultants to “push” a customer’s configuration totheir MasterControl server without laborious manual imports

Product Development Phase

Following the planning phase of RapidOnboarder, CodeStringers assembled a 22-person team that included a product manager, project manager, requirements analyst (assistant product manager), 12 developers, and six quality assurance engineers. The application was built using a Scrum agile methodology executed in two-week development sprints.

The initial sprints focused on the underlying architecture of the system, core front-end components for the dataset table and data manipulation functionality (copy, paste, fill down, insert rows, delete rows, etc.), and the multi-tenant architecture and functionality for domain setup and permissions management.

Thereafter, the team developed one dataset at a time, reviewing developed functionality with Consultants after each sprint, gathering feedback, and incorporating desired improvements into subsequent sprints. The first version of the application was released in production two weeks shy of one year from the start of development (23 sprints).

Our engagement with MasterControl was for a long-term relationship to provide a development team at a fixed monthly cost per team member. This type of structure aligns to the needs of customers building software products because it allows for the continual iteration — changes in scope — that agile development supports without requiring continual contractual changes to handle the changes in scope.

The Outcome

The results achieved exceeded the objectives. In one case, a customer’s configuration that would have taken months to define and create using the prior process was automatically generated by RapidOnboarder in less than 30 minutes. On average, the first version of the application reduced configuration time for new customers by 57%, and subsequent versions added to that time savings.