Skip to content

Instantly share code, notes, and snippets.

@goncalossilva
Last active October 1, 2021 22:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save goncalossilva/e953bad54761ac8622a8669bb694e2d4 to your computer and use it in GitHub Desktop.
Save goncalossilva/e953bad54761ac8622a8669bb694e2d4 to your computer and use it in GitHub Desktop.

This is true because software delivery is an exercise in continuous improvement, and our research shows that year over year the best keep getting better, and those who fail to improve fall further and further behind.

Page xxii | Preface


The most innovative companies and highest-performing organizations are always striving to be better and never consider themselves "mature" or "done" with their improvement or transformation journey—and we see this in our research.

Page 6, Chapter 1: Accelerate


Queue theory in math tells us that as utilization approaches 100%, lead times approach infinity—in other words, once you get to very high levels of utilization, it takes teams exponentially longer to get anything done.

Page 13, Chapter 2: Measuring Performance


Culture enables information processing through three mechanisms. First, in organizations with generative culture, people collaborate more effectively and there is a higher level of trust both across the organization and up and down the hierarchy. Second, "generative culture emphasizes the mission, an emphasis that allows people involved to put aside their personal issues and the departmental issues that are so evident in bureaucratic organizations. The mission is primary. Third, the mission is primary. And third, generativity encourages a 'level playing field,' in which hierarchy plays less of a role"

Page 35, Chapter 3: Measuring and Changing Culture


When performing cluster analysis, all four metrics together meaningfully classify and discriminate among our high, medium, and low performers. That is, all four measures are good at categorizing teams. However, when we tried to turn these four metrics into a construct, we ran into a problem: the four measures don't pass all of the statistical tests of validity and reliability. Analysis showed that only lead time, release frequency, and time to restore together form a valid and reliable construct.

Page 38, Chapter 3: Measuring and Changing Culture


Relentlessly pursue continuous improvement. The most important characteristic of high-performing teams is that they are never satisfied: they always strive to get better. High performers make improvement part of everybody's daily work.

Page 43, Chapter 4: Technical Practices


Everyone is responsible. As we learned from Ron Westrum, in bureocratic organizations, teams tend to focus on departmental goals rather than organizational goals. Thus, development focuses on throughput, testing on quality, and operations on stability. However, in reality these are all system-level outcomes, and they can only be achieved by closer collaboration between everyone involved in the software delivery process.

A key objective for management is making the state of these system-level outcomes transparent, working with the rest of the organization to set measurable, achievable, time-bound goals for these outcomes, and then helping their teams work toward them.

Page 43, Chapter 4: Technical Practices


As before, we found that teams that did well at continuous delivery achieved the following outcomes:

  • Strong identification with the organization you work for (see Chapter 10)
  • Higher levels of software delivery performance (lead time, deploy frequency, time to restore service)
  • Lower change fail rates
  • A generative, performance-oriented culture (see Chapter 3

Even better, our research found that improvements in CD brought payoffs in the way that work felt. This means that investments in technology are also investments in people, and these investments will make our technology process more sustainable.

Pages 48 and 49, Chapter 4: Technical Practices


We already know that continuous delivery predicts lower change fail rates, which is an important quality metric. However, we also tested several additional proxy variables for quality:

  • The quality and performance of applications, as perceived by those working on them
  • The percentage of time spent on rework or unplanned work
  • The percentage of time spent working on defects identified by end users

Our analysis found that all measures were correlated with software delivery performance.

Page 50, Chapter 4: Technical Practices


Having automated tests that are reliable {predicts IT performance}: when automated tests pass, teams are confident that their software is releasable. Furthermore, they are confident that test failures indicate a real defect.

Page 53, Chapter 4: Technical Practices


Anecdotally, and based on our own experience, we hypothesize that this is because having multiple long-lived branches discourages both refactoring and intrateam communication.

Page 56, Chapter 4: Technical Practices


High-performing teams were more likely to incorporate information security into the delivery process. Their inforsec personnel provided feedback at every step of the software delivery lifecycle, from design through demos to helping with test automation. However, they did so in a way that did not slow down the development process, integrating security concerns into the daily workflow of teams. In fact, integrating these security practices contributed to software delivery performance.

Page 56, Chapter 4: Technical Practices


We found that high performance is possible with all kinds of systems, provided that systems—and the teams that build and maintain them—are loosely coupled.

This key architectural property enables teams to easily test and deploy individual components or services even as the organization and the number of systems it operates grow.

Page 59, Chapter 5: Architecture


Our research lends support to what is sometimes called the "inverse Conway Maneuver," which states that organizations should evolve their team and organizational structure to achieve the desired architecture. The goal is for your architecture to support the ability of teams to get their work done—from design through to deployment—without requiring high-bandwidth communication between teams.

Page 63, Chapter 5: Architecture


By focusing on the factors that predict high delivery performance—a goal-oriented generative culture, a modular architecture, engineering practices that enable continuous delivery, and effective leadership—we can scale deployments per developer per day linearly or better with the number of developers. This allows our business to move faster as we add more people, not slow down, as is more typically the case.

Page 65, Chapter 5: Architecture


When teams can decide which tools they use, it contributes to software delivery performance and, in turn, to organizational performance. (...) That said, there is a place for standardization, particularly around the architecture and configuration of infrastructure.

Page 66, Chapter 5: Architecture


What tools or technologies you use is irrelevant if the people who must use them hate using them, or if they don't achieve the outcomes and enable the behaviors we care about. What is important is enabling teams to make changes to their products or services without depending on other teams or systems.

Page 68, Chapter 5: Architecture


When building security into the software is part of the daily work of developers, and when infosec teams provide tools, training, and support to make it easy for developers to do the right thing, delivery performance gets better. Furthermore, this has a positive impact on security. We found that high performers were spending 50% less time remediating security issues than low performers.

_Page 72, Chapter 6: Integrating InfoSec into the Delivery Lifecycle


WIP limits are no good if the don't lead to process improvements that increase flow.

Page 77, Chapter 7: Management Practices for Software


This is a significant finding, as research has shown that "companies with highly engaged workers grew revenues two and a half times as much as those with low engagement levels. And {publicly traded} stocks of companies with a high-trust work environment outperformed market indexes by a factor of three from 1997 through 2011" (Azzarello et al. 2012)

Page 103, Chapter 10: Employee Satisfaction, Identity, and Engagement


Our analysis is clear: in today's fast-moving and competitive world, the best thing yo can do for your products, your company, and your people is institute a culture of experimentation and learning, and invest in the technical and management capabilities that enable it.

Pages 107 and 108, Chapter 10: Employee Satisfaction, Identity, and Engagement


Research shows that teams with more diversity with regard to gender or underrepresented minorities are smarter (Rock and Grant 2016), achieve better team performance (Deloitte 2013), and achieve better business outcomes (Hunt et al. 2015).

Page 110, Chapter 10: Employee Satisfaction, Identity, and Engagement


To capture transformational leadership, we used a model that includes five dimensions (Rafferty and Griffin 2004). According to this model, the five characteristics of a transformational leader are:

  • Vision. Has a clear understanding of where the organization is going and where it should be in five years.
  • Inspirational communication. Communicates in a way that inspires and motivates, even in an uncertain or changing environment.
  • Intellectual stimulation. Challenges followers to think about problems in new ways.
  • Supportive leadership. Demonstrates care and consideration of followers' personal needs and feelings.
  • Personal recognition. Praises and acknowledges achievements of goals and improvements in work quality; personally compliments others when they do outstanding work.

Page 117, Chapter 11: Leaders and managers


In summary, we found that leadership helps build great teams, great technology, and great organizations—but indirectly, leadership enables teams to rearchitect their systems and implement the necessary continuous delivery and Lean management practices. Transformational leadership enables the practices that correlate with high performance, and it also supports effective communication and collaboration between team members in pursuit of organizational goals. Such leadership also provides the foundation for a culture in which continuous experimentation and learning is a part of everybody's daily work.

Page 121, Chapter 11: Leaders and managers


Last but not least, managers should make performance metrics visible and take pains to align these with organizational goals, and should delegate more authority to their employees.

Page 122, Chapter 11: Leaders and managers


Our research shows that three things are highly correlated with software delivery performance and contribute to a strong team culture: cross-functional collaboration, a climate for learning, and tools.

Enable cross-functional collaboration by:

  • Building trust with your counterparts on other teams. (...)
  • Encouraging practitioners to move between departments. (...)
  • Actively seeking, encouraging, and rewarding work that facilitates collaboration. (...)

Help create a climate of learning by:

  • Creating a training budget and advocating for it internally. (...)
  • Ensuring that your team has the resources to engage in informal learning and the space to explore ideas. (...)
  • Making it safe to fail. (...)
  • Creating opportunities and spaces to share information.
  • Encourage sharing and innovation by having demo days and forums.

Make effective use of tools:

  • Make sure your team can choose their tools. (...)
  • Make monitoring a priority. (...)

Page 124, 125, 126, and 127, Chapter 11: Leaders and managers

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment