Thursday, August 26, 2010

Scrum is based on complex adaptive systems and emergent behavior


In the early days of Scrum we were steeped in complex adaptive systems theory and autonomous intelligent systems. This area of research is emerging in a new form called Ambient Intelligence (AmI) due to the proliferation of intelligent devices on the internet. This proliferation and the applications we use with them caused Wired Magazine to declare "The Web is dead" in September 2010.

Work in this area can help us understand Scrum better and ensure that basic collaboration mechanisms are in place to make Scrum work. The environment must be set up so that people have an incentive to help one another in order to optimize the whole, rather than optimizing their individual niche at the expense of the larger community. Failure to do this will prevent individuals and companies achieving the full benefits of Scrum.

ACM Transactions on Autonomous Adaptive Systems has many articles worth reading to understand the issues in more depth. In particular, the article below reviews much of the literature upon which Scrum is based and proposes a better approach to achieve cooperation among networked systems.

Cooperation through Self-Similar Social Networks
STUART M. ALLEN, GUALTIERO COLOMBO, and ROGER M. WHITAKER
Cardiff University
DOI = 10.1145/1671948.1671952 http://doi.acm.org/10.1145/1671948.1671952

We address the problem of cooperation in decentralized systems, specifically looking at interactions between independent pairs of peers where mutual exchange of resources (e.g., updating or sharing content) is required. In the absence of any enforcement mechanism or protocol, there is no incentive for one party to directly reciprocate during a transaction with another. Consequently, for such decentralized systems to function, protocols for self-organization need to explicitly promote cooperation in a manner where adherence to the protocol is incentivized.

In this article we introduce a new generic model to achieve this. The model is based on peers repeatedly interacting to build up and maintain a dynamic social network of others that they can trust based on similarity of cooperation. This mechanism effectively incentivizes unselfish behavior, where peers with higher levels of cooperation gain higher payoff.We examine the model’s behavior and robustness in detail. This includes the effect of peers self-adapting their cooperation level in response to maximizing their payoff, representing a Nash-equilibrium of the system. The study shows that the formation of a social network based on reflexive cooperation levels can be a highly effective and robust incentive mechanism for autonomous decentralized systems.

Categories and Subject Descriptors: I.2.11 [Artificial Intelligence]: Distributed Artificial Intelligence— Multiagent systems; C.2.1 [Computer-Communication Networks]: Network Architecture and Design—Distributed networks

General Terms: Algorithms
Additional Key Words and Phrases: Cooperation, decentralized systems, self-organization
ACM Reference Format: Allen, S. M., Colombo, G., and Whitaker, R. M. 2010. Cooperation through self-similar social networks. ACM Trans. Autonom. Adapt. Syst. 5, 1, Article 4 (February 2010), 29 pages.

1 comment:

Antonio said...

I found two interesting things I think could improve Scrum.

I've buyed recently the book “The Art of Agile, where the authors talk about vision and risks.

About vision, I remembered a saying: “software is for automation.” Kind of, in a moment you have a situation, in another an automated situation. It's the software proposal.

So I thing that the developed product should have a proposal, useful as a guideline for defining the items in Product Backlog.

About risks, I found something more interesting. Risk, as example of percent, is not a unit. Risk sounds probability, chance, luck to me. So, thinking in a train trip going to the job, i've note that risks refer to two thinks: uncertainty and vulnerabilities.

Vulnerabilities are phisic, they exists, so risks coming of vulnerabilities, or you drop the vulnerability, or you live with the risk of something happen.

Uncertainty is a bit different. It nos exists, it's a concept. And Scrum is a great framework to deal with this, uncertainty came from the flexibility of the project. The uncertainty risks are very predictable, and usually ar mitigated.

So I think, how an evil project manager can make Scrum not work. So I created the Bush-Singh Theroem, or the Scrum to Cascade Paradox:

There is two ways to make an uncertainty a vulnerability:

creating a metric, so how much uncertainty, how much the metric oscilate.
getting a CMMI, ISO 9000, PMBoK, Prince2, etc. certification, so that you will not fill incomplete the project templates, subpoena of losing the cert – hey, this is a big vulnerability!!!

Now serious, I think should have a Vulnerability list.

I hope this shoud be useful. Sorry for the bad english.

Antonio Pazó