Yes, you can measure software developer productivity… but are you sure that’s what you’re measuring or want to measure?
McKinsey wrote an article “Yes, you can measure software developer productivity” (Aug 2023). Gergely Orosz and Kent Beck responded in 2 parts: Part 1 and Part 2. Dan North responded. Here’s my response. Argument: We should use quantitative measurement and not just rely on expert opinion to assess developer performance. The long-held belief by many in tech is that it’s not possible to do it correctly —…
Different levels of disintermediation
Level 0: Multiple intermediaries For example, developers talk to a business analyst who talks to a project manager who talks to a business representative who talks to customers. Level 1: Single intermediary not accountable for outcomes For example, developers talk to a project manager / product manager who manages requests from customers.
Different ways to form social ties between people and groups
Via Organizational Analysis | Coursera Propinquity — We tend to form close relationships with people we frequently encounter. Homophily —We tend to like people who are similar to ourselves. Exchange — “I give you X for Y.” Reciprocity — If someone does something positive for us, we tend to want to do something positive for them in return. Control — Forming a relationship for interpersonal advantage or status.
Strategies to deal with dependencies from Resource Dependence Theory
Resource dependence theory — Wikipedia Buffering strategies Pre-processing to enable routing Stockpiling of inputs — raw materials, products, money Levelling or smoothing: reduce fluctuation of inputs and/or outputs by active stimulation of suppliers OR active demand generation (aka advertising) Forecasting: anticipate changes and adapt to them Adjusting scale: downsizing — focusing efforts Bridging strategies
Key Practice: Continuous Integration / Continuous Delivery
Key practice in effective product development culture. — From long-lived branches to continuous integration Long-lived branches (AVOID) Team members work on features on separate branches for extended periods of time (weeks and up). Once the feature is complete, they will attempt to merge the branch into the mainline. …
Key practice: pairing / whole-team programming
Key practice in effective product development culture. — Pair programming is two programmers working together on the same problem at the same time. NOTE: Although the Agile Alliance includes sharing a single workstation as part of the definition, I don’t consider this required. …
4 reasons to do small improvements
Implementing a small improvement is like deploying a single line of code. “How long would it take your organization to deploy a change that involves just one single line of code?” Mary Poppendieck, Tom Poppendieck, Implementing Lean Software Development: From Concept to Cash The purpose of deploying a change that involves just one single line of code is to use the simplest…
Think Big Work Small applied to change management
I’ve been thinking about Think Big Work Small and change management in terms of coherence and momentum. Think Big to create coherence; Work Small to create momentum. Target operating models are a way to Think Big. Identifying critical challenges to focus improvement is how to Work Small.