Productivity Science is the first principle of Industrial Engineering Principles
IISE conference paper: Principles of Industrial Engineering. 2017 IISE Annual Conference Proceedings; Norcross (2017): 890-895.
https://www.proquest.com/docview/1951119980
https://www.linkedin.com/pulse/principles-lean-industrial-engineering-narayana-rao-kvss/
Productivity Science of Software Development - What affects software productivity and how do we improve it?
Software Development Environment Attributes:
Software System Product Attributes:
Project Staff Attributes:
Software Development Cost Drivers
UNDERSTANDING SOFTWARE PRODUCTIVITY
WALT SCACCHI
Information and Operations Management Department
School of Business Administration, University of Southern California, Los Angeles, CA 90089-1421, USA
(Appears in Advances in Software Engineering and Knowledge Engineering, D. Hurley (ed.), Volume 4, pp. 37-70, (1995). December 1994
https://ics.uci.edu/~wscacchi/Papers/Vintage/Software_Productivity.html
2022
What Improves Developer Productivity at Google?
Lan Cheng et al, Google, United States
https://dl.acm.org/doi/pdf/10.1145/3540250.3558940
Independent Variables Used in the Model
4.3.1 Code Quality & Technical Debt. The first category of potential drivers of productivity are those relating to code quality and technical debt.
In an experiment, Schankin and colleagues found that participants found errors 14% faster when descriptive identifier names were used. Studying small industrial program written in the 1980s, Gill and Kemerer found that code complexity correlates with software maintenance productivity. Based on interviews and surveys with professional software developers, Besker and colleagues found that technical debt correlates negatively with developer productivity.
We measured code quality and technical debt with 5 subjective factors from our survey:
• Code Quality Satisfaction (sat. with project code quality, sat. with dependency code quality)
• Code Technical Debt (project tech debt)
• Dependency Technical Debt (dependency tech debt)
• Technical Debt Hindrance (tech debt hindrance)
4.3.2 Infrastructure Tools & Support. The next category of potential drivers of productivity are issues relating to tools and infrastructure. Prior work showed that using the best tools and practices was the strongest correlate of individual productivity at Google, though not a significant correlate at two other companies. Storey and colleagues also found that Microsoft developers’ processes and tools correlated with individual productivity.
This category had 6 objective and 12 subjective measures:
• Tools, infrastructure and service satisfaction (sat. with infra & tools)
• Tools and infrastructure choice (choices of infra & tools)
• Tools and infrastructure innovativeness (innovation of infra & tools)
• Tools and infrastructure ease (ease of infra & tools)
• Tools and infrastructure frustration (frustration of infra & tools)
• Developer stack change (change of tool stack)
• Internal documentation support (doc. support)
• Internal documentation hindrance (doc. hindrance)
• Build & test cycle hindrance (build & test cycle hindrance)
• Build latency satisfaction (sat. with build latency)
• 50th and 90th percentile of build duration (p50 build time, p90 build time)
• % of long builds per week (% of long builds)
• 50th and 90th percentile of test duration (p50 test time, p90 test time)
• % of long tests per week (% of long tests)
• Learning hindrance (learning hindrance)
• Migration hindrance (migration hindrance)
4.3.3 Team Communication. The next category of drivers of productivity are issues relating to team communication. In a survey of knowledge workers, Hernaus and Mikulić found that social job characteristics (e.g. group cooperation) correlated with contextual job performance. More specifically, in software engineering, Chatzoglou and Macaulay interviewed software developers, finding that most believed that communication among team members was very important to project success. Studying communication networks quantitatively, Kidane and Gloor found that in the Eclipse project, a higher frequency of communication between developer correlated positively with performance and creativity.
To measure team communication in our study, we examined 9 objective measures and 1 subjective measure:
• 50th and 90th percentile of rounds of code review (p50 code review rounds, p90 code review rounds)
• 50th and 90th percentile of total wait time of code review (p50 code review wait time, p90 code review wait time)
• 50th and 90th percentile of code reviewers’ organizational distances from author (p50 review org distance, p90 review org distance)
• 50th and 90th percentile of code reviewers’ physical distances from author (p50 review physical distance, p90 review physical distance)
• Physical distance from direct manager (distance from manager)
• Code review hindrance (slow code review)
4.3.4 Goals and Priorities. Prior research suggests that changing goals and priorities correlate with software engineering outcomes.
Surveying 365 software developers, The Standish Group found that changing requirements was a common stated reason for project failure. Meyer and colleagues found that one of the top 5 most commonly mentioned reasons for a productive workday was having clear goals and requirements.
We measure this category with 1 subjective measure:
• Priority shift (priority shift)
4.3.5 Interruptions. Meyer and colleagues found that two of the top five most commonly mentioned reasons for a productive workday by 379 software developers was having no meetings and few interruptions. Similarly, a prior survey of Google engineers showed that lack of interruptions and efficient meetings correlated with personal productivity, as did use of personal judgment.
We measure this category with 3 objective measures:
• 50th and 90th percentile of total time spent on incoming meetings per week (p50 meeting time, p90 meeting time)
• Total time spent on any meetings per week (total meeting time)
4.3.6 Organizational and Process Factors. Finally, outside of software engineering, organizational and process factors correlate with a variety of work outcomes. For example, according to healthcare industry managers, reorganizations can result in workers’ sense of powerlessness, inadequacy, and burnout. Although not well-studied in software engineering, based on personal experience, DeMarco and Lister [11] and Armour [2] point to bureaucracy and reorganizations as leading to poor software engineering outcomes.
This category had 2 subjective and 3 objective measures:
• Process hindrance (complicated processes)
• Organizational hindrance (team & org change)
• Number of times when engineers’ direct manager changes but colleagues do not change (reorg direct manager change)
• Number of times when both an engineer’s direct manager and colleagues change simultaneously (non-reorg direct manager change)
• Number of different primary teams the engineer has (primary team change)
Metrics’ relationship with self-rated productivity. - Significant Variables
Metric Effect size p-value
Code Quality & Technical Debt
sat. with project code quality 0.105 <0.001
project tech debt 0.078 <0.001
dependency tech debt 0.042 0.012
Infrastructure Tools & Support
sat. with infra & tools 0.113 <0.001
choices of infra & tools 0.020 0.083
innovation of infra & tools 0.106 <0.001
change of tool stack 0.019 0.098
build and test cycle hindrance 0.029 0.064
p90 build time -0.024 0.019
learning hindrance 0.038 0.006
Team Communication
p50 code review rounds 0.007 0.081
p90 code review rounds -0.014 0.058
slow code review 0.051 0.004
Goals & Priorities
priority shift 0.077 <0.001
Interruptions
Organizational Change and Process
complicated processes 0.027 0.067
team and org change 0.032 0.023
reorg direct manager changes -0.002 0.086
primary team change 0.014 0.086
Bibliography
https://thenewstack.io/platform-teams-adopt-these-7-developer-productivity-drivers/
https://link.springer.com/chapter/10.1007/978-1-4842-4221-6_7
https://uweb.engr.arizona.edu/~ece473/readings/9-Improving%20Speed%20and%20PRoductivity.pdf
https://ics.uci.edu/~wscacchi/Presentations/Process/Software-Productivity.ppt
https://www.logilica.com/blog/what-is-the-space-framework-for-developer-productivity
2022
What Improves Developer Productivity at Google?
Code Quality
Lan Cheng
United States
https://dl.acm.org/doi/pdf/10.1145/3540250.3558940
2021
2020
"productivity drivers" software development Google search
No comments:
Post a Comment