/Abi Noda

Characterizing Software Developers By Perceptions Of Productivity 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.

featured in #459


Characteristics Of Code Quality 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.

featured in #455


What Predicts Software Developers’ Productivity? 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.

featured in #451


Enabling Good Work Habits Through Reflective Goal-Setting 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.

featured in #438


Build Times And Developer Productivity 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.

featured in #431


What Drives Adoption Of Internal Developer Tools? 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.

featured in #425


How Google Measures And Manages Tech Debt tl;dr: The first part describes the categories of tech debt and the second part explores how categories may be measured, providing insights on how to determine whether teams are struggling with technical debt and the types of tech debt they’re struggling with. The final part of this paper provides several tactics that may help reduce tech debt. 

featured in #423


DevEx: What Actually Drives Productivity tl;dr: The 3 pillars are: (1) Reducing friction: minimizing obstacles, inefficiencies, and complexities in the development process. (2) Optimizing workflows: streamlining processes, automating repetitive tasks, and integrating tools and technologies. (3) Enabling a state of flow: creating an environment that fosters concentration, creativity, and intrinsic motivation.

featured in #417


10 Years Of Tech Debt Research tl;dr: Abi recommends to better communicate and manage tech debt by: (1) Moving away from using the phrase “technical debt.” (2) Defining what the problem really is. He explains why in this post.

featured in #415


Measuring Flow And Focus tl;dr: Based on a study with Google engineers, the best predictor of flow is “focus time:” performing a number of similar actions in a given window of time. Researchers also identified 3 practices for facilitating flow: (1) Schedule management. (2) Goal setting so engineers are working on tasks that feel fulfilling. (3) Giving time to “get into flow.”

featured in #412