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.
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(...) }
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.
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.
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.
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.