Prototype URL: https://myfda.egov.com
Install Instructions: Install Guide
License: MyFDA Licensing Information
NIC’s long-standing tradition of making government accessible to all citizens allowed us to quickly address the FDA’s need to present this new dataset in an innovative, easily consumed format to the public. As a leading agile practitioner to government, NIC was able to hand-pick an experienced multi-disciplinary agile team (Play 7) to build the NIC solution -- MyFDA, a personalized portal to FDA drug information (Play 2).
User-centered design techniques drove the MyFDA prototype feature-set, which included:
- Personalization features, including login through Facebook (with the ability to support other authentication mechanisms in the future) and the ability to create and manage a MyMeds medication list.
- The ability to search for medications using scientific and brand names with search term completion.
- Rich visualization of drug information including drug recalls, adverse effects, and drug interactions.
- Combining external datasets with the openFDA data to create a friendlier and more complete experience.
- An easy to use UI that works on mobile devices and with assistive technologies used by users with disabilities (Play 3).
Being a prototype service, our intent was to provide key features that would enable future informational and personalization features to be added to the service.
As the team was being assembled, a group of innovative thinkers from across the country representing a multitude of technical and non-technical skills and experience began work on conceptualizing an approach to the solution that would guide the agile team once they hit the ground. From a consumer’s perspective the largest challenge with the OpenFDA data is its sheer volume. As such, the concept of a personalized portal naturally emerged as the solution as it would limit the scope of the data to a more manageable level. The ideation team surveyed a group of 200 employees outside the project to both vet the idea and generate a name (Play 12). From that survey MyFDA was born.
NIC also used this time to appoint an experienced product manager who was given full authority over the project, and assumed responsibility for the functionality and quality of the prototype (Play 6). The product manager working with the product owner immediately set out to prepare user personas to act as surrogates to guide the team when engaging actual users would not be possible. The team polled friends and family that they felt best represented these personas to determine their needs and generate persona stories.
NIC appointed an experienced delivery manager to the team who worked with the product manager to determine the most appropriate methodology for the project (Play 7). Given the project requirements, the team chose Scrumban, a proven agile approach currently leveraged by NIC for rapid service development (Play 4). By using Scrumban, the team leveraged the prescriptive nature of Scrum to remain agile and the flow of Kanban to quickly address user feedback and shifting priorities.
Armed with the overall vision and persona stories, the team quickly set out to generate epics and user stories to populate the backlog. The team followed up with a product planning session, using story points and business value to shape an MVP with the greatest ROI. The design team quickly built a set of wireframes demonstrating the priority features and conducted small group usability testing using those wireframes, which shaped the UX of the MVP in subsequent iterations (Play 3).
The first four one-day sprints comprised three value based releases: homepage and search, search results, and drug details. The following three-day sprint added in the login and MyMeds personalization features, during which the product manager and UX lead met with an internal expert group which generated additional usability enhancements that were incorporated into later sprints (Play 4).
When the team learned of the first RFQ extension, a decision was made to bring additional features into the prototype. To determine which features should be added, the team held a “persona value pitch” session that had team members pitch feature ideas through the eyes of one of the personas. The exercise proved to be incredibly valuable, both in the planning of a new MVP release and in keeping the team focused on the user’s needs (Play 1). The subsequent value sprints also incorporated external data sources to enhance the user’s experience (Play 13).
With the MVP release candidate in place the team conducted usability testing with a small group of external users (Play 1). The team prioritized as many of the discovered issues as possible in the remaining time and backlogged the rest with suggested fixes. The moderator also used the user testing group to poll proposed features for the product. NIC has also added this poll to the MyFDA Facebook page to further vet those features.
The entire project consisted of six sprints, spanning eight days (Play 4). Sprint planning and standups
were conducted in the mornings. Additionally, due to the fast pace of the prototype project, afternoon
standup meetings were conducted to coordinate effort and ensure that all blockers were known by the team.
Each sprint ended with a demo of the working software and a retrospective meeting. This iterative
approach allowed the team to account for new knowledge frequently and to adjust course.
The team selected a modern open source technology stack (Play 13), documented in the Technology Registry, which enabled the team to develop a scalable framework to ensure that future capabilities could easily be added to the prototype (Play 8). Some of the notable technology aspects of the prototype include:
- The frontend UI was implemented as a single page Ember.js application
- The backend was implemented using Java and Spring
- MyFDA offers its own Level 5 REST API to the frontend components
- A style guide was created and evolved throughout the project
- Changes to the master branch in GitHub trigger a build and deploy using Jenkins
- The application is packaged as a runnable Docker image for ease of deployment and portability
- Deployed prototype to Amazon Web Services and used Amazon EC2 and Amazon ELB (Play 9)
- Established a DevOps process that supports both continuous integration and continuous deployment (Play 10)
NIC integrated a security engineer onto the agile team, and implemented a comprehensive security strategy
which included secure technologies, coding, deployment, DevOps tools, and security scanning.
Additionally, a continuous security monitoring program was developed to enhance our baseline security
posture and address emerging risk on a continuous basis and throughout the product’s lifecycle (Play 11).
The continuous monitoring system was provisioned using OSSEC, Logstash, ElasticSearch, and Kibana.
At the conclusion of the allotted performance period, NIC delivered a tested and scalable open source MyFDA prototype that provides rich functionality and an achievable roadmap of future features that will extend user-driven functionality (Play 13).
Detailed project documentation and artifacts can be found in the GitHub repository at:
https://github.com/NIC-Federal/myfda/blob/master/docs/README.md
Criteria | NIC Approach | Evidence Links |
---|---|---|
a. | Assigned product manager as one, accountable leader. | 1, 2 |
b. | Multidisciplinary team with 12 of 13 labor categories. | 1, 2 |
c. | Kept focused on the user throughout the entire project. | 1, 2, 3, 4, 5 |
d. | Six human-centered design techniques: User research, user personas, user surveying, usability interviews, heuristic reviews, accessibility testing. | 1, 2, 3, 4, 5, 6, 7, 8 |
e. | Created style guide for project and used Bootstrap as responsive design pattern. | 1, 2, 3 |
f. | Ran usability testing multiple times during the project. | 1, 2 |
g. | Used Scrumban as the project management methodology. | 1, 2 |
h. | Used Twitter Bootstrap for the responsive design framework and tested on mobile devices. | 1, 2, 3, 4 |
i. | Used 25 open source technologies in the production of the prototype. | 1, 2, 3 |
j. | Deployed prototype to Amazon Web Services EC2. | 1, 2 |
k. | Developed automated unit and integration testing. | 1, 2 |
l. | Established continuous integration and continuous deployment processes. | 1, 2, 3, 4, 5, 6 |
m. | All configuration was controlled by the source control system. | 1, 2, 3, 4 |
n. | Implemented continuous availability and security monitoring. | 1, 2, 3 |
o. | Selected Docker as virtualization container and registered with Docker Hub. | 1, 2, 3, 4 |
p. | Included "install.md" and an Install Guide for developers. | 1, 2 |
q. | Used technologies which are openly licensed and free of charge. | 1, 2, 3 |