Upload
melanie-young
View
212
Download
0
Tags:
Embed Size (px)
Citation preview
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