220 likes | 235 Views
Learn how to use data to tune and improve the performance of a software team. Discover the key factors that contribute to team success and the qualities that can be improved. Find out where to gather data about a software team and how to analyze it for better insights. Explore the future of data gathering and analysis in the software development field.
E N D
Using Data to Tune a Software Team • Jonathan Alexander • VP 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 Know How to Get Data What Factors Contribute to Success of a Team? • Skill and Experience • Morale • Teamwork and Communication • Focus and Effort • Creativity and Inspiration • Lack of Distraction 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
Self-Rating Survey - Team Analysis Dev Team 1 Dev Team 2 QA Team
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