A Higher Purpose

When agilists talk about the reasons to adopt an Agile approach, whether Scrum, XP, Kanban, or any of several others, we typically focus on benefits to products, customers, and the bottom line. We also talk a lot about the benefits of working at a sustainable pace, working in self-organizing, collaborative teams, and building a culture of change and improvement. Sometimes we talk about creating a work environment that builds and maintains high morale and, to the extent that such a thing exists in the 21st century, bilateral loyalty between individuals and the organization.

These are all important considerations. Most of them contribute directly or indirectly to improving the working lives of everyone in the organization, which is one of the primary reasons that I am such a strong advocate of Agile. But I think there is a higher purpose  Agile fulfills that we, as agilists need to recognize and promote.

It’s neither trendy nor popular to talk about what used to be widely known as the “social contract”* in a capitalist economy. The idea was that there existed a mutual commitment between corporations and society at large. Society made the commitment to support and encourage corporate success by a) supplying the brain power and labor that corporations used to build products, and b) constructing a regulatory environment (in democratic societies at least) that did not unduly constrain the corporations’ ability to innovate and make a profit. The corporate commitment was to enhance society by providing stable employment at a rate of compensation that would allow the entire economy and society at large to thrive. This is Adam Smith’s “invisible hand.” Henry Ford, for all his other glaring faults, understood this concept instinctively. He recognized that stable employment and good pay for his workers was good for business.

Yes, I know this is a huge simplification of the concept and reality of the social contract, but for me this is its essence.

So what does the social contract have to do with Agile? That’s where the higher purpose comes into play. A long time ago, W. Edwards Deming formulated what came to be called the Deming Chain Reaction. Basically, the Deming Chain Reaction states that as a company increases the quality of its products, costs drop and productivity increases due to reduced rework, market share increases, the company stays in business, and – here’s the key – provides more jobs to produce yet more high-quality product in a never-ending cycle.

The Deming Chain Reaction is a manufacturing model, but it works equally well, with a few tweaks, for Agile software development.

DemingAgileChainReaction

The point is that as organizations apply Agile frameworks, practices, and techniques to improve quality, to implement continuous improvement within the organization, the Deming Chain Reaction comes into play. Companies that adopt Agile conscientiously, comprehensively, from end-to-end of the value stream, do far more than simply stay in business – they thrive. And in thriving, they help the communities in which they operate to thrive as well – or at least that’s the Deming Chain Reaction model. Making a profit is simply not the point. Profitability is necessary, but it’s a means to an end, not the end in itself anymore than agility is an end in itself.

Agile offers the path to success for companies large and small. The higher purpose of that success – and by extension of Agile itself – is for organizations to create employment that is challenging, interesting, dignified, fairly compensated, and widespread, and in so doing to reflect back on their communities and society as a whole the values and principles that produced that success in the first place. To my mind, that is the higher purpose of Agile.

*Note that this is an economic social contract, not the political Social Contract of Locke or Rousseau.

All for now….

…_._

Don’t be like Homer Simpson

“In times of trouble, go with what you know.”
–Homer Simpson

Words of wisdom from a notoriously brainless cartoon character seem like an oxymoron — and in fact that is the case. Unfortunately, Homer’s prescription is something I experience over and over again with client organizations. In the midst of a difficult and challenging change, like moving the organization from a sequential development process to Scrum, there is strong temptation to fall back on old habits of mind. Whenever things get uncomfortable, whenever Scrum makes a long-standing problem unbearable, the knee-jerk reaction is to ditch the part of Scrum that “caused” the problem and revert to a previously learned behavior.

One example I have experienced repeatedly is the problems caused by a widely distributed Scrum team, that is, one with some team members in North America while others are in China or India. I recently ran across an issue in which the more experienced North American team members were attempting to work with freshly minted graduates in China who lacked even the slightest shred of domain knowledge. Since the time shift in this case was exactly 12 hours, it was impossible for the team members to work together closely. Not only were there twice-daily hand offs of code between team members in the different geographies, there was also the issue of the Chinese team members lack of experience in the domain.

The response from the domain-expert team members in North America was to clamp down process on their young Chinese peers. Over time, many gates had been constructed to prevent the Chinese team members from doing any damage to the code base. By the time I arrived on the scene, the gates were so restrictive that the Chinese side of the team — and make no mistake, each geography had taken sides — was unable to do any work at all. Even the simplest tasks were impossible to complete without involving the North American side because of the gating requirements.

A better solution, which the organization actually implemented, was to create separate North American and Chinese teams. While this by itself did not solve the bigger issue of domain knowledge being restricted to the North American team, it did allow both teams to work with a degree of independence and to finish the work they committed to each Sprint. The one major adjustment was to have the Chinese team work in one-week Sprints while the North American team worked in two-week Sprints. Shorter Sprints forced the Chinese team to break its work down into very small bites that the North American domain experts could then help with during the short window of overlapping availability each day. By limiting the range of variability — implementing one-week Sprints — the organization was able to move forward with new feature development much more quickly than had been the case with a distributed team and a multiplicity of gates for the Chinese team members’ work to pass through. The organization also unknowingly implemented one of W. Edwards Deming’s credos, that of changing the system to reduce variability. More on that topic in a later post….

All for now….

…-.-