Published Feb 9, 2022

Episode 498: James Socol on Continuous Integration and Continuous Delivery (CICD)

Dive into the world of continuous integration and delivery as James Socol from Policygenius unpacks the complexities of CI/CD, offering strategic insights on zero downtime migrations, the importance of CI tools, and the transformative role of feature flags in executing controlled feature rollouts across diverse software platforms.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Feature Flags

    Feature flags are crucial tools in software development, allowing developers to separate code conditions from execution. explains that feature flags enable developers to control the conditions under which a feature is active without altering the codebase, making it possible to toggle features on or off without redeploying 1. This separation is particularly useful for experiments or features that require gradual rollouts, as it allows for precise control over who experiences the feature and when 2.

    The goal of a feature flag tool is to separate the conditions under which something is true from the code that cares about whether it's true.

    ---

    Feature flags can be managed through various tools, such as LaunchDarkly, which support custom rules and conditions, providing flexibility in deployment strategies 1.

       

    Managing Flags

    Managing feature flags effectively requires careful consideration of the development environment and architecture. notes that in a monorepo, feature flags and processes are centralized, whereas in microservices, flag states must be consistent across services, often necessitating a feature flag service 3. This complexity underscores the importance of strategic planning in deploying and maintaining feature flags.

    It's all about, are you going to be there to support it for long enough that you feel confident?

    ---

    Additionally, the timeline for feature flags varies based on the feature's nature, with some flags living for mere hours while others may extend over months, depending on risk and complexity 4.

       

    Flag Considerations

    Deciding when to implement feature flags involves weighing their benefits against potential costs. highlights that feature flags are essential for continuous delivery, allowing incomplete code to be shipped safely by toggling features off if necessary 5. However, they also introduce management burdens, such as determining when to remove flags to avoid complexity 2.

    Feature flags are an interesting, they're kind of one of the keys to unlocking CD and even CI, and they come with their own kind of burden at the same time.

    ---

    The decision to use a flag often depends on the feature's complexity and risk, with flags being more common for experimental or high-risk changes 2.

Related Episodes