Software engineering and implementation
The development of the eSMAF followed a modified waterfall model with feedback loops from users. The modified waterfall model is a software development model in which development is seen as flowing steadily downwards (like a waterfall) through the phases of requirements analysis and functional specifications, design and implementation of software architecture, software testing and validation, and software deployment and maintenance [22]. Each phase has a well-defined starting and ending point with a closed feedback loop with identifiable deliverables to the next phase. The eSMAF project started in 2003 and culminated in the last year with the commercial deployment of the software in several organizations and institutions. The timeline for the development phases of the eSMAF is illustrated in Figure 1. The details of the development, implementation and deployment of the software are described below.
Requirements analysis and functional specifications
At the outset of this project, the requirements for the proposed software were to deliver in a timely manner (15 months) and with limited financial resources (about US$30 K) a low maintenance software application to: 1) facilitate SMAF data collection at the point of care, and 2) provide a way for clinicians, managers and researchers to easily access, search and view aggregated SMAF and Iso-SMAF data for a given client or group of clients. The priority was to develop a French version of the software first and then consider multi-language versions (the SMAF evaluation has been translated into 7 languages). The software was to be used under different research and clinical environments with limited IT support by single or multiple users (less than 25 users at the same time). Functional specifications for the software were established through focus groups (n = 3, 20 individuals total) of stakeholders (MD, nurses, PT, OT, department head, hospital managers, health service researchers) and prioritized by expert consensus with the development team according to the initial requirements list, analyses of feasibility (level of difficulty to implement) and development cost of each feature, and overall impact on the software architecture.
Design and implementation of software architecture
After taking into consideration the complexities of the information flow of the SMAF data (from data entry to consultation to report and data extraction by clinical personnel, managers and researchers) and its variations depending on the context of use (homecare, hospital care or research), very early in the project we abandoned the idea of embedding the eSMAF in existing proprietary clinical information systems currently in use. In order to transmit information from this stand-alone system back to the patient's electronic medical record or other databases, we chose static merging of individual or aggregated group data from the eSMAF database as CVS files using an export function. An overview of the software architecture for the eSMAF is summarized in Figure 2. In keeping with the initial requirements list and projected use of the software, we chose as the basis for the software architecture 1) Microsoft Access as a back end (database) to store information, and 2) a Visual Basic client to act as a front end (software interface) for easy data insertion, retrieval and reporting. The format of the database was selected according to projected deployment constraints (limited availability of on-site and remote technological support and cost issues) and ease of installation (no server required).
The software architecture is based on five overlapping hierarchical levels (group, subgroup, client, client test, test detail). Each level provides a different view of the database (ex: global aggregated results at the group level to detailed individual information at the test detail level) from which specific functions such as user and workflow management, client record management, online help, graphs, reports, data extraction or printing can be executed. The core of the software architecture is the "Clients" level where a unique subject identifier is created, tests or data entry masks are linked to this unique identifier (Client Test level) and data entry functions (Test edition) are applied. The unique identifier at the "Clients" level can be associated with "Groups" or "Subgroups" to aggregate clients' records in user-defined categories, thus facilitating navigation and viewing of records in the database. For example, a group could be used to represent a health care center with the subgroups representing the different units in this center. In this way, the user can view individual patient records for a subgroup of clients in an institution. The group and subgroup can also be used to limit access to records to a specific category of user.
Software testing and validation
Testing and validation of the software was done iteratively throughout the software development process. Feedback from users regarding the usability of the software was elicited at the different stages of development and testing of the eSMAF software. Usability is defined as the extent to which a product can be used by specified users to achieve specific goals effectively, efficiently, and with satisfaction in a specified context of use [23]. The first version was completed at the end of 2003 and tested in-house over a 2-month period at the Sherbrooke Geriatric University Institute with a selected group of beta testers (n = 12 nurses) as they evaluated 600 residents in the long-term care units of two facilities. Beta testers were asked to keep a journal logging usability issues and any bugs. They were then debriefed as a group or individually by the project manager to identify software instability (i.e. bugs) and obtain suggestions for improvements or additional features.
A list of changes to be implemented was formulated and the software went through another design phase at the beginning of 2004. Existing features were optimized and new ones added. At the end of 2004, a new version was built and distributed to a larger group of beta testers. Software robustness was tested through a large-scale deployment in 19 separate institutions (approximately 200 users in total) as part of a 2-year research project on health services [24]. During this testing phase, usability issue and bugs identified by the users in the 19 institutions taking part in the trial (see discussion section) were transmitted to the development team by the field project coordinator and changes were made periodically until a stable version was obtained. In 2005, the need for a multi-language (French and English) version of the eSMAF arose. This version, which was to become the last, was developed and tested in a small group of testers. As part of the software testing and validation, the need for user guides and training material (tutorials) was identified. A user guide with screen shots was written and incorporated as part of the online help function in the software or as a stand-alone document. The user guide was translated for the multi-language (French and English) version of the eSMAF.
Deployment and maintenance
In January 2006, the software was released for institutional users. Licensing and training on the software is supported by the Sherbrooke Health Expertise Center. User support is offered on a contractual basis through a partnership agreement with a private company. As of July 2006, approximately 35 site licenses for a total of 250 workstations have been distributed to institutions in Canada and France. Institutional licensing efforts are still ongoing.