Using Data to Tune a Software Team Jonathan Alexander VP Engineering, Vocalocity.

Post on 26-Mar-2015

212 views 0 download

Tags:

Transcript of Using Data to Tune a Software Team Jonathan Alexander VP Engineering, Vocalocity.

Using Data to Tune a Software Team

Jonathan AlexanderVP Engineering, Vocalocity

Speaker Bio: Jonathan Alexander VP Engineering – Vocalocity

Leading US provider of hosted VoIP PBX for small businesses

Cloud based software Java/C++, Linux, HornetQ, Memcached, MongoDB, PostgreSQL

Team of 35 engineers (development and test) all based in Atlanta

Agile methodology, bi-weekly sprints and releases

Project management tools: JIRA, Greenhopper, SVN, Google Docs, MS Exchange

Past experience: vmSight (acquired), Epiphany, Radnet (acquired)

Author of Codermetrics (O’Reilly 2011) and various related articles

Question #1 If you want to improve something, where do you start?

Question #1 If you want to improve something, where do you start?

Answer: Observation

Example:

If we want to find bottlenecks in our software, we test and gather performance statistics

A historical record of observations produces data that we can analyze to improve

Observations from multiple perspectives may help

The process of observation and analysis is nothing to fear

Self-reflection can be painful but useful

Question #2 What is worth observing and paying attention to?

Question #2 What is worth observing and paying attention to?

Answer: We can’t be sure

Example:

Slow application UI could be due to a problem at any layer

Good strategy is to observe and track anything that might be relevant

Partially depends on what our goals are and how we measure success

What Qualities Might You Want to Improve on a Team? Efficiency

Quality

Innovation

What Factors Contribute to Success of a Team? Skill and Experience

Morale

Teamwork and Communication

Focus and Effort

Creativity and Inspiration

Lack of Distraction

What Qualities Might You Want to Improve on a Team? Efficiency

Quality

Innovation

What Factors Contribute to Success of a Team? Skill and Experience

Morale

Teamwork and Communication

Focus and Effort

Creativity and Inspiration

Lack of Distraction

Know How to

Get Data

Not Sure

How toGet Data

Where Do You Get Data about a Software Team?

Obvious Places

Task Management System

Bug Tracking System

Customer Issue Tracking System

Version Control System

Where Do You Get Data about a Software Team?

Obvious Places

Task Management System

Bug Tracking System

Customer Issue Tracking System

Version Control System

Less Obvious Places

Calendar and Email System

Phone System (Call Logs)

Performance Reviews

Social Networks and Forums

Survey System

How Do You Get Data about a Software Team? Pull from active systems (automated or manual)

First-hand observation (self-observation gathered through reports or surveys)

Second-hand observation (gathered through reports or surveys)

Data Gathering and Data Analysis for Software Teams Can lead to new discoveries and understandings

Helps increase focus – the 7% Rule

Seek to Categorize, Not Measure Identify individual and team strengths and weaknesses

Statistics: look at standard deviation (bell curve) or relative rank more than raw numbers

Performance Review Data

Performance Review - Department Analysis

Performance Review - Team Analysis

Self-Rating Survey

Self-Rating Survey - Department Analysis

Self-Rating Survey - Team AnalysisDev Team 1 Dev Team 2 QA Team

The Future – More Tools for Data Gathering & Analysis

Putting Analysis to Work to Tune a Software Team Mentoring

- Align individuals with desired strengths with others who seek to develop

Training

- Consider training and development beyond just technical areas

Shifting

- Possibly re-align teams or roles to achieve better balance

Hiring

- Align and analyze hiring to strengthen team weaknesses

Questions? For more resources visit codermetrics.org