An Engineering Manager’s Playbook

Choose Your Risks. Or They’ll Choose You.

Software Developer Feature Flag Playbook

A software developer’s playbook for mitigating unintended consequences in financial services, and how feature flags can help.

Learn Why Agile Businesses Use Split

Deliver software features that matter, fast!

renderContent(deleteTreatment) {
  const allowDelete = deleteTreatment.treatment === "on";
  return (
    <div className="todoListMain">
      <div className="header">
        <form onSubmit={this.addItem}>
          <input
            ref={(a) => (this._inputElement = a)}
            placeholder="Enter Task"
          ></input>
          <button type="submit">Add</button>
        </form>
      </div>
      <TodoItems
        entries={this.state.items}
        allowDelete={allowDelete}
        delete={this.deleteItem}
      />
      <TodoItems
        entries={this.state.items}
        allowDelete={allowDelete}
        delete={this.deleteItem}
      />
    </div>
  );
}

Financial Services Development: It’s a Never Ending Game of Risk Mitigation

This eBook discusses the challenges and opportunities for today’s product development teams working at large financial institutions. It dissects some common misconceptions from trying to do “the right thing” to meeting regulatory and safety standards. It also provides guidelines for achieving your goals while securing reliable risk controls in the process.

Download eBook

The Cautious Move Not To Move

With so many risks in financial services software, there’s no way to eliminate them all completely. The only way we can advance our practice is to take a more holistic view of risks, so we can better identify which ones are most worth taking.

/**
 * Sample code for Tap Compare Testing with Feature 
 * Flags while migrating from S3 to Mongo
 */

switch (storageSourceTreatment) {
    case MONGODB:
        identityResult = _mongoIdentityStorageDAO.fetch(...)

    case MONGO_COMPARE:
        identityResult = _mongoIdentityStorageDAO.fetch(...)

    try {
        Optional<Identity> s3Identity = _identityStorageDAO.fetch(...)

        IdentityComparisonResults results = compareIdentityResults(...)

      if (results.differenceDetected()) {
          _log.warn(results.differenceReport())
      }
    } catch (e) {
      ...
    }

  default:
      identityResult = _identityStorageDAO.fetch(...)
}
Download eBook
  • The Challenge: Legacy Technology

    Cloud adoption and microservices are the new norm, but migrating to them doesn’t come without the risk of a critical data leak and a plethora of other potentially catastrophic failures. It’s why so many financial institutions are hanging on to legacy technology.
  • Your Move: If It Ain't Broke, Don’t Fix It

    If you’re a software engineer in the financial industry, you’re constantly triaging risks as they appear. It makes sense that you’d choose to avoid a time-consuming and costly migration if you don’t have to.
  • Alternative Play: Move to the Cloud and Microservices, Avoid Lifting Everything at Once

    Even though it’s an investment and the process takes time, migrating away from legacy to microservices is worth it. It’s a long-term commitment to agile transformation and security.

The Branch That Ends in Conflict

If we speed up, we might miss something. But if we slow down, we might fall behind. If we release a feature now, it could break. If we keep it in testing, it might never see the light of day. We constantly weigh these risks and more as engineers in the financial services industry.

Download eBook
  • The Challenge: Sheer Size

    Large institutions dominate financial services, with massive scales. Hundreds (sometimes thousands) of software engineers could be working on the same application simultaneously.
  • Your Move: A Long-Lived Feature Branch and Release Branch

    To mitigate risk, you’re probably deploying to a long-lived feature branch, a release branch, or both. Although this strategy encourages further validation and testing in a safely staged environment, it’s actually introducing a whole new set of risks.
  • Alternative Play: Think Bigger Than a Branch. Deploy to the Trunk.

    Trunk-based development is an industry best practice, and the fastest moving companies have been practicing it for years. The goal is to achieve continuous integration, pushing your software changes to the main line as often as possible.

Bank On Feature Management For A Culture Of Change

The right feature management and experimentation platform can help you change the culture across product development teams. Eliminate uncertainty with modern trunk-based development through a single source of truth that everyone can work across.

Download eBook

Schedule a Split Demo Tailored to Your Needs

Speed up development cycles, reduce release risk, and focus your team on DevOps best practices that create maximum impact.

Book a Demo

Create Impact With Everything You Build

We’re excited to accompany you on your journey as you build faster, release safer, and launch impactful products.