Friday, December 11, 2009

Agile delivers better business value in a healthier work environment

It was not until I started doing Agile that I began hearing the word business value more often. Before, I knew about the word, but hardly ever used it. No doubt Agile is closer to business value than other approaches. But.. what is different in Agile regarding business value? Other approaches have the same objective, right? Whether you do a software project doing Agile or doing another approach, the objective is the same. I believe the first difference resides in how this value is delivered. In Agile, it is delivered incrementally and order by value (i.e. the most valuable features are delivered first). In waterfall, all the value is delivered at the end of the project. A second difference is Agile provides 'better' value. The customer is able to shape the features that are delivered and it's able to provide feedback early. This way, the software that is built resembles more what they were looking for.

Lately, I have been reading some blogs related to business value. First there were some that stated that providing business value is the most important reason to adopt Agile (http://www.leadingagile.com/2009/12/adopting-agile-isnt-point.html & http://blog.adsdevshop.com/2009/12/03/if-you-dont-focus-on-business-value-dont-adopt-agile/). In reply, there were some other blogs that stated that delivering business value is not the only reason to implement Agile (http://docondev.blogspot.com/2009/12/business-value-is-not-only-reason-to.html & http://iljapreuss.blogspot.com/2009/12/focus-on-whose-value.html). I didn't understand it very well at the beginning but I think I do (better) now.

I will oversimplify what I understand describing a common scenario where a software company develops software for another company.

The software company gives value to their customers by providing them with a tool that allows them to perform their business better. This brings the question of what is value for the company that develops this software. I believe the most important asset of a software company is their people and the tacit knowledge that resides on them. So a company gains value as its employees learn how to build better software, i.e. as their collective knowledge improves. And what is value for an individual working at this company. I believe it is the same as in the company: knowledge. Individuals provide this value to the company they work on through their work.



So, If I understand correctly, the second set of blogs state that if the Software Company focus only on delivering value, probably it will neglect its most important asset, which are its employees (who will be unhappy and probably leave the company).

Humm... Software companies have the difficult mission of pleasing their customers while at the same time pleasing its employees. They need to provide value and gain value at the same time. Same happens with individuals and the companies they work in. Individuals need to provide value and gain value at the same time. How can all this be accomplished?

First, this ecosystem should work better than I described because the above graph is wrong. It's missing the value that comes from the customer to the company, and from the company to the individuals. It is of great importance for software development companies to have as customers recognized companies and it is of great importance (and the only way to improve) for individuals to work in great development software companies.

So the graph would be more like this:

It is true organizations and individuals play different games, as Alistair says. But in these games, all parties involved need to get some benefit. Otherwise, one of the games would end.

This first reason is not related to Agile, so let's go to the Second: What Michael and Ilja have been saying in their blogs. Agile work environments are healthier and nicer to work in. This alone is a great reason to prefer a company and to adopt Agile. Why is it healthier? There are many reasons: The first that comes to my mind is Collaboration and team work are encouraged. Success depends on the team and not on individuals persons. Also, agilists reckon that you have to have a life besides work. Beck says "40 hours a week". This is a very important message. The morale is higher on Agile teams. Having the software working at all time and having test harnesses allows the team to feel safer. Yet another reason is individuals are empowered.

As a conclusion, I believe it is true that Agile could help improve the way a software company delivers software while at the same time provide a better work environment. I believe the second is a great reason for individuals to choose a company, but is it a valid reason for a company to adopt Agile?. I guess the first thing companies will evaluate is if they can produce better value. However, if Agile helps the company provide a work environment that helps companies keep their best asset, it's sure is a great incentive to adopt it as well.