tl;dr:"Google‘s Engineering Productivity Research team subscribes to the belief that no single metric captures developer productivity. Instead, they break developer productivity down into three dimensions: speed, ease, and quality. Anytime they’re measuring one of the three dimensions (for example, how long it takes for code reviews to be completed), they also measure the other two to surface potential tradeoffs." Quality is broken down into 4 areas - Process, Code, System and Product, which Abi dives into.
tl;dr:What percentage of headcount should be allocated toward centralized productivity teams? Abi found that companies under 1,000 engineers allocate 18.9% of their headcount toward centralized productivity teams, with a range of 8%-37%. The average allocation decreased to 17.8% when including companies with more than 1,000 engineers. Abi breaks this down further by company size and categories of productivity teams.
tl;dr:OKR maturity was found to be positively correlated with the following: (1) Having a unified mission as a team. This is intuitive: a unified mission brings alignment, and this alignment may drive people to set better OKRs as it is clear what they’re working toward. (2) Overall happiness at the company. This aligns with the finding from previous research that progressing towards a meaningful goal is a top motivator for employees. (3) Working remotely. “We hypothesize this is because teams who do not have regular face time and in person meetings with leadership need to be more clear on what they are doing, how it relates to the org, and have better ability to share back their progress.”
tl;dr:Developers were asked to rate a set of challenges to determine which factors had the highest impact. The two most impactful challenges identified were insufficient analysis at the beginning of a task and lack of leadership. Other impactful challenges included missing documentation, demotivation, and information not being made known to the team. Abi discusses how to address these.
tl;dr:“Developers are different in what they consider as a productive or unproductive workday; this study aimed to help leaders make sense of these differences.” The study found 6 types of developers and what they deemed as productive: (1) Social developers: feel productive when helping coworkers, collaborating and doing code reviews. (2) Lone developers: avoid disruptions such as noise, email, meetings, and code reviews. (3) Focused developers: feel most productive when they are working efficiently and concentrated on a single task at a time. (4) Balanced developers: less affected by disruptions. (5) Leading developers: more comfortable with meetings and emails. (6) Goal-oriented developers: productive when they complete or make progress on tasks.
tl;dr:“Researchers found that readability and structure were the most commonly used defining properties for code quality. 82% of interviewees referred to either readability or structure, or both, when describing how they define code quality.” After that, the researchers discovered that comprehensibility, documentation and correctness followed. Abi reminds us that “code quality is a fundamentally human property” and not measured by quantitive metrics.
tl;dr:Abi summarizes a study by Google researchers on the factors that correlate with software developers' productivity. The study found that "Job enthusiasm," "Peer support for new ideas," and "Useful feedback about job performance" were the most strongly correlated factors with self-rated productivity. The top 10 productivity factors were non-technical.
tl;dr:Abi highlights a study on developers' productivity, revealing that reflective goal-setting leads to improvements. 84% of participants identified concrete goals through reflection, 80% saw positive behavior change, and 92% planned to maintain new habits. The key takeaway is that reflective goal-setting not only enhances awareness and productivity but also encourages lasting behavioral changes, empowering developers to gain control over their work.
tl;dr:The takeaway is that even modest improvements to build times are helpful. Three things: (1) There is no specific threshold for how fast builds need to be for developers to stay on task and be productive. (2) Providing developers with estimated build times can improve productivity. (3) Even modest improvements in build latency can be helpful.
tl;dr:The highest priority adoption factor for 4 types of internal tools: (1) For build tools, it is whether the tool is highly configurable. (2) For continuous integration tools, it’s whether the tool is compatible with the technologies developers use. (3) For infrastructure as code tools, it’s how visible the usage of the tool is within the organization. (4) For version control tools, it’s whether the tool fits well with the way developers work.