Rethinking Productivity in Software Engineering.
Saved in:
: | |
---|---|
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.