AuditBoard Leverages LaunchDarkly

AuditBoard Engineering
6 min readJan 2, 2024

Author: Holly Clark, Technical Program Manager

As the leading audit, risk, ESG, and compliance cloud-based platform, one of the many ways AuditBoard continues to delight our customers is by shipping new features and capabilities on a regular cadence. At AuditBoard, we appreciate the importance of moving quickly, while at the same time maintaining stability for our customers, especially during the critical periods of business that impact audit teams.

To align with the demand for more frequent releases and faster feedback loops, while at the same time not risking quality, innovation, or engineering potential, we are excited to share that AuditBoard has selected LaunchDarkly, a powerful software delivery platform, as our feature flag management tool. This platform allows our product and engineering teams to more efficiently manage and control feature releases without requiring new deployments and without disrupting customers.

Rolling out a software delivery platform to a team of 100+ engineers and product managers is a daunting task that requires careful planning to ensure a smooth adoption. As part of this process we wanted each team member to see the value of the platform and to understand the benefits to our company, to our customers, and to themselves as well.

In this post we will dive into how AuditBoard is planning to use LaunchDarkly, how we executed our rollout of the platform, our employee adoption, and finally, how this adoption will positively impact both our customers and our employees.

Leveraging LaunchDarkly

It is not uncommon for tech companies to start out with developing their own internal feature flag system before determining that a COTS solution, like LaunchDarkly, is the right choice. One thing that we discovered throughout our journey was the need to disambiguate certain terms. For example, when discussing feature management, a term that many engineers are familiar with is “feature flags”. LaunchDarkly states that a feature flag describes the different variations of a feature and the rules that allow different entities to access them.

Those familiar with the AuditBoard platform know that we have many entitlements and features that can be enabled, as well as configured, per customer needs. Within our organization, the term “feature flag” has been widely used to describe the many entitlements, features, and even configuration options available across our solution. To eliminate confusion and to best ensure the least amount of friction, rather than change our internal definition of what a feature flag is, we decided to call our LaunchDarkly flags Development Flags. This important distinction helped our teams quickly align on the idea that development flags support our development efforts and allow us to decouple code deployments from feature releases.

Deciding that our development flags will be tied specifically to development efforts helped us make the decision that they will have a finite life cycle. The final stage of our development flag life cycle includes flag cleanup and removal. This stage allows our developed features to be permanently deployed or to graduate to “real” entitlements.

To ensure that we’re able to clearly delineate when a development flag should be used, we made the decision to standardize that all user-impacting changes be gated behind a development flag. By doing this, we ensure that code that is still in development can be safely deployed without being released, thus allowing us to accelerate our deployment rate without adding any risk to the existing codebase.

By allowing new functionality which is not yet generally available to exist in our deployments, we have the ability to target subsets of customers who have opted to participate in our feedback loops with our various beta features. LaunchDarkly provides us with precise control over which user segments are able to access new features, giving us a personalized approach to customer engagement.

LaunchDarkly’s platform improves our ability to develop rapidly, deploy quickly, and release on time. With LaunchDarkly we have a greater opportunity to engage our interested customers in fast feedback loops and we have allowed ourselves the flexibility to ship as frequently as we like, even multiple times a day. Finally, should a defect be discovered in a release, there is less of a need to deploy a hot-fix since we can rapidly remediate any issues we may discover with new features by disabling development flags rather than deploying changes.

Rollout Plan

When we decided to introduce LaunchDarkly throughout our Product and Engineering team, our goal was to have every team member appreciate the value this platform would bring to our organization, and by proxy, our customers.

We knew that a comprehensive communication strategy to keep the team informed of progress and of our expectations, would be needed. We wanted everyone to be excited about the opportunity to be a part of improving our deployment rates, as well as to understand the various benefits of using development flags. Since code would now be gated behind a development flag, our engineers would no longer have to worry that their code could potentially cause a delay in our deployment schedule.

Here we list some high level details of what our rollout process looked like:

Technical Implementation

  • Select a Beta team to ensure every part of our implementation is thoroughly tested
  • Integrate LaunchDarkly with our control plane (add SDK keys)
  • SDK Integrations
  • Set up integrations with internal tools such as Slack and Jira
  • Create organized documentation detailing our implementation

Define our Development Flag Lifecycle

  • Incorporate development flags into our SDLC
  • Define a process to ensure we create minimal development flag debt that includes a cleanup procedures for ‘live’ features

Define and Create Custom Roles

  • This allows us to ensure proper governance
  • We settled on 2 main roles: (1) Flag Manager — Responsible for the full lifecycle of development flags in all customer facing environments; and (2) Engineer — Responsible for coding and testing behind development flags

Assign Flag Manager Role

  • Tech Leads, Engineering Managers, and Product Managers
  • Host a Flag Manager kick-off session

Assign Engineers

  • Remaining team members were assigned the engineer role
  • Kickoff session for engineers

Provide Office Hours and Access to our LD SME(Subject Matter Expert)

  • Weekly office hours where employees bring questions and see demos
  • Gather feedback and continue to adjust accordingly

Employee Adoption

We initially invited a specific team to begin working in LaunchDarkly to leverage their experiences and help us improve our implementation. The feedback and questions we received from this initial group helped us prepare for a seamless integration with our remaining team members.

Our decision to rollout using a phased approach was instrumental in our success. When we were ready to move from one team to multiple teams we set up those who would be assigned a flag manager role and did specific training to ensure everyone felt comfortable with the process and expectations. Next we added the ‘engineer’ role to the remaining team members and asked them to start working with the flag managers on their team. We suggested that teams collaborate during their planning sessions about new flags that may be needed.

Our employees have demonstrated a comfortable and confident use of the platform. Our documentation and training sessions provided the necessary tools for employees to feel successful on the LaunchDarkly platform. We have enjoyed hearing positive feedback from our employees.

“Being able to enable flags per user is a game changer.”

“I can already tell — LD is not only going to be useful, it’s going to be FUN! Clear wins.”

“For my PR yesterday I had to configure LD id/key variables for my PR environment. It’s working great!”

Positive Impacts

The practice of using development flags has provided our product and engineering team with the opportunity to decouple our deployments from releases. Our QE team also benefits from this rollout since testing as we go has become more efficient. Development flags provide us a way to instantly address issues that may occur, without the need for a hotfix or to rollback a release.

AuditBoard’s rollout of LaunchDarkly is a big win for our customers and for our employees! We have lowered our deployment risks while at the same time empowered our teams to increase our deployment rate. With this roll out of LaunchDarkly, we can confidently say that we are looking forward to providing our customers with improved and more frequent releases as we move into the new year!

Visual Representation

--

--

AuditBoard Engineering

AuditBoard Engineering and Career Blog. Does our work and culture resonate with you? Come see if you’re a fit — https://www.auditboard.com/careers/