Skip to content

Breaking Changes

Scenario

  • Someone ...
    • updated a development system
    • changed required software versions
    • updated their code
  • ... and now ...
    • I can't build my code
    • my tests fail
    • nothing is working

Key Takeaways

  • Work on branches (see Workflow) to limit changes to the rest of the team until they can be verified
  • Don't break the build environment
  • Let teammates know if a breaking change is required
  • Provide guidance on how to adapt to the breaking change

What is a Breaking Change?

A change to functionality that intentionally OR unintentionally stops something else from working.

How to Identify a Breaking Change

  • Understand the impact of your changes
    • Who is working on something related?
    • Where will my changes be seen?

How to Minimize Impact of Breaking Changes

Workflow takeaways:

  • Keep work on a branch
  • Merge the main branch into yours before merging back
  • Synchronize breaking changes with teammates
  • Wait for the CI to finish to verify it all works!

  • If you don't have time to resolve problems after a merge, don't merge!

    • Merging at the end of the day, right before a weekend, or right before a major test is not a great idea
  • Rushing through development to meet a deadline is not an excuse to skip the process - this is when mistakes happen!!

What to Do If There Is a Breaking Change

  • Identify the scope of changes
  • Try to foresee what is required to adapt to the change
  • Communicate the required changes to teammates at meetings, provide support and Documentation, and justification on why the break needs to happen

Breaking Software Updates

Example Scenario

  • Someone finds new version of software to get shiny, cool, new (unnecessary) feature
    • Then dependencies for the software increase
    • OS or other software does not support the increased dependencies
    • Everything breaks
  • Resolution
    • Spend (lots of) time fixing problems (me)
    • Revert to original version