Friday, October 2, 2009

Productivity ?

How would you define "Productivity" in a Software Development especially for Agile SCRUM ?

My thoughts, analysis and definitions:
Productivity can be defined as the rate at which the end users enjoy new features. Its like delivering business values continuously at a faster rate which sees higher RoI. Engineering practices should be applied to deliver these business values at higher rate.

A measurable unit of Productivity can be defined by individual Product owner or Scrum master for their respective teams depending upon the needs of the product / project. For example, I would like to define Productivity gain for a sprint as "P" where
P = (V + Q + F) / N

V - velocity gain over previous sprint
Q - no of quality, UI, automation and security related improvements adopted / implemented (eg. TDD, CI, AAT, improved product scores, automation, security, UI benefits etc.) Teams can come up with various scales for their improvements. Lets say having 10 points for improving unit test code coverage every sprint, 10 points for adopting CI and implementing smooth process, 20 points for improved security, 20 points for better UI and so on......
F - no of working features added over previous product or sprints. Again point system can be devised to quantify features added
N - team size excluding Scrum Master, BA and Product Owner

Teams should be challenged often to improve the value of P in every sprint.

I am doing more research on Productivity so will keep on improving this formula and adding more quantifiable units.