Rethinking Productivity in Software Engineering.
Material type: TextPublisher: Berkeley, CA : Apress L. P., 2019Copyright date: �2019Edition: 1st edDescription: 1 online resource (320 pages)Content type: text Media type: computer Carrier type: online resourceISBN: 9781484242216Genre/Form: Electronic books.Additional physical formats: Print version:: Rethinking Productivity in Software EngineeringLOC classification: QA76.76.C65Online resources: Click to ViewIntro -- 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.
Description based on publisher supplied metadata and other sources.
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2023. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
There are no comments on this title.