More on this book
Community
Kindle Notes & Highlights
Read between
May 26 - May 27, 2019
delivery lead time, deployment frequency, time to restore service, and change fail rate.
Lead time is the time it takes to go from a customer making a request to the request being satisfied.
the time it takes to design and validate a product or feature, and the time to deliver the feature to customers.
Shorter product delivery lead times are better since they enable faster feedback on what we are building and allow us to course correct more rapidly.
THE IMPACT OF DELIVERY PERFORMANCE ON ORGANIZATIONAL PERFORMANCE
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.
First, in organizations with a 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 also the departmental issues that are so evident in bureaucratic organizations. The mission is primary. And third, generativity encourages a ‘level playing field,’ in which hierarchy plays less of a role” (Westrum 2014, p. 61).
reliability. Analysis showed that only lead time, release frequency, and time to restore together form a valid and reliable construct.
software delivery performance
common factors among its best-performing teams.
“who is on a team matters less than how the team members interact, structure their work, and view their contributions” (Google 2015). In other words, it all comes down to team dynamics.
Our research shows that Lean management, along with a set of other technical practices known collectively as continuous delivery (Humble and Farley 2010), do in fact impact culture,
Continuous delivery is a set of capabilities that enable us to get changes of all kinds—features, configuration changes, bug fixes, experiments—into production or into the hands of users safely, quickly, and sustainably.
In continuous delivery, we invest in building a culture supported by tools and people where we can detect any issues quickly, so that they can be fixed straight away when they are cheap to detect and resolve.
A key goal of continuous delivery is changing the economics of the software delivery process so the cost of pushing out individual changes is very low.
Computers perform repetitive tasks; people solve problems.
The most important characteristic of high-performing teams is that they are never satisfied: they always strive to get better.
Everyone is responsible.
Continuous integration (CI).
Continuous testing.
Automated unit and acceptance tests should be run against every commit to version control to give developers fast feedback on their changes.
Continuous delivery requires that developers and testers, as well as UX, product, and operations people, collaborate effectively throughout the delivery process.
with software delivery performance. However, the strongest correlation was seen in the percentage of time spent on rework or unplanned work, including break/fix work, emergency software deployments and patches,
continuous delivery predicts lower levels of unplanned work
Having automated tests that are reliable: when the automated tests pass, teams are confident that their software is releasable.
when developers are involved in creating and maintaining acceptance tests, there are two important effects.
when developers are responsible for the automated tests, they care more about them and will invest more effort into maintaining and fixing them.
Every commit should trigger a build of the software and running a set of fast, automated tests.
developing off trunk/master rather than on long-lived feature branches was correlated with higher delivery performance.
teams using branches that live a short amount of time (integration times less than a day) combined with short merging and integration periods (less than a day) do better in terms of software delivery performance
Melvin Conway, who said, “organizations which design systems . . . are constrained to produce designs which are copies of the communication structures of these organizations”
“inverse Conway Maneuver,”2 which states that organizations should evolve their team and organizational structure to achieve the desired architecture.
A LOOSELY COUPLED ARCHITECTURE ENABLES SCALING
High performers deploy at a significantly increasing frequency.
teams that build security into their work also do better at continuous delivery.
ARCHITECTS SHOULD FOCUS ON ENGINEERS AND OUTCOMES, NOT TOOLS OR TECHNOLOGIES
What is important is enabling teams to make changes to their products or services without depending on other teams or systems.
“shift left” on information security— that is, when they build it into the software delivery process instead of making it a separate phase that happens downstream of the development process—this positively impacts their ability to practice continuous delivery.
When building security into 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.
We found that external approvals were negatively correlated with lead time, deployment frequency, and restore time, and had no correlation with change fail rate.
Our research shows that improving key technical capabilities reduces deployment pain: teams that implement comprehensive test and deployment automation; use continuous integration, including trunk-based development; shift left on security; effectively manage test data; use loosely coupled architectures; can work independently; and use version control of everything required to reproduce production environments decrease their deployment pain.
Fostering a respectful, supportive work environment that emphasizes learning from failures rather than blaming Communicating a strong sense of purpose Investing in employee development Asking employees what is preventing them from achieving their objectives and then fixing those things Giving employees time, space, and resources to experiment and learn
COMMON PROBLEMS THAT CAN LEAD TO BURNOUT
six organizational risk factors that predict burnout (Leiter and Maslach 2008):3 Work overload: job demands exceed human limits. Lack of control: inability to influence decisions that affect your job. Insufficient rewards: insufficient financial, institutional, or social rewards. Breakdown of community: unsupportive workplace environment. Absence of fairness: lack of fairness in decision-making processes. Value conflicts: mismatch in organizational values and the individual’s values.
not only do investments in technology make our software development and delivery better, they make the work lives of our professionals better.
High performers have better employee loyalty, as measured by employee
The extent to which employees identify with their organization’s values and goals, and the effort they are willing to put in to make the organization successful
People are an organization’s greatest asset—yet so often they’re treated like expendable resources. When leaders invest in their people and enable them to do their best work, employees identify more strongly with the organization and are willing to go the extra mile to help it be successful. In return, organizations get higher levels of performance and productivity, which lead to better outcomes for the business.
one of the key contributors to burnout is a mismatch of personal and organizational values.
too: people who feel supported by their employers, who have the tools and resources to do their work, and who feel their judgment is valued, turn out better work. Better work results in higher software delivery performance, which results in a higher level of organizational performance.