See a Problem?
We’d love your help. Let us know what’s wrong with this preview of Accelerate by Nicole Forsgren.
Not the book you’re looking for?
Preview — Accelerate by Nicole Forsgren
Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations
Read between January 18 - February 22, 2020
their book focuses on IT delivery, that is, the journey from commit to production, not the entire software development process.
NFRs are features and reducing technical debt improves stability of the product).
Another thing I learned along the way is how critical it is to have senior leadership support. And support in actions, not words. Senior leaders need to demonstrate their commitment to creating a learning organization.
We used surveys because they are the best way to collect a large amount of data from thousands of organizations in a short amount of time.
maturity models are not the appropriate tool to use or mindset to have. Instead, shifting to a capabilities model of measurement is essential for organizations wanting to accelerate software delivery.
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 is the time it takes to go from a customer making a request to the request being satisfied.
there are two parts to lead time: the time it takes to design and validate a product or feature, and the time to deliver the feature to customers.
Traditionally, reliability is measured as time between failures. However, in modem software products and services, which are rapidly changing complex systems, failure is inevitable, so the key question becomes: How quickly can service be restored?
three characteristics of good information: It provides answers to the questions that the receiver needs answered. It is timely. It is presented in such a way that it can be effectively used by the receiver.
keeping system and application configuration in version control was more highly correlated with software delivery performance than keeping application code in version control.
It’s interesting to note that having automated tests primarily created and maintained either by QA or an outsourced party is not correlated with IT performance.
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 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.
Those who agreed with the following statements were more likely to be in the high-performing group: We can do most of our testing without requiring an integrated environment.1 We can and do deploy or release our application independently of other applications/services it depends on.
When teams can decide which tools they use, it contributes to software delivery performance and, in turn, to organizational performance.
ARCHITECTS SHOULD FOCUS ON ENGINEERS AND OUTCOMES, NOT TOOLS OR TECHNOLOGIES
What we see here is a shift from information security teams doing the security reviews themselves to giving the developers the means to build security in.
approval by an external body (such as a manager or CAB) simply doesn’t work to increase the stability of production systems, measured by the time to restore service and change fail rate. However, it certainly slows things down. It is, in fact, worse than having no change approval process at all.
Our analysis showed that the ability of teams to try out new ideas and create and update specifications during the development process, without requiring the approval of people outside the team, is an important factor in predicting organizational performance as measured in terms of profitability, productivity, and market share.
if deployments have to be performed outside of normal business hours, that’s a sign of architectural problems that should be addressed.
Research shows that stressful jobs can be as bad for physical health as secondhand smoke (Goh et al. 2015) and obesity (Chandola et al. 2006).
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.
NPS is calculated by subtracting the percentage of detractors from the percentage of promoters. For example, if 40% of employees are detractors and only 20% are promoters, the Net Promoter Score is -20%.
the best thing you can do for your products, your company, and your people is institute a culture of experimentation and learning,
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.
Use Disaster Recovery Testing Exercises to Build Relationships
If failure is punished, people won’t try new things.
Snowball sampling is a method well suited for studying specific groups whose populations cannot be easily identified.
Four distinct zones are visualized: strategic improvement, performance monitoring, portfolio roadmap, and leadership actions, each with current information about targets, gaps, progress, and problems.