Software Proof of Concept Best Practices A software selection process is often described by project managers and business analysts as one of the most difficult endeavors an organization can undertake. The costs alone of bringing in vendors, pulling employees off their current job duties, sitting through canned presentations, comparing notes, and selecting a product creates such an enormous burden that “No Selection” is often the conclusion to the process. Creating buy-in from end users only adds to the time, costs, and efforts of the process. The indirect costs associated with an evaluation can often be up to 25% of the cost of the product. Studies (DeGrace, 1990) indicate that those organizations that do select a product often set expectations for a failed implementation by creating requirements that are not fully understood before the project begins, by educating users on requirements only after having seen an initial version of the software, by changing requirements during the software configuration process, or incorporating methodologies that make the implementation of best practices impossible. A proof of concept is used as an implementation milestone. It gets a buying committee past the “canned sales” presentations to a true understanding of the capabilities of both the company and the product. A proof of concept phase of the buying cycle enables an organization to incorporate the concerns and facilitate adoption of the end user community, create change, incorporate best practices, and set the tone for a successful implementation. What is a Proof of Concept? A proof of concept is a test(s) of a software application made by building a prototype architected from detailed process design documents. It is the first milestone in the implementation process that clarifies the requirements process and prototypes the configuration requirements. The proof of concept requires bringing the vendor's product in-house to ensure that it will work in the proposed environment and function the way it was promoted by the vendor. The outputs from a proof of concept includes design documents that detail current business and best practice processes, in depth tests and analysis of the capabilities of the product and the company, communication and training plans that facilitate end user adoption, architecture documents that specify data mapping and conversions as well as any interfaces to third party external systems. Defining a proof of concept as an implementation milestone educates users on requirements. When to Perform a Proof of Concept Due to the scope and complexity, the proof of concept occurs at the end of the sales cycle and continues as the first milestone of the implementation. As a result, an organization is better off working with one vendor in a proof of concept for a myriad of reasons: the high cost and effort involved in understanding the product capabilities, the time spent on gathering requirements, the re-allocation of human resources, the money spent on travel, the efforts to generate best practice design documents, the depth of testing and the level of involvement from the vendor. Conversely, an organization would have to perform the first implementation milestone twice should they use a proof of concept as part of the vendor selection process. The end result would be much greater costs, efforts, and resource utilization that create a greater probability of “No Selection”. Due to the scale of the proof of concept as the first milestone in an implementation, best practices indicate that the organization complete the vendor selection process with one vendor. It may be in the organizations best interest to inform the second place vendor of their status in the event that the primary vendor does not succeed in the proof of concept. Defining the proof of concept as a milestone in the implementation enables an understand requirements in a methodological manner that sets the tone for a successful implementation. Creating a Proof of Concept As mentioned earlier, a proof of concept is a test of a software application architected from detailed process design documents. The timeframes for a proof of concept should be well defined and in proportion to the time of the implementation. For instance, an eight month software implementation should take no longer than two months for the proof of concept. As it is the first milestone in the implementation, the first step is design documents that include project plans and charters, developing product training workshops, conducting design sessions that go beyond functional requirements that include data conversions and interface mappings, provisioning environments, and generating test scripts. The outputs should include product specific project plans with clear roles and responsibilities, product training, functional and technical requirement documents, a production and development environment, fit-gap analysis, and testing documents with measurable pass/fail results. Project plans are often produced by the vendor and managed by the organization. Product training enables the organization to assist with configuration and train end users. A fit-gap analysis is often performed after product training and may be develop from a request for proposal (RFP) or request for information (RFI). It is important to have a development environment as part of the system to test processes prior to migration to the production environment. The major forms of testing include user acceptance, system and parallel testing. User acceptance testing occurs when a particular feature is used with a result of pass or fail. For instance, can a product save account information: the result is either yes it can or no it cannot. User acceptance testing is also used to generate end user buy in especially when performed by a well respected peer(s). Stress tests measure the speed and responsiveness of the system. Parallel tests have two inputs, one in the legacy system and one in the proposed system and the outputs of the tests should be identical. Last, the proof of concept should include tests about the vendor. For instance, does the vendor have the knowledge and expertise to manage change in an organization? Do they understand how to implement best practices? What level of experience do they bring to the table? A key consideration in the proof of concept is whether a vendor has the experience to assist in the development of the workflows. Defining the proof of concept as an implementation milestone is a means of solidify requirements during configuration of the software. Conducting a Proof of Concept The proof of concept typically occurs at the location of the customer. A project room should be allocated with enough space for all the end users to fit comfortable for the duration of the implementation. The users should be a cross sample of both “inter” and “intra” departments: inter-departments are those areas that may be affected either through the elimination of informational silos or through interfaces; intra-department are interested in end users acceptance. The resources assigned should be well respected within the community as their acceptance to the system correlates to end user adoption. Depending upon the contractual agreements, the responsibilities of the organization will be to serve as the overall manager of the project. This includes managing the scope of the proof of concept, time and budget. The organization should also be available to provide input to support the design documents, facilitate communication with end users to generate excitement and adoptions, input into product configuration, and testing. The organization will sign-off on the measures used for success of the proof of concept, the fit gap analysis, and the results of any tests. The responsibilities of the software vendor include building out the design documentation, developing best practices, configuring the system for the proof of concept, resolving issues, and coordinating testing activities. Defining the proof of concept as an implementation milestone is a means of adopting best practices. Conclusion A proof of concept as an implementation milestone is the first step towards a successful implementation. As such, it should not be used as part of the evaluation process, but rather to develop a deeper understanding of both the product and the company, and ultimately reduce business risk. It will educate users on requirements, solidify requirement, enable best practices and set the tone for a successful implementation.