RADS® was developed to enable the rapid deployment of custom-configured “enterprise applications.” Many tools are available to enable custom code to be written quickly and to help develop applications, but there are virtually no systems that allow you to configure an enterprise application.
We define customization of a system to be one where developers have to write specific code (usually in a complex language such as C++, C# or Visual Basic), which is subsequently compiled into native or interpreted code for execution on a computer system. This specific code requires not just data schema definitions, but also logic for error handling, user presentation, security, data gathering and storage together with the maintenance of relationships between all data items. To support customization, there is significant effort involved to ensure that the system performs as expected by end-users. This process, often referred to as the Software Development Lifecycle (SDLC) or Program Development Lifecycle (PDLC), starts with gathering and meticulously documenting user requirements. From user requirements (which will form the basis for future testing), business analysts make an interpretation (often with input from software architects) to define functional requirements, which are the basic functions that go together to make an enterprise application. Then, software architects (with input from software development managers and business analysts) will create detailed system specifications sufficient for software developers to implement the code to ensure the system functions as required.
Traditional “Waterfall Development” methodologies require many months before any code is written to try to resolve all issues that arise out of confusion or misinterpretation in the development process. With “Rapid Application Development” methodologies, however, the development process has multiple iterations to resolve issues that arise out of ambiguity or misinterpretation. The reason for the success in the software development world of the Rapid Application Development methodologies such as Agile and SCRUM (see http://en.wikipedia.org/wiki/Rapid_application_development) is that the methodology enables feedback from users much earlier in the process to allow fine-tuning of the application, as well as to respond to changing requirements from end-users. The downside is that because user requirements change almost constantly (even after applications have been deployed), the final product is almost never deployed as there is always one more iteration. These changing user requirements are also the greatest downfall of Waterfall methodologies; by the time the system has been finished, the system no longer matches what the user now wants to do.
For many software developers the answer is easy: tell the users to stop changing their minds. In the real world, however, businesses thrive and compete successfully largely because of the ability for individuals in the business to respond dynamically to changing business requirements, government rules and regulations or opportunities for process improvement. To R-Squared, the answer to this problem is to enable a system for which virtually no customization is required while still enabling the user to have the system they want. To achieve this goal, a system is required that can support almost all user functions through configuration.
We define configuration of a system to be one where user requirements can be met by simply turning on or off certain features and changing the settings of other features. This is a mechanism whereby an application has been built to satisfy certain functions out-of-the-box (as well as those functions developed in accordance with software development lifecycles), and those functions can then be changed through a user interface to meet end-user requirements without requiring additional code. An example of a program supporting configuration would be Microsoft Outlook; this is a program that allows users to utilize email functions, calendar functions, notes, contacts, etc. The application is configured by an end-user (or system administrator on behalf of an end-user) to enable email with Microsoft Exchange, internet mail providers (such as Hotmail), POP3/SMTP services (such as those provided by an ISP) as well as other systems. In contrast, Microsoft does not require a user to first specify which email service they want and then for the user to purchase a specific version of Microsoft Outlook.
In some ways, we cheated. What we did was extend Microsoft’s SharePoint platform with some additional enterprise application enabling functions, with the majority of those extensions being functions designed to support wnterprise applications in the areas of Regulated Compliance.
Microsoft SharePoint (http://www.microsoft.com/sharepoint) is a platform with over 6 years of significant investment in enterprise application functions that can be configured. This platform allows the rapid creation and deployment of collaboration portals and websites for end-users; it is responsible for error handling, user presentation, security, data gathering and storage – not to mention that it is 21 CFR Part 11 Compliant (http://www.microsoft.com/office/showcase/2007/cfr/tech.mspx).
Our extensions to Microsoft SharePoint include:
Dynamic Linking (patent pending extension adds the ability to maintain unlimited references and relationships between any data items);
Dynamic Forms (supports field-level security, conditional visibility and inter-field dependencies);
Combination Field (allows individual fields to contain multiple data items);
Digital Signature Field (allows verification and insurance for data integrity);
Template Field (allows data items to be populated from template values);
External Search/Query Field (allows data from other databases and systems to be searched, copied and/or referenced from within SharePoint);
RADS Workflow Engine & Services (provides a configurable mechanism for frequently-accessed workflow actions and mechanisms);
Data Cubes (allows any system data to be readily exported for use in other systems and applications, including many off-the-shelf report products); and
Other data fields (supporting over 20 additional data types and/or definitions including currencies (with automatic conversion and historical rates), time periods and validated text.
In addition to extending the base SharePoint capabilities, we have created a number of utilities and base configurations to speed deployment even further. Our “System Updater” utility allows a pre-existing SharePoint system to be updated with RADS, and for configurations to be deployed independently or combined onto a system. Moreover, our base modules (Arrangements Keeper and SpendTracker) provide pre-defined configurations to support the managing of arrangements with health care professionals and other referral sources, together with managing aggregate spend data.
These capabilities allow us to take the best of the Rapid Application Development methodologies and quickly and easily configure the system to meet user requirements. At least 50% of these configurations can be done real-time while we are in person with end-users; this dramatically reduces implementation times. Other configuration changes (e.g., creating workflows) can normally be made within hours – or at worst, a few days – and again facilitate extremely rapid deployment. The advantage of configuring a system in this way is that at any point in time there always exists a “finished” application that can be further configured at any point in the future.