Advanced Care Planning Decisions (ACP) is a healthcare company which produces educational content to help patients and their families make informed healthcare decisions. ACP approached Setfive after their original consulting partner transitioned away from professional services and ACP needed an engineering partner.

After several months of working together, ACP and Setfive began to recognize that technical debt and feature creep was making the current iteration of the ACP platform untenable.

  • Several major features had been added to the platform, and later deprecated, but the code was not removed. Because of this, additional development was slow and error prone.
  • The platform was architected as a traditional web app with a REST API implemented as an add on. Unfortunately, as ACP's iOS app became a core offering, this traditional architecture became difficult to support.
  • ACP had developed business needs to offer their content programmatically versus only on-site, but the existing platform was unable to deliver on these new needs.

After evaluating several options with ACP, we decided the best approach was a v2.0 rewrite of the platform. As part of the rewrite, we eliminated the feature bloat, standardized a handful of ad-hoc configurations, and produced an easier to use software. Architecturally we selected an "API first" approach where we built a Symfony REST API first, which in turn was used by an Angular web app and an iOS app. Additionally, we built migration components to allow us to automatically convert the old database into the new structure.

  • With the technical and feature debt eliminated, the velocity of feature development dramatically increased.
  • Because the API is used to power both the Angular web app and the iOS app it's been easier to update the API and maintain feature parity between the two experiences.
  • The new "API first" architecture has allowed ACP to license their content to partners to make available via custom implementations including EMR experiences.

Full rewrites are always challenging, but that made the success with this project even more rewarding.. The rewrite delivered on its goals, and we continue to evolve the ACP platform today.