32
How to Increase Software Developer Productivity Kim Carter

Agile NZ 2014 How to Increase Software Developer Productivity

Embed Size (px)

DESCRIPTION

Selection of activities, processes, tooling (both soft and hard) to increase software developer productivity of both individuals and teams. Based predominantly on this blog post: http://blog.binarymist.net/2013/03/02/how-to-increase-software-developer-productivity/ Along with several others: http://blog.binarymist.net/2014/01/25/essentials-for-creating-and-maintaining-a-high-performance-development-team/ http://blog.binarymist.net/2012/03/24/how-to-optimise-your-testing-effort/ http://martinfowler.com/articles/testing-culture.html http://blog.binarymist.net/2014/04/26/culture-in-the-work-place/

Citation preview

Page 1: Agile NZ 2014 How to Increase Software Developer Productivity

How to IncreaseSoftware Developer Productivity Kim Carter

Page 2: Agile NZ 2014 How to Increase Software Developer Productivity

I think there is a world market for maybe 5 computers

Thomas J Whatson. 1943. Chairman of IBM

Page 3: Agile NZ 2014 How to Increase Software Developer Productivity

Maximising Quality with Least Spent

Improving quality is the best way to increase productivity

Bring the quality focus up front

Page 4: Agile NZ 2014 How to Increase Software Developer Productivity

Maximising Quality with Least Spent

Page 5: Agile NZ 2014 How to Increase Software Developer Productivity

Maximising Quality with Least Spent

Page 6: Agile NZ 2014 How to Increase Software Developer Productivity

Maximising Quality with Least Spent

Page 7: Agile NZ 2014 How to Increase Software Developer Productivity

Maximising Quality with Least Spent

Pair Programming

Page 8: Agile NZ 2014 How to Increase Software Developer Productivity

Maximising Quality with Least Spent

TDD

Page 9: Agile NZ 2014 How to Increase Software Developer Productivity

Maximising Quality with Least Spent

Heartbleed, goto fail

Page 10: Agile NZ 2014 How to Increase Software Developer Productivity

Maximising Quality with Least Spent

Test Condition Workshop

Page 11: Agile NZ 2014 How to Increase Software Developer Productivity

Maximising Quality with Least Spent

Optimising your test effort

Page 12: Agile NZ 2014 How to Increase Software Developer Productivity

Maximising Quality with Least Spent

Code Review

Page 13: Agile NZ 2014 How to Increase Software Developer Productivity

Maximising Quality with Least Spent

Coding Standards, Conventions & Guidelines

Page 14: Agile NZ 2014 How to Increase Software Developer Productivity

Maximising Quality with Least Spent

Design is emergent

Page 15: Agile NZ 2014 How to Increase Software Developer Productivity

Maximising Quality with Least Spent

Page 16: Agile NZ 2014 How to Increase Software Developer Productivity

People

Top Talent

10 - 1 Productivity

Going Rogue

What do the Most Productive Programmers Look like?

Page 17: Agile NZ 2014 How to Increase Software Developer Productivity

Soft Tooling, Processes & Practices, Why it Matters

Distributed Communication

Version Control

Work Item Tracking

Wiki

Build System

Page 18: Agile NZ 2014 How to Increase Software Developer Productivity

Hard Tooling, Why it Matters

Screen Real Estate

Page 19: Agile NZ 2014 How to Increase Software Developer Productivity

Hard Tooling, Why it Matters

Machine Speed

Page 20: Agile NZ 2014 How to Increase Software Developer Productivity

Hard Tooling, Why it Matters

Desk Seating Arrangement

Page 21: Agile NZ 2014 How to Increase Software Developer Productivity

Continuity of Delivery CI

Continuous Deployment

Agile processes promote sustainable development

Measure and reward fast running tests

Measure Cyclomatic Complexity

Static Code Analysis

Executable Specifications

Page 22: Agile NZ 2014 How to Increase Software Developer Productivity

Overcoming Red Tape

Establish the needs

Seek first to understand, then to be understood

Page 23: Agile NZ 2014 How to Increase Software Developer Productivity

Overcoming Red Tape

Relationships

Establishing yourself as an expert

Build Trust with the Influencers

Talk with managers in private

Page 24: Agile NZ 2014 How to Increase Software Developer Productivity

Overcoming Red Tape

Vocal influential Sceptics

People's decisions are based on emotions

Page 25: Agile NZ 2014 How to Increase Software Developer Productivity

Biggest Morale & Productivity killers

Undermined Motivation

Adding people to Late Project

Noisy, Crowded Offices

Email

Meetings

Page 26: Agile NZ 2014 How to Increase Software Developer Productivity

Biggest Morale & Productivity killers

Context Switching

Gerald Weinberg's rule

Page 27: Agile NZ 2014 How to Increase Software Developer Productivity

Top Developer Motivators In Order

Developers love to develop software

The Work it selfVariety of Skills (T)Responsibility, SignificanceTask IdentityConsumer and Pair AssociationAutonomy

Page 28: Agile NZ 2014 How to Increase Software Developer Productivity

Top Developer Motivators In Order

Ownership / Buy-in

Goal Setting

Opportunities for Growth

Personal Life

Technical Leadership

Page 29: Agile NZ 2014 How to Increase Software Developer Productivity

Recommended Reading

Fearless Change by Mary Lynn Manns & Linda Rising

Living Nonviolent Communication by Marshall Rosenberg

Culture In The Workplace

BinaryMist blog

Rapid Development by Steve McConnell

Page 30: Agile NZ 2014 How to Increase Software Developer Productivity
Page 31: Agile NZ 2014 How to Increase Software Developer Productivity
Page 32: Agile NZ 2014 How to Increase Software Developer Productivity

Questions?Kim Carter

Follow me @binarymist