DPC2019: Backwards Incompatible Tales - Marco Pivetta

Discover how to manage backwards incompatible changes in software development, including writing and reading breaks, testing, and documentation, and learn strategies for preventing and mitigating BC breaks.

Key takeaways
  • BC breaks are inevitable, but they can be managed.
  • Writing BC breaks is not a problem, but reading from them can cause issues.
  • Tests are essential to detect and prevent BC breaks.
  • Backwards compatibility is not just about reading, but also about writing.
  • BC breaks can be caused by changes in the underlying implementation, not just the API.
  • Simple BC breaks can be fixed with a new version, but complex ones may require more effort.
  • BC breaks can be mitigated by providing clear documentation and testing.
  • Covariance and contravariance are important concepts in BC breaks.
  • BC breaks can be managed by using tools and automation.
  • Testing and documentation are crucial in BC breaks.
  • BC breaks are a normal part of software development, but they should be managed carefully.
  • BC breaks can be caused by changes in the underlying dependencies.
  • BC breaks can be prevented by using design principles such as the Liskov Substitution Principle.
  • BC breaks can be mitigated by providing clear documentation and testing.
  • BC breaks are a problem that can be solved with proper testing and documentation.
  • BC breaks can be caused by changes in the underlying implementation, not just the API.
  • Simple BC breaks can be fixed with a new version, but complex ones may require more effort.