Nonprofit Leverages Cumulus CI and Snowfakery to Streamline Delivery of Salesforce Managed Package

HomeKeeper is a powerful web-based Salesforce App originally created for affordable home ownership programs with long-term affordability restrictions.  It is designed around the day-to-day workflow of a housing program administrator, but also collects performance data which is aggregated to generate social impact reports. HomeKeeper is also a HUD approved Housing Counseling Management System (CMS), designed for busy housing counselors and homeownership advisors. Since its inception in 2011 HomeKeeper’s user base has been growing steadily every year. As of April 2020, they had a total of 117 participating organizations. In 2021 Grounded Solutions experienced a 50% increase of their install base for HomeKeeper. As the steward of HomeKeeper, Grounded Solutions Network is a national nonprofit organization deeply invested in the local communities. Grounded Solutions has a small but mighty team that helps imagine and grow HomeKeeper in partnership with DaizyLogik’s technical expertise.

As a development partner, DaizyLogik has been looking for ways to assist the Grounded Solutions team to more effectively support their HomeKeeper user onboarding processes as well as facilitate the regular testing and verification of new features as they become available in the HomeKeeper package. Drawing on their significant nonprofit and technical expertise, DaizyLogik has implemented some process improvements that reduce the amount of time the Grounded Solutions staff has to spend to bring to life new features, as well as bring online new HomeKeeper participating organizations.

About Cumulus CI and Snowfakery

CumulusCI (CCI) is a tool that helps development teams build great applications on the Salesforce platform by automating org setup, testing, and deployment. In other words, it offers a way to automate various processes on the Salesforce platform.

Snowfakery is a tool for generating fake data directly into Salesforce databases, that allows for the creation of relations between tables. Every row is fake data, but also unique and random, like a snowflake.

Streamlining HomeKeeper Package Testing and Customer Onboarding 

DaizyLogik leveraged Cumulus CI and Snowfakery to address two specific use cases in the development, testing and release process of the HomeKeeper package.

Generating Realistic Test Date at Scale

Every time a new feature is added to HomeKeeper, significant testing needs to be performed to ensure the quality of the package as well as confirm that the product can support large data sets (known as scalability testing). Previously, the testing staff had to manually upload spreadsheets with data and link them with each other in order to create a realistic HomeKeeper database on which to test. With every subsequent build of the package, the data had to be discarded and re-uploaded. 

By using Snowfakery, DaizyLogik developed a script that automatically spins off a Salesforce scratch org, installs the latest version of the HomeKeeper managed package alongside the latest version on the Nonprofit Success Pack (NPSP) and populates it with enough data to cover most of the test cases and allow for scalability testing when needed.

This is a huge time saving automation that benefits both the developer and the tester because the data is predictable and fills out all the necessary structures in the database.

We asked Cheryl Curry, Senior Specialist for HomeKeeper Training & Support, to share with us how this process improvement helped the HomeKeeper team save time in the process of releasing new versions of the product.

[Cheryl Curry] Previously, for each new beta build, I had to spend about an hour uninstalling and reinstalling HomeKeeper, mainly because I had to remember each of the steps in their order, and wait for their completion. Sometimes I would forget which box had a beta build installed or where it had just been uninstalled. When my flow was interrupted, I’d spend 5 minutes logging in to check Setup and resume my thought process, including tracking down the beta install link.

I rarely populated significant amounts of data because of the time it would require to accurately represent the HomeKeeper app’s sophisticated 4-tier data model (which references Contacts, Accounts, then relatedly custom objects referencing service types and household members). 

Generally, I would create 2-4 examples with the bare minimum of data entered to successfully test the requirements. About twice a year, successful testing would require more complete data where it was necessary to upload spreadsheets of data. While I am accomplished at data import, if you haven’t ridden your bike in a year, you still need to find it, tune it up, and regain your equilibrium – so that data upload often took most of a day, especially if I forgot a required field or a data model quirk like the format for a custom Date/Time field.

Another challenge was rarely having time to also install Salesforce’s Nonprofit Success Pack for a more accurate representation of how the majority of our customers use the HomeKeeper app (on top of the NPSP), especially with the Household Account data model. Having that app installed alongside the HomeKeeper beta build, with realistic Snowfakery data, will produce a more realistic environment for testing. This should enable us to deliver improved and quality features more quickly and efficiently, and free up time to support our rapidly growing user base.

According to Cheryl Curry,  the testing conducted so far by incorporating the new CCI and Snowfakery automation scripts and the fake realistic data has enabled the HomeKeeper team to shorten the cycle for testing and, when necessary, publishing a new release of the HomeKeeper product from about 1 month down to 1 week. In addition, the realistic data created at scale allowed the team to test and improve a query limit issue. This allowed for the delivery of the improvement to the client in record time and reduced the workload for the HomeKeeper team. 

Faster Onboarding of New Customers

More and more organizations who are adopting HomeKeeper are also using the Nonprofit Success Pack (NPSP). When a new customer is onboarded, and the HomeKeeper package is installed in their Salesforce database alongside NPSP,  every layout in HomeKeeper will show standard Salesforce buttons as well as NPSP buttons that are not relevant to the HomeKeeper functionality. The staff conducting onboarding of HomeKeeper previously had to go into each of the 37 HomeKeeper layouts and clean them up by removing the buttons that are not used. In addition, from a usability perspective, the HomeKeeper staff identified that the order of the buttons was also an important detail in users following good data entry practices.

By leveraging CCI and Apex, DaizyLogik developed a script that can be run against a new HomeKeeper organization to automatically go through the layouts and clean them up, leaving only the buttons that are relevant to HomeKeeper specific functionality in the right order. This has resulted in a time savings for new installs, as explained by Cheryl Curry:

[Cheryl Curry] Our team has used the [layout cleanup] CCI script at least 4 times a month since its completion in 2020. While not a vital step, it was invaluable to clean up buttons in a couple minutes instead of a half hour, so buttons on layouts matched app preferences and adoption best practices (for example, moving “Delete” to be the last button on the layout, whereas the prebuilt Salesforce layout places it right after “Edit” which encourages poor data hygiene).

Focus on the Product not the Tech

DaizyLogik is always seeking to apply new automation and process improvements to ensure our partners can focus on their mission, their product, and release quality functionality. Cheryl Curry and Grounded Solutions imagines the possibility of using these tools to ensure HomeKeeper works more efficiently alongside other alliance partners’ applications like Public House and CreditChecker. Having the ability to test HomeKeeper in conjunction with other products that customers use frequently, ensures that they will have a better experience and confidence that these packages work well together.


Want to learn more? Contact DaizyLogik to learn more about how we can support you with specialized consulting and custom development and help you get the most out of Salesforce.