Rethinking Productivity in Software Engineering.

Saved in:
Bibliographic Details
:
TeilnehmendeR:
Place / Publishing House:Berkeley, CA : : Apress L. P.,, 2019.
©2019.
Year of Publication:2019
Edition:1st ed.
Language:English
Online Access:
Physical Description:1 online resource (320 pages)
Tags: Add Tag
No Tags, Be the first to tag this record!
Table of Contents:
  • Intro
  • Table of Contents
  • About the Editors
  • Acknowledgments
  • Introduction
  • Part I: Measuring Productivity: No Silver Bullet
  • Chapter 1: The Mythical 10x Programmer
  • Some Work Time Variability Data
  • Insisting on Homogeneity
  • Deciding What We Even Mean
  • Uninsisting on Homogeneity
  • Questioning the Base Population
  • It's Not Only About Development Effort
  • Are Slower Programmers Just More Careful?
  • Secondary Factors Can Be Important
  • The Productivity Definition Revisited
  • How Would Real People Work?
  • So What?
  • Key Ideas
  • References
  • Chapter 2: No Single Metric Captures Productivity
  • What's Wrong with Measuring Individual Performers?
  • Why Do People Want to Measure Developer Productivity?
  • What's Inherently Wrong with a Single Productivity Metric?
  • Productivity Is Broad
  • Flattening/Combining Components of a Single Aspect Is Challenging
  • Confounding Factors
  • What Do We Do Instead at Google?
  • Key Ideas
  • References
  • Chapter 3: Why We Should Not Measure Productivity
  • Unintended Consequences
  • Explaining Productivity
  • Dealing with Change
  • Managers as Measurers
  • Key Ideas
  • Part II: Introduction to Productivity
  • Chapter 4: Defining Productivity in Software Engineering
  • A Short History of Software Productivity
  • Terminology in the General Literature
  • Productivity
  • Profitability
  • Performance
  • Efficiency and Effectiveness
  • Influence of Quality
  • An Integrated Definition of Software Productivity
  • Summary
  • Key Ideas
  • Acknowledgements
  • References
  • Chapter 5: A Software Development Productivity Framework
  • Productivity Dimensions in Software Development
  • Velocity
  • Quality
  • Satisfaction
  • Lenses
  • The Productivity Framework in Action: Articulating Goals, Questions, and Metrics
  • Example 1: Improving Productivity Through an Intervention.
  • Productivity Goal 1: Improve Productivity at the Individual and Team Levels Through the Introduction of a New Continuous Integration System
  • Example 2: Understanding How Meetings Impact Productivity
  • Productivity Goal 2: Develop an Understanding of How Meetings May Impact Productivity
  • Caveats
  • Key Ideas
  • References
  • Chapter 6: Individual, Team, Organization, and Market: Four Lenses of Productivity
  • The Individual
  • The Team
  • The Organization
  • The Market
  • Full-Spectrum Productivity
  • Key Ideas
  • References
  • Chapter 7: Software Productivity Through the Lens of Knowledge Work
  • A Brief History of Knowledge Work
  • Techniques for Measuring Productivity
  • Outcome-Oriented Techniques
  • Process-Oriented Techniques
  • People-Oriented Techniques
  • Multi-oriented Techniques
  • Drivers That Influence Productivity
  • Software Developers vs. Knowledge Workers: Similar or Different?
  • Summary
  • Key Ideas
  • References
  • Part III: The Context of Productivity
  • Chapter 8: Factors That Influence Productivity: A Checklist
  • Introduction
  • A Brief History of Productivity Factors Research
  • The List of Technical Factors
  • Product Factors
  • Process Factors
  • Development Environment
  • The List of Soft Factors
  • Corporate Culture
  • Team Culture
  • Individual Skills and Experiences
  • Work Environment
  • Project
  • Summary
  • Key Ideas
  • Acknowledgments
  • Appendix: Review Design
  • References
  • Chapter 9: How Do Interruptions Affect Productivity?
  • Introduction
  • Controlled Experiments
  • What Is the Aim of an Experiment?
  • A Typical Interruptions Experiment
  • How Is Disruptiveness of an Interruption Measured?
  • Interruptions Cause Errors
  • Moving Controlled Experiments Out of the Lab
  • Summary: Controlled Experiments
  • Cognitive Models
  • What Are Cognitive Models?.
  • What Can Cognitive Models Predict About the Impact of Interruptions on Productivity?
  • Summary: Cognitive Models
  • Observational Studies
  • Observational Studies of the Workplace
  • Benefits and Detriments of Interruptions
  • Stress, Individual Differences, and Interruptions
  • Productivity
  • Strategies for Dealing with Interruptions
  • Summary: Observational Studies
  • Key Insights
  • Key Ideas
  • Acknowledgments
  • References
  • Chapter 10: Happiness and the  Productivity of Software Engineers
  • Why the Industry Should Strive for Happy Developers
  • What Is Happiness, and How Do We Measure It?
  • Scientific Grounds of Happy and Productive Developers
  • How Happy Are Software Developers?
  • What Makes Developers Unhappy?
  • What Happens When Developers Are Happy (or Unhappy)?
  • Cognitive Performance
  • Flow
  • Motivation and Withdrawal
  • Happiness and Unhappiness, and How They Relate to the Productivity of Developers
  • Are Happy Developers More Productive?
  • Potential Impacts of Happiness on Other Outcomes
  • What Does the Future Hold?
  • Further Reading
  • Key Ideas
  • References
  • Chapter 11: Dark Agile: Perceiving People As Assets, Not Humans
  • Revisiting the Agile Manifesto
  • Agile in Global Outsourcing Setups
  • Tracking Work to Increase Productivity
  • Daily Stand-Up Meeting to Monitor Productivity
  • Stressful Work Environment
  • Cost of Productivity
  • Open Questions for Productivity in Software Engineering
  • Key Ideas
  • Acknowledgments
  • References
  • Part IV: Measuring Productivity in Practice
  • Chapter 12: Developers' Diverging Perceptions of Productivity
  • Quantifying Productivity: Measuring vs. Perceptions
  • Studying Software Developers' Productivity Perceptions
  • The Cost of Context Switching
  • A Productive Workday in a Developer's Life
  • Developers Expect Different Measures for Quantifying Productivity.
  • Characterizing Software Developers by Perceptions of Productivity
  • Opportunities for Improving Developer Productivity
  • Key Ideas
  • References
  • Chapter 13: Human-Centered Methods to Boost Productivity
  • Key Ideas
  • References
  • Chapter 14: Using Biometric Sensors to Measure Productivity
  • Operationalizing Productivity for Measurement
  • What the Eye Says About Focus
  • Observing Attention with EEG
  • Measuring Rumination
  • Moving Forward
  • Key Ideas
  • References
  • Chapter 15: How Team Awareness Influences Perceptions of Developer Productivity
  • Introduction
  • Awareness and Productivity
  • Enabling Awareness in Collaborative Software Development
  • Aggregating Awareness Information into Numbers
  • Aggregating Awareness Information into Text
  • Rethinking Productivity and Team Awareness
  • Key ideas
  • References
  • Chapter 16: Software Engineering Dashboards: Types, Risks, and Future
  • Introduction
  • Dashboards in Software Engineering
  • Developer Activity
  • Team Performance
  • Project Monitoring and Performance
  • Community Health
  • Summary
  • Risks of Using Dashboards
  • Rethinking Dashboards in Software Engineering
  • Key Ideas
  • References
  • Chapter 17: The COSMIC Method for  Measuring the Work-Output Component of Productivity
  • Measurement of Functional Size
  • The COSMIC Method
  • Discussion of the COSMIC Model
  • Correlation of COSMIC Sizes with Development Effort
  • Automated COSMIC Size Measurement
  • Conclusions
  • Key Ideas
  • References
  • Chapter 18: Benchmarking: Comparing Apples to Apples
  • Introduction
  • The Use of Standards
  • Functional Size Measurement
  • Reasons for Benchmarking
  • A Standard Way of Benchmarking
  • Normalizing
  • Sources of Benchmark Data
  • ISBSG Repository
  • Internal Benchmark Data Repository
  • Benchmarking in Practice
  • False Incentives
  • Summary
  • Key Ideas
  • Further Reading.
  • Part V: Best Practices for Productivity
  • Chapter 19: Removing Software Development Waste to Improve Productivity
  • Introduction
  • Taxonomy of Software Development Waste
  • Building the Wrong Feature or Product
  • Mismanaging the Backlog
  • Rework
  • Unnecessarily Complicated or Complex Solutions
  • Extraneous Cognitive Load
  • Psychological Distress
  • Knowledge Loss
  • Waiting/Multitasking
  • Ineffective Communication
  • Additional Wastes in Pre-agile Projects
  • Discussion
  • Not All Problems Are Wastes
  • Reducing Waste
  • Conclusion
  • Key Ideas
  • References
  • Chapter 20: Organizational Maturity: The Elephant Affecting Productivity
  • Background
  • The Process Maturity Framework
  • The Impact of Maturity on Productivity and Quality
  • Updating Maturity Practices for an Agile-DevOps Environment
  • Summary
  • Key Ideas
  • References
  • Chapter 21: Does Pair Programming Pay Off?
  • Introduction: Highly Productive Programming
  • Studying Pair Programming
  • Software Development As Knowledge Work
  • What Actually Matters in Industrial Pair Programming
  • Constellation A: System Knowledge Advantage
  • Constellation B: Collective System Knowledge Gap
  • Constellation C: Complementary Knowledge
  • So, Again: Does Pair Programming Pay Off?
  • Key Ideas
  • References
  • Chapter 22: Fitbit for Developers: Self-Monitoring at Work
  • Self-Monitoring to Quantify Our Lives
  • Self-Monitoring Software Developers' Work
  • Supporting Various Individual Needs Through Personalization
  • Self-Reporting Increases Developers' Awareness About Efficiency
  • Retrospection About Work Increases Developers' Self-Awareness
  • Actionable Insights Foster Productive Behavior Changes
  • Increasing Team Awareness and Solving Privacy Concerns
  • Fostering Sustainable Behaviors at Work
  • Key Ideas
  • References
  • Chapter 23: Reducing Interruptions at Work with FlowLight.
  • The Cost of Interruptions at Work.