27 May, 2008

Factors to be considered for productvity measurement of agile practices

Abstract
The Agile methodology really lacks its ability to collect the productivity metrics. Agile gives utmost priority to satisfy the customer with the help of frequent deliveries of working software. However there are several factors do exist to capture agile metrics. Following article discusses some of those.
Factors to be considered for productivity measurement
Following section list downs the different factors to be considered to measure the productivity of agile practices, viz., SCRUM, Continuous Integration, Workshops and Dual Monitors. Each factor might applicable to one or more agile practices.

1) Customer satisfaction
It is one of the better ways to measure the productivity of the agile processes or related practices. Each iteration/sprint will end-up with tangible output which is going to perceived or evaluated by the client according to his/her business requirements. So in this process no of customer feedbacks (good as well as not so good), his active participation frequency and delivery satisfaction rate (on the scale of 1-5) etc shall be measured.
Applicability: SCRUM, Continuous integration, Workshops

2) Reduced/Manageable risk
The number of risks envisaged and able to mitigate the risks with successful counter measurements per iteration. Also how team as a whole successfully managed the risk with in iteration with out affecting the delivery. It requires disciplined way to capture such instances during iteration. Best candidate would be Scrum Master.
Applicability: SCRUM

3) Improved quality
Quality differs from context to context. From the SCRUM aspect, it is reduced code review defects, increased design/architectural specific brain storming sessions, reduced build rejections from internal QC/ or client, Increased junior team member participants in design workshops, increase in review efficiency, reduce in number of failed attendees for SCRUM stand-up meeting, etc…
Applicability: SCRUM, Workshops, Continuous Integration

4) On time delivery
On time delivery of working software (with duly tested!) of all story points identified for the iteration. If any delay in delivery; then associated delay can be measured in number of person days / or IEH
Applicability: SCRUM

5) Innovation
The number of innovative ideas/best practices adopted to deliver out of box solution with in iteration. It might be good design strategy, improved code quality, increased automation by using good tools under all stages of SDLC cycle etc. Again it is in process matrix collection mechanism, Scrum Master is the best person to judge such initiatives.
Applicability: SCRUM, Workshops, Continuous Integration

6) No of Reusable components to the organization
How many reusable components are contributed to the organization from the project? Here code is fully tested and moved to client’s production environment. Any such code which does not have any customer obligations shall be moved organization’s reusable component repository. It can be measured across the projects over the period of time. This measurement shall be conducted against iteration or specific period of time.
Applicability: SCRUM, Agile process as a whole

7) Increased knowledge sharing activities
How many times from specific SCRUM team member shared his technical competency with others in the form of presentations, trainings, articles etc. Any such instances shall be captured.
Applicability: SCRUM

8) Team engagement
Team engagement during sprint, shall be calculated in the form of Ideal Engineering Hours (IEH). Also overall team engagement in the form of understanding requirement, design, code, review, testing, training, research etc shall be classified.
Applicability: SCRUM (Backlogs)

9) Burn down charts
Burn down chart is early warning system, which gives product owner how the team is performing to achieve user story points for current iteration. At high level; number of high level warnings occurred during sprint / or across the sprint(s) shall be measured.
Applicability: SCRUM

10) Personal Excellence
Capture information such as how many people with in SCRUM team are being certified for various technological tools/frameworks? How many people participated seminars, training programs? How many team members contributed to open source projects or initiatives? Thus increase in company branding etc...
Applicability: SCRUM

11) Agile maturity
Judge the team maturity with help of schedule over run, effort over run (directly related to matured way of conducting task estimation), what kind of task selection from team member during iteration planning, active participation instances in various workshops, retrospective meetings, stick on to realization of sprint goals, adherence to multiple project checklists etc. Any violations or innovative ideas should be captured as part of sprint.
Applicability: SCRUM

12) Compliance with respect agile principles/or number of tailor made approaches which violates agile principle
Capture any agile principle violations in the form of tailor made requirements; might be influenced by external stakeholder. Also identify number of agile principles being practiced on iteration basis. Derive such matrix at the end of each iteration. In my opinion it is the most important activity shall be considered with high priority.
Applicability: SCRUM, Workshops, Continuous Integration

13) Obstacles cleared per iteration
Capture number of blockers removed per iteration.
Applicability: SCRUM

14) Number of De-scoped functions/tasks over into next iteration
All de-scoped story points of the current sprint
Applicability: SCRUM

15) Number of retrospectives per iteration
How often SCRUM teams adheres to “Inspect and Adapt” principle? Identify number of retrospectives being conducted with in sprint. Also capture what are the types of retrospective meetings are being practiced and related feedback from the team.
Applicability: SCRUM

16) Implementation status of retrospective action items
It is number of outstanding retrospective action items from previous sprints.
Applicability: SCRUM

17) Number of functional tests / iteration or user story
It is a process of capturing number of functional tests developed and applied against user story points per iteration.
Applicability: SCRUM, Continuous Integration

18) Unit tests / iteration
Capture number of unit test cases against code developed per sprint.
Applicability: SCRUM, Continuous Integration

19) Number of builds / iteration
Capture number of successful builds / or broken builds per sprint.
Applicability: SCRUM, Continuous Integration

20) Number of functional defects / iteration
It is number of functional defects found by both internal QC team and client.
Applicability: SCRUM, Continuous Integration

21) Lines of code
It is mainly concentrated on development team productivity on lines of code delivered for the specific period. For example; KLOC/Person day. But most of the agile practicing companies discourage this approach as 50 lines of code with just variable declarations can’t be more productive compare to just 20 lines of code which does important business functionality. In my opinion it is most crud way to measure productivity; shall be discarded.
Applicability: SCRUM, Continuous Integration

22) Function Point
It is originally intended to use for project estimation. It revolves under Input, Output (Report) and data. Again as explained with LOC; one can not depend on FP for measurement for the simple reason, a simple CRUD operation will carry more function point where in most complex business scenario which does not have any output will carry less FP. In my opinion each FP should have weightage and determination of weight-age will ask for definitive discussion.
Applicability: SCRUM

23) Velocity
Sustained development pace of the team is determined by Velocity mechanism. Here it depends on number of story points delivered per iteration. Most of the agile practitioners recommend this approach to determine overall team productivity. Here also some fundamental question arises like “if team of 3 delivers 40 story points where in another team of 10 delivers 50 story points, so which sprint team is more productive?”
Applicability: SCRUM

No comments:

One new learning / day - however small it is

Read a blog / or article Watch TED talk  Read a small self-help book (many free eBooks available with less than 100 pages/can be completed i...