Demo on OpenShift: https://clairedemo-42six.rhcloud.com/
Demo on ARC: https://demo-claire.arcwrx.com/
Claire is a product for drug manufacturing marketers, drug researchers, and the general public. It is designed for web and mobile interfaces. The system correlates adverse events for drugs, consumed from FDA data sources, to positive and negative sentiments expressed on Twitter for that drug. The results are aggregated by drug and displayed in user-friendly graphs. Claire may be used to
Claire uses text-searching algorithms to identify positive or negative sentiment associated with the drug in question in every collected tweet, and plots the sentiment against the adverse events and recalls on a time-series line chart. The backend architecture consists of a flat-file and a web framework deployed on OpenShift. The frontend is written in Javascript and uses AngularJS, JQuery, and FLOT to create the data visualizations.
Claire can be hosted on both Autonomic Resources FedRAMP-certified Cloud (ARC) or OpenShift Public PaaS.
Our agile processes used in the development of Claire are aligned with U.S. Digital Services Playbook’s 13 “Plays” as documented in the repository and aligned with evidence criteria. The evidence criteria are in the sections below.
CSC management assigned Brian Murphy as the product owner for this project. Brian currently manages five agile projects and is ultimately responsible for delivery, ongoing success, continuous improvement, and quality of these projects, including this GSA Agile Delivery prototype. Accountability is maintained through updates to senior leadership after each sprint cycle.
The Claire agile team utilized eight BPA labor categories: product manager, technical architect, back end developer, front end developer, visual designer, interaction designer, writer, and business analyst. The team also used an FDA subject matter expert that provided valuable end-user insight to drive the requirements, conducted usability testing and provided valuable feedback. The team met in a conference room that was converted into a "war room" for the duration of the project.
We included industry experts in our process and engaged them in our Discovery Workshop by collaborating real-time via sketching and wireframing. We also included them in usability testing via paper prototyping and demonstrations. We incorporated feedback from the experts into the initial version of the prototype, and we incorporated additional feedback after our demonstrations.
The CSC agile process embraces the Interface Driven Development (IDD) process. IDD puts the user first. We start with features and enhancements by first working on the user interface, which drives requirements gathering and also helps determine the architecture. The UX Engineer facilitates and guides the teams from the start. We conduct discovery workshops to collaborate with the customer on high-level requirements, user experience workflow, and user interfaces. Our UX Engineer continues to flesh out user experience and wireframes, with collaboration from internal development teams. We conduct customer reviews of designs and connect our UX process to our Acceptance Test Driven Development (ATDD) model. The result is stories with built-in design and testable criteria to drive our definition of done. Every agile team has a UX/front-end developer to implement code design and iteratively advance the user experience. Once we have a sufficient backlog, we start our development sprint(s).
For Claire, we used the following IDD techniques and tools:
Results of human-centered design
s1 contains the initial design. s2 contains the second design iteration.
We’ve utilized our own home-brewed responsive HTML & CSS library. We’ve also developed a product specific style guide for future development efforts.
In addition to testing the app with people outside of the development team, we held two demos with stakeholders and other users. We tested the application in an iterative manner, via paper prototyping, in addition to testing it during stakeholder and sprint demos.
Design evolution, based on user feedback
For Claire, the team used the Scrum process. The team held three two-day sprints, and met for 15-minute daily scrums. The team also held a sprint planning meeting at the beginning of each sprint and a combined sprint review and retrospective at the end of each sprint. This iterative approach helped us prioritize features (e.g., seeing the tweets associated with a sentiment spike) and improve the usability of the interface (e.g., modifying the chart colors). The product and sprint backlogs were managed using a combination of a physical scrum board for the product backlog and sprint progress and the GitHub issue tracker for technical tasks. The product owner and tech lead continuously groomed the product backlog. The team conducted many informal demonstrations and two formal review demonstrations to garner feedback from the stakeholder community.
War room and scrum board pictures
Product backlog and technical tasks
The prototype has been tested with the following browsers and hardware:
The prototype works best on Chrome on desktops/laptops and Android.
We used the following modern and open source technologies (versions included):
We deployed Claire on OpenShift and on our Autonomic Resources FedRAMP-certified Cloud (ARC). On each PaaS, we deployed a development version, which is directly connected to the continuous deployment tools, and a demonstration version, which is snapshot of the prototype. The demo URLS are at the top of the README.
Dev on OpenShift: https://claire-42six.rhcloud.com/
Dev on ARC: https://dashboard-claire.arcwrx.com/
Unit and regression tests were automated using JUnit, Karma, and Jasmine. The tests are located in throughout the repository (e.g., openFDAClientTest and ResponseTranslatorTest).
Travis CI was used for continuous integration and deployment on OpenShift while Jenkins was used for continuous integration and deployment on ARC. Travis CI resides outside of OpenShift while Jenkins is set up as an OpenShift gear.
Architecture of Prototype, including CI and CD
We used GitHub for configuration management. All configuration items are stored in the repository.
The Claire teams utilized NewRelic within OpenShift to perform advanced continuous monitoring. New Relic is set up to monitor both development servers and both demo servers.
We also used Google Analytics to collect metrics on page hits and unique visitors, so that the application owner may analyze user types and user behavior.
Architecture of Prototype, New Relic and Google Analytics
Claire is deployed on Tomcat 7 on OpenShift via JBoss EWS cartridges. OpenShift uses kernel isolation features to keep tenant processes separate.
All components of the prototype and underlying platforms are openly licensed and free of charge.
Claire demonstrates the capabilities of one of our many agile teams. CSC understands that not all projects can be confined to a single team or contractor. We are very successful at scaling agile across multiple teams with large government programs such as USCIS, EPA, and many of the intelligence agencies while utilizing the Scaled Agile Framework. In most cases, there are multiple organizations, contractors, and stakeholders for each project. Our agile culture is “badgeless,” viewing all stakeholders as valued team members striving toward the same goal; creating value for the end user through lean and efficient value streams. Another discriminator CSC possesses is having its own FedRAMP-certified cloud called ARC. When required by our customers, ARC can provide flexibility that goes beyond public and private PaaS.