Productivity Flashcards
Because communication is a key part of team productivity, an individual’s productivity is as much determined by
their ability to collaborate and communicate with other developers.
the majority of critical attributes for software engineering skill (productivity included) concerned their
interpersonal skills, their communication skills, and their ability to be resourceful within their organization.
the primary bottleneck in productivity was communication with
teammates, primarily because waiting for replies was slower than just looking something up.
adding people to a team slowly enough to allow them to onboard effectively could reduce defects, but
adding them too fast led to increases in defects.
Another dimension of productivity is
learning.
design barriers
the abstract computational problems that must be solved, independent of the languages and APIs.
selection barriers
involve finding the right abstractions or APIs to achieve the design they have identified.
use and coordination barriers
involve operating and coordinating different parts of a language or API together to achieve novel functionality.
comprehension barriers
involve knowing what can go wrong when using part of a language or API.
information barriers
posed by the limited ability of tools to inspect a program’s behavior at runtime during debugging.
Aside from individual and team factors, productivity is also influenced by
the particular features of a project’s code, how the project is managed, or the environment and organizational culture in which developers work.
- these might actually be the biggest factors in determining developer productivity.
Things that don’t contribute to productivity (waste):
Building the wrong feature or product, mismanaging the backlog, rework, unnecessarily complex solutions, extraneous cognitive load, psychological stress, waiting/multitasking, knowledge loss, and ineffective communication.