Gunnar Assmy - Fotolia

Changing lives through improved application performance

Find out how Cure.org improved application performance management to fine tune their website, increase donations, and make a difference around the world.

Sometimes improving web application performance has more importance in building connections and community than driving revenues. At the FutureStack conference, Joel Worrall, CTO of Cure.org talked about the evolution of their digital transformation, which has had a tremendous impact in transforming the lives of kids suffering from surgically correctable deformities in the developing world.

A focus on the donor user experience has allowed the charity to form lasting connections between a much larger audience of donors in the US with kids and their families around the world. One component of this strategy has been about improving application performance management throughout the development and deployment lifecycle to identify how changes can improve the overall donor journey. Another component of this strategy was about finding ways that better communications can help disadvantaged kids overcome the stigma they find in their own cultures.

Cure opened its first hospital in Kenya in 1998 and has had over 3.1 million outpatient visits, and provided over 226,000 life changing surgeries since then. In 2011, it was receiving all of its support from a wealthy donor base of about 50 families. Joel Worrall came aboard to help chart out a digital transformation initiative to make it easier to enroll a larger base of much smaller donors.

Connecting stories and supporters

The majority support still comes from the small base of wealthy donors, but the smaller donors are able to make lasting connections with the thousands of patients and their families around the world. One of the tragedies of these surgically correctable deformities is the shame that the kids and families feel in their own communities. This much larger base of supporters helps these families to receive emotional support outside the bounds of their local communities.

A key part of this is allowing people to establish a relationship with these kids. In some cases the mom might see themselves as under a curse and the people in their environment don’t want to be around them. This might be considered silly here but quite real in these foreign cultures. The Website helps westerners make a bigger difference in these people’s lives. Worrall said, “Some of these messages end up being prized possessions for the kid or the mom. Those parents find community in support outside that is in some small way important.”

Leveraging performance data to ease growing pains

A key part of the digital strategy was to use the Internet to tell the stories of people. The new platform allows donors to send a get well message to someone in the hospital. But the program was so popular, the site quickly ran into performance issues. The architecture is all hosted on virtual machines on top of Rackspace and DigitalOcean. There was a content management system and software for patient reporting and communication management implemented as a plug-in. However this initial architecture led to a lot of problems with crashes and it was resource constrained.

They are now managing 20 apps with a tech team of four people. Worrall said, “What we are doing now would have been impossible 10 years ago.” In 2011 they installed an application performance management solution from New Relic that allowed them to identify the problem within an hour. Better insight into how the application was behaving allowed them to rectify the bottlenecks. As a result they were able to get the application running three times faster within a week.

A key problem was that a handful of database queries getting triggered by things in production that were difficult to identify in development. Worrall said, “We would find one big problem and as we stripped out a way there would be another one.” After that they implemented a browser front-end for performance monitoring. They used analytics to monitor the donation process from multiple places around the world.

Making sense of the user journey

Data from the application performance management system also made it easier to understand a supporter’s journey across multiple channels. Thus made it easier to better understand the stories people were excited about and that inspired them to make donations or forge new connections with kids. This also made it easier to recognize strong advocates that have the most impact in sharing these stories and building a community of support for the work.

This data also made it easier to prioritize the stories that made it to the front page of the Cure.org website. The Cure.org homepage has a section for trending stories. This shows what causes people are paying attention to. Trending algorithms collected from the system make it possible to identify the stories that people are most likely to get excited about.

Replacing load testing with performance monitoring

Worrall is a strong advocate for replacing load testing with more comprehensive performance monitoring. Many problems are found only in production and are difficult to simulate before an app goes live. Worrall said, “I mostly don’t believe in load testing. I’m not saying there is no place for it but I’m not a big believer in the cost-effectiveness of getting a computer to simulate the chaos of interacting with software. With people coming from all over the world and conductivity and usage patterns it is not practical to do it in a cost-effective way.”

A much better approach in Worrall’s estimation is to make incremental changes and then monitor performance patterns. He said, “More often we end up finding what the performance problems might be relatively quickly.”

A good performance profile can also help identify problems during development. Although an app might not crash, a developer can see that the percentages of CPU, memory, or network are off on their local development machines. Worrall said, “I found a handful of situations where it saved me some headaches in production. It isn’t necessarily slowing the performance locally, but it is possible to look and get clear that the percentage was behavior will not be useful in production.”

Breaking the connectivity paradigm

One of the big challenges in the developing world is that connectivity is not always practical. To address this gap, the Cure.org technical team was instrumental in launching the Hospitalrun.io open source project. The community now has about 300 people on Slack supporting the project. It has embraced off-line first as a design concept.

Next Steps

Learn how to fix performance issues in the cloud

How to make a componentization architecture perform efficiently

How to design modern enterprise architectures for performance

Dig Deeper on Core Java APIs and programming techniques