More on this book
Community
Kindle Notes & Highlights
Read between
September 5 - September 5, 2021
The use of version control for application code, system configuration, application configuration, and build and configuration scripts Comprehensive test automation that is reliable, easy to fix, and runs regularly Deployment automation Continuous integration Shifting left on security: bringing security—and security teams—in process with software delivery rather than as a downstream phase Using trunk-based development as opposed to long-lived feature branches Effective test data management
they help to decrease deployment pain and team burnout.
production is not an enormous, big-bang event—
authority to fix problems straight away,
Teams can deploy to production (or to end users) on demand, throughout the software delivery lifecycle. Fast feedback on the quality and deployability of the system is available to everyone on the team, and people make acting on this feedback their highest priority.
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
felt.
“Agile processes promote sustainable development.
THE IMPACT OF CONTINUOUS DELIVERY ON QUALITY
Does continuous delivery increase quality?
“Quality is value to some person”
lower change fail rates,
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
percentage of time spent on rework or unplanned work,
break/fix work, emergency software deployments and patches, responding to urgent audit documentation requests, and so forth. Furthermore, continuous delivery predicts lower
High performers reported spending 49% of their time on new work and 21% on unplanned work or rework. In contrast, low performers spend 38% of their time on new work and 27% on unplanned work or rework.
build quality into our products.
between “paying attention to the low fuel warning light on an automobile versus running out of gas on the highway”
can fix the problem in a planned manner, without much urg...
This highlight has been truncated due to consecutive passage length restrictions.
emphasizes the importance of reducing what he calls failure demand—
CONTINUOUS DELIVERY PRACTICES: WHAT WORKS AND WHAT DOESN’T
We asked if respondents were keeping application code, system configuration, application configuration, and scripts for automating build and configuration in version control. These
keeping system and application configuration in version control was more highly correlated with software delivery performance than keeping application code in version control.
TEST AUTOMATION
Having automated tests that are reliable:
defect. Too many test suites are flaky and unreliable,
producing false positives and negatives
If they’re version-controlled (as they should be), you can always get them back.
Developers primarily create and maintain acceptance tests, and they can easily reproduce and fix them on their development workstations.
having automated tests primarily created and maintained either by QA or an outsourced party is not co...
This highlight has been truncated due to consecutive passage length restrictions.
First, the code becomes more testable when developers write tests.
reasons why test-driven development (TDD) is an important practice
developers to create more testa...
This highlight has been truncated due to consecutive passage length restrictions.
Second, when developers are responsible for the automated tests, they care more about them and will invest more effort...
This highlight has been truncated due to consecutive passage length restrictions.
manual testing such as exploratory, usability, and acceptance testing,
helping to create and evolve suites of automated tests by working alongside developers.
run them regularly.
commit should trigger a build of the software and running a set of fast, automated tests.
more comprehensive suite of acceptance and performanc...
This highlight has been truncated due to consecutive passage length restrictions.
current builds should be available to testers for exp...
This highlight has been truncated due to consecutive passage length restrictions.
creating automated tests, managing test data can be hard.
adequate test data to run their fully automated test suites and could acquire test data for running automated tests on demand.
TRUNK-BASED DEVELOPMENT
developing off trunk/master rather than on long-lived feature branches was correlated with higher delivery performance.
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.
results are independent of team size, organization s...
This highlight has been truncated due to consecutive passage length restrictions.
the “GitHub Flow” workflow6 remain skeptical.
developing with branches and only periodically merging to trunk.
that branching strategies are effective if development teams don’t maintain...
This highlight has been truncated due to consecutive passage length restrictions.
working on short-lived branches that are merged into trunk at least daily is consistent with commonly accepted c...
This highlight has been truncated due to consecutive passage length restrictions.