diff --git a/24ss/slides/lecture_2/lecture_2.html b/24ss/slides/lecture_2/lecture_2.html index a046db4..9e8de50 100644 --- a/24ss/slides/lecture_2/lecture_2.html +++ b/24ss/slides/lecture_2/lecture_2.html @@ -362,6 +362,19 @@
Process inefficiencies and other software-development tasks tend to scale up slowly. Be careful about boiled-frog problems.
+“If you like it, then you shoulda put a CI (Continuous Integration) test on it,” promotes a culture of ownership and responsibility among software development teams, especially when it comes to dependencies on code from other teams.
+Here’s how this rule can facilitate ownership in such scenarios:
+Proactive Testing: By encouraging teams to thoroughly test their code, including the integration points with dependencies from other teams, it ensures that teams are proactive in identifying and resolving potential issues before they escalate. This approach reduces the likelihood of unexpected failures due to external dependencies.
Early Detection of Issues: Continuous Integration (CI) tests run automatically whenever changes are made. This means that if a change in one team’s code adversely affects another team’s code, the issue can be detected immediately. It places the responsibility on the original team to ensure their changes do not break existing functionalities.
Encouraging Collaboration: When each team takes ownership of testing their integrations, it fosters better communication and collaboration between teams. If a team’s update causes a failure in another team’s code, the testing process naturally initiates a dialogue to address and resolve the issue collaboratively.
Building a Culture of Accountability: The rule embeds a mindset of accountability. Teams know that they are responsible not only for their code’s functionality but also for ensuring it integrates seamlessly with other parts of the system. This reduces blame-shifting and promotes a more constructive approach to problem-solving.
Continual Monitoring and Improvement: Continuous Integration allows for ongoing monitoring of the system’s health. Teams are more inclined to continuously improve their code, keeping in mind the broader impact on the system, thus maintaining high standards of code quality and system stability.
Reduction in Dependency Risks: By applying rigorous tests, teams can better understand and manage the risks associated with external dependencies. This knowledge helps in making informed decisions about using and updating those dependencies.
Expertise pays off particularly well when combined with economies of scale.