thoughts on productivity in software development

34
Thoughts on Productivity in Software Development What is productivity and how to measure it Productivity on multiple levels Individual Team Organization Patterns & Anti-patterns Michael Vax CTO, WebInterpret

Upload: michael-vax

Post on 22-Jan-2018

117 views

Category:

Software


3 download

TRANSCRIPT

Thoughts on Productivity in

Software Development

➢What is productivity and how to

measure it

➢Productivity on multiple levels

○ Individual

○ Team

○ Organization

➢Patterns & Anti-patterns

Michael VaxCTO, WebInterpret

What is Productivity

Productivity = outputs/inputs (within a time period, quality considered)

How to Measure Productivity in s/w Development?

Measuring Productivity in Line of Codes

Functional Point Analysis s

https://prasadiapsara.wordpress.com/2013/07/27/function-point-analysis/

Function Points = Unadjusted Function Points * Value Adjustment Factor

What about Velocity?

➢ Velocity is a planning tool rather than a

specific measurement.

➢ Velocity is simply a capacity estimate

for a given team at a given time

➢ An internal measure for a team and

cannot be used as a comparison

between teams

➢ Easy to game if used as productivity

measure with attached incentives

Measuring Productivity through Financial Results

● Very attractive approach on executive level

● Too many factors outside of development

organization control

○ Sales team performance

○ Market conditions

● Focusing on cost savings in particular leads

many managers to cut people and try “to do more

with less” instead of investing in real productivity

improvements.

● And as Martin Fowler points out there is a time

lag, especially in large organizations – it can

sometimes take months or years to see real

financial results from an IT project, or from

productivity improvements.

We’re making (or saving)

more money, so we must

be working better

Can you really measure software productivity?

There are no reliable universal ways to measure

productivity in software development.

However, there are multiple ways to either

improve or kill it

Productivity

Individual Level

In Physical World Productivity is Linear

Management training is focused

on industries with linear

productivity - manufacturing and

construction

Pro

du

cti

vit

y

Productivity in Software is NOT Linear

Knowledge rich industries

are governed by

Complexity Theory and

linear methods are not

useful

We are not equal when it comes to productivityP

rod

uc

tivit

y

➢ Everyone knows who the top performers are.

Point them in the right direction, and keep them happy.

0

➢ Everyone knows who doesn't fit in.

Move them out.

➢ Everyone knows the people who are struggling.

Get them the help that they need to succeed.

Productivity vs. Compensation

Nonlinear relation

● Productivity x times higher

● Compensation 20-30% above

the market

● Productivity - regular

● Compensation - market

● Productivity - negative

● Compensation - market

Productivity vs. Compensation

Antipatterns

- Salary increase limits

- Paying more to new hires

than to your old timers

- Individual bonuses

Engagement and Happiness

Happy people are

more productive

Productivity vs. Seniority

Should you hire junior,

intermediate, or a senior?

Hire a smart one!

● Productivity depends on

experience

● So is the cost

● Best hire does not always mean

Senior

Copyright - Netflix culture

Productivity and

working long hours Short term

Long term

T-Shape Skills and Productivity

Project Switching

Productivity

drops with

project

switch

Copyright Ken Schwaber19

Productivity

Team Level

Make team self-sufficient

Development team should have:

all skills it needs to do its job

access to all development and test

environments it needs

all tools and services that are required

Happy Team is more productive

Feels respected

Proud of its accomplishments

People like working with each other

No brilliant jerks

.

Good Agile Process

Development team should have

right level of authority to

optimize its process and

environment

Copyright - industriallogic

Get Requirements Right

Product management

needs to be Ready-Ready

for development team to

be Done-Done

● Quality of requirements has a huge impact on

productivity

● We can be very efficient in developing a wrong

thing

● Cost of team misinterpreting or not understanding

requirements

● Missed requirements

● Not paying attention to non-functional

requirements

Productivity

Organization Level

Outsourcing

Smart companies

outsource to be able to

do more not to save

money

Outsource to get access to talent and

expertise

Cheapest rates don’t buy productivity

Hidden cost

Timezone penalty

Good Architecture

Software architecture affects productivity

Modular design allows efficient use of

resources

Reuse of software assets for multiple

purposes

Technical Debt kills

Productivity

So does overengineering

Small Batches

You can increase performance

by splitting work into smaller

batches

Copyright © Poppendieck.LLC

Minimise Work in Progress $$$$$

$$$

$$$$

Optimize the Whole

We all have a tendency to Local

Optimization

I optimized

my work

We optimized

our team’s work

We optimized our

department’s work

Idea Product

Cost Accounting

Not working very well for

software

● Cost accounting was created to accurately

manage men and machines used in assembly

lines

● Main goal is to reduce cost

● Assumes that local efficiency leads to global

efficiency

● Cost of labor is treated as a variable cost

● Assembly line workers were easily replaceable.

Theory of Constraints and Throughput Accounting

● TOC considers any business as a system

transforming inputs into outputs.

● The inputs undergo a number of work steps

and are transformed into outputs.

● The outputs are the products/services valued

and paid for by the business's customers.

● In software a unit of work is a backlog feature

Optimize Flow

Average time it takes for average feature to go from start of development to release

Let’s get Productive

Getting in touch: [email protected]

https://www.linkedin.com/in/michaelvax/