Accelerate - notes
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