What you could learn from ‘Accelerate’ by Forsgren, Humble & Kim (2018, 200 pages)

There is a lot of opinion in the software development industry about what works.  Even though some of the insights are the result of decades of hard-won experience, humans are highly biased and context-dependent – we often think what works in one situation will keep on working, or will work great in an altogether different case.

The team behind ‘Accelerate’ sought to cut through individual opinion and find data.  By surveying tens of thousands of people, across thousands of organisations, they found the following:

  • High performing organisations used small teams (<10) working in short cycles (weeks) and measure feedback from users to build products and services that delight their customers and rapidly deliver value to the organisation
  • Industry type has no impact on performance, you can be a top performer even if you are highly regulated
  • Software delivery performance is positively correlated with organizational performance and non-commercial performance
  • Continuous delivery and lean management are positively correlated with a strong and positive organisational culture, less deployment pain and less burnout
  • The companies with the most painful deployment process had the worst software delivery performance, organisational performance and culture
  • Leaders use transformational leadership

 

Several key elements are now explained in more detail.

 

Software development performance:

  • Lead Time (time from code committed to code running on production)
  • Deployment frequency (how often is code shipped to production)
  • Mean time to Restore (MTTR) (how long it takes to fix a failure on production)
  • Change Fail Percentage (how often production builds fail)

 

Continuous delivery (p43)

  • Build quality in
  • work in small batches
  • computers perform repetitive tasks, people solve problems
  • relentless pursue continuous improvement
  • every is responsible

 

Lean management (p76)

  • Work in small batches (limit WIP)
  • Make Flow of work visible
  • Gather & implement customer feedback
  • Lightweight change approvals
  • Team experimentation

 

Deployment process (p93)

  • Build systems that are designed to be deployed easily into multiple environments, can detect and tolerate failures in their environments and can have components updated independently
  • Ensure that the state of production systems can be reproduced (without production data) in an automated fashion from information in version control
  • Build intelligence into the application and the platform so that the deployment process can be as simple as possible

 

Transformational leaders provide (p117)

  • Vision – clear understanding of where the organization is going and where it will be in five years
  • inspirational communication – communicates in a way that inspires and motivates, even in an uncertain environment
  • intellectual stimulation – challenges people to think about problems in new ways
  • supportive leadership- demonstrates care and consideration of followers personal needs and feelings
  • personal recognition – praises and acknowledges achievements

 

Accelerate provides hard evidence to support what good engineers and product leaders have been saying for years.  Read this book, if you want the tools to benchmark your ability to deliver reliable and valuable software. 

 

You can buy Accelerate on Amazon UK here

You can find the link to the survey here

 

 

Other useful insights from the book below

 

What is good information transfer? (p31)

  • Provides the right answer
  • Is timely
  • Can be used by the recipient

 

How high-performing and low-performing teams spend their time (p51)

Type of work High performers Low performers
New work 49% 38%
Unplanned or re-work 21% 27%
Other work (meetings, maintenance etc.) 30% 35%

 

Managers should focus on (a lot of this is very similar to Google project Oxygen), rather than try to ‘fix the people’ (p95)

  • Foster a respectful, supportive environment that emphasises learning from failure rather than blaming
  • Communicate strong sense of purpose
  • Invest in employee development
  • Ask employees what is preventing them from achieving their objectives and then fixing those things
  • Give employees time, space and resources to experiments

 

Technical advice for managers (p125)

  • Make sure the team can choose their tools
  • Make monitoring a priority
  • Move people between departments
  • Conduct disaster response rehearsals with everyone
  • Space and time to think (Google 20%)
  • Share knowledge, ideas and best practice through demos days

 

Good questions to ask your organisation can be found on:

  • Software performance p15
  • Culture p35, p206
  • Continuous delivery p45, p201
  • architecture p62
  • time spent p51
  • Deployment frequency (per developer, per day) p65
  • Lean product development and management p84, p205
  • deployment p93
  • employee satisfaction p103/106
  • leadership p118, p195