Notes from the book by N.Forsgren, J.Humble, G.Kim

Summary

The book is split in three parts. What - How - An Example

I mainly read the first part. I assume the how has been validated already by people much better than me, and the example is something to read i guess when you are in more of a mood for a story.

Most of the stuff in the book validated things that i already believe. So it is an awesome book 😀 but i may be biased. Most of these things that work also make the job more fun. So great news.

Capabilites

Five categories of capabilities and i hilight my favs:

Continuous delivery

  • shift left on security

Architecture

  • loosely coupled
  • empowered teams

Product & Process

  • working in small batches

Lean management and monitoring

  • change approval proccess

Culture

  • supporting learning
  • collaboration among teams

2. Measuring Performance

when velocity is used as a productivity measure, teams inevitably work to game their velocity

Measuring software delivery performance

delivery lead time, deployment frequency, time to restore service, change fail rate

4. Technical Practises

put automated tests that are not reliable in a separate quarantine suite

Trunk-Based Development

higher delivery performance … fewer than three active branches at any time … short lifetimes (less than a day)

5. Architecture

They are generalizing what they reviewed and found some broad good/bad categories.

high performance … all kinds of systems … loosely coupled

low performances … custom software developed by another company … working on mainframe systems

Focus on Deployability and Testability

testability and deployability are important

Some factors for succcess:

  • make … changes to … design … without … permission of somebody outside
  • complete … work without communicating … outside thier team
  • deploy and release .. on demand
  • testing on demand
  • perform deployments … with negligible downtime

A Loosely Coupled Architecture Enables Scaling

high performers deploy at … increasing frequency

Allow Teams to Choose Their Own Tools

When they can’t choose

prevents teams from choosing technologies that will be most suitable … from experimenting with new approaches

the upsides of delegating tool choice to teams may outweigh the disadvantages

when the tools provided … make life easier … they will adopt them of their own free will

Architects Should Focus on Engineers and Outcomes, not Tools or Technologies

they are wrong questions to focus on

6. Integrating Infosec into the Delivery Lifecycle

infosec teams are often poorly staffed

many developers are ignorant of common security risks … and how to prevent them

building security into software development … improves delivery performance … security quality

Shifting Left on Security

information security should be integrated into the entire software delivery lifecycle

ensure that there are easy to consume, preapproved libraries, packages, toolchains, processes

giving the developers the means to build security in

high performers were spending 50% less time remediating security issues

7. Management Practises for Software

Good practies they found

  • limiting work in progress
  • visual displays showing key quality and productivity metrics … current status
  • data from application performance … to make business decisions

lean management practises … decrease burnout … more generative culture

Teams that reported no approval … peer review, achieved higher software delivery performance

use a lightweight change approval proccess based on peer review … pair programming … combined with a deployment pipeline

8. Product Development

Agile

Building and validating prototypes from the beginning … small batches … evolving or pivoting … early and often

Lean Product Development Practises

  • features … completed in less than a week
  • teams have a good understanding … from the business all the way thru to customers … status of products and features
  • customer feedback … incorporate … into the design
  • authority to create … specifications … without … approval

these factors were statistically significant

Working in Small Batches

MVP … enable validated learning

experimental approach

collecting customer satisfaction metrics … seeking customer insights … feedback to inform the design … authority to respond to feedback

Team Experimentation

ability … to try out new ideas … without requiring … approval

Effective Product Management Drives Performance

Lean … positively impact … performance … culture … decrease burnout

small batches

9. Making Work Sustainable

deployment pain

where … deployments are … painful … poorestsoftware … performance, organisational performance, and culture

work/life balance … just 38% … after implementing … jumped to 75%

if your teams have no visibility into code deployments … they isolate developers from the downstream consequences of their work

They gave recommendations to use:

test and deployment automation … continuous integration … trunk-based development; shift-left on security … manage test data … loosely coupled architecture … work independently … use version control of everything

correlation between deployment pain and … IT performance, organisational performance … organisational culture

Complex brittle deployments caused by:

software … not written with deployability in mind

propability of a failed deployment rises … when manual changes must be made

Ro reduce deployment pain:

  • systems that … deployed easily …detect and tolerate failures … components … updated independently
  • the state … can be reproduced … in an automated fashion from. … version control
  • deployment process … simple as possible

deployed using a single command

Burnout

often try to fix the person while ignoring the work environment

Focus on:

  • supportive … enviroment … learning from failures rather than blaming
  • sense of purpose
  • employee development
  • asking employees what is preventing them from acheiving … fixing those things
  • time, space, and resources to experiment and learn
  • given the authority to make decisions … in areas where they are responsible for the outcomes

Common Problems that can Lead to Burnout

  • overload
  • lack of control
  • insufficient rewards
  • unsupportive workplace
  • absence of fairness
  • value conflicts

fixing the environment has a higher likelihood of success

improving technical practises … continuous delivery … lean practises … reduce … burnout

How to Reduce or Fight Burnout

  • culture. strong feelings of burnout … found in … pathological, power-oriented culture. creating a blame-free environment .. shared sense of purpose
  • deployment pain. ask … how painful their deployments are … fix the things that hurt the most
  • effectiveness of leaders. limiting work in progress … elimination roadblocks
  • investments in DevOps
  • organisational performance

when there is alignment, employees with thrive

10. Employee Satisfaction, Identity, and Engagement

job satisfaction depends … on having the right tools and resources … if you are satisfied … if you are given teh tools and resources … if your job makes good use of your skills

automation matters … allows people to focus on things that they’re good at

Diversity in Tech - What our Reaserch Found

teams with more diversity … are smarter

diversity is not enough … be inclusive … high sense of belongings

linking the presence of women in leadership positions to higher financial performance

11. Leaders and Managers

leadership is about inspiring and motivating those around you

  • enable developer productivity
  • supporting … experimentation
  • working accross organisational silos

Transformational leader characteristics:

  • Vision
  • Inspirational Communication
  • Intellectual Stimulation
  • Supportive … care and consideration
  • Praises and acnowledges … personally compliments others

focus on getting followers to identify with the organisation

Manager knows:

  • where we are going
  • where he/she wants our team … in five years
  • where the organisation is going
  • make employees proud to be a part
  • says positive things
  • encourages people to see … opportunities
  • challenges … think about old problems in new ways
  • forced … to rethink
  • rethink some … basic assumptions
  • considrs my personal feelings
  • thoughtful of my … needs
  • interests of employees … consideration
  • commends me
  • acknowledges improvement
  • compliments me

leaders alone cannot achieve high devops outcomes

leaders cannot acheive goals on their own … sutiabel architecture, with good technical practises, use of Lean principles … all the other factors

leadership … provides the foundation for … culture

The Role of Managers

when leaders are managers … even bigger role

investment in devops .. correlated with … performance

managers … enabling specific devops practises

make deployments less painful

make performance metrics available

how to invest in teams:

  • resources .. accessible to everyone … learning
  • training budget … give your staff the lattitude to choose
  • encourage staff to attend technical conferences
  • internal hack days
  • internal “yak days” (work on tech debt)
  • internal devops mini-conferences
  • give staff dedicated time … to experiment with new tools

Tips to Improve Culture and Support Teams

real value of a leader … amplify the work of their teams

  • building trust with your counterparts kept promises, open communication … behaving predictably
  • encouraging … move between departments
  • seeking, encouraging … rewarding work that facilitates collaboration
  • creating a training budget
  • ensuring that your team had the resources
  • safe to fail if failure is punished, people won’t try new things
  • opportunities and spaces to share information
  • encourage sharing … innovation .. demo days
  • make sure your team can choose their tools ensure that procurement and finance are acting in the interests of teams, not the other way around
  • monitoring proactive monitoring … related to performance … job satisfaction