More on this book
Community
Kindle Notes & Highlights
Read between
November 26 - December 15, 2018
speed depends on stability, so good IT practices give you both.
accomplishing a task in a single line of code that no one else can understand is less desirable than writing a few lines of code that are easily understood and maintained.
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.
In our search for measures of delivery performance that meet these criteria, we settled on four: delivery lead time, deployment frequency, time to restore service, and change fail rate.
lead time: the time it takes to design and validate a product or feature, and the time to deliver the feature to customers.
much dogma in our industry still rests on the false assumption that moving faster means trading off against other performance goals, rather than enabling and reinforcing them.4
The fact that software delivery performance matters provides a strong argument against outsourcing the development of software that is strategic to your business, and instead bringing this capability into the core of your organization.
As Deming said, ’whenever there is fear, you get the wrong numbers’”
Computers perform repetitive tasks; people solve problems.
reducing what he calls failure demand— demand for work caused by the failure to do the right thing the first time by improving the quality of service we provide.
Teams that did well had fewer than three active branches at any time, their branches had very short lifetimes (less than a day) before being merged into trunk and never had “code freeze” or stabilization periods.
We’ve seen that adopting continuous delivery practices improves delivery performance, impacts culture, and reduces burnout and deployment pain.
employing the latest whizzy microservices architecture deployed on containers is no guarantee of higher performance
Melvin Conway, who said, “organizations which design systems . . . are constrained to produce designs which are copies of the communication structures of these organizations”
the “inverse Conway Maneuver,”2 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.
To measure productivity, we calculated the following metric from our data: number of deploys per day per developer.
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.
In software organizations, the ability to work and deliver in small batches is especially important because it enables teams to integrate user research into product development and delivery.
be aware that if deployments have to be performed outside of normal business hours, that’s a sign of architectural problems that should be addressed.
Burnout is physical, mental, or emotional exhaustion caused by overwork or stress
human error is never the root cause of failure in systems.
Automation matters because it gives over to computers the things computers are good at—rote tasks that require no thinking and that in fact are done better when you don’t think too much about them.
Leaders are those who set the tone of the organization and reinforce the desired cultural norms.
As the real value of a leader or manager is manifest in how they amplify the work of their teams, perhaps the most valuable work they can do is growing and supporting a strong organizational culture among those they serve: their teams.
Trust is built on kept promises, open communication, and behaving predictably even in stressful situations.
Research has shown that organizational culture is predictive of technology and organizational performance, is predictive of performance outcomes, and that team dynamics and psychological safety are the most important aspects in understanding team performance (Google 2015).
For people to bring their best to the work that may, in fact, eliminate their current job, they need complete faith that their leaders value them—not just for their present work but for their ability to improve and innovate in their work.
The work itself will constantly change; the organization that leads is the one with the people with consistent behavior to rapidly learn and adapt.
Too often, quality is overshadowed by the pressure for speed.
A courageous and supportive leader is crucial to help teams “slow down to speed up,” providing them with the permission and safety to put quality first (fit for use and purpose) which, in the long run, improves speed, consistency, and capacity while reducing cost, delays, and rework.
“As a leader, you have to look at your own behaviors before you ask others to change,”
“Before, I never discussed culture,” he said. “It was a difficult topic and I did not know how to change it in a sustainable way. But I learned that when you change the way you work, you change the routines, you create a different culture.”
Practice patience. Your current way of work took decades to entrench. It’s going to take time to change actions and thought patterns until they become new habits
since nearly every company relies on software, delivery performance is critical to any organization doing business today.
Two variables moving together can always be due to a third variable or, sometimes, just chance.
The four measures of software delivery performance (deploy frequency, lead time, mean time to restore, change fail percentage) are good classifiers for the software delivery performance profile.

