The Cynefin framework enables us to talk about the complexity of knowledge and decision-making contexts in general. These are a few thoughts on applying Cynefin to software development, here in the so-called ‘Chaos’ context.
David Snowden and Mary Boone give the following example of managing chaos:
In January 1993, a gunman murdered seven people in a fast-food restaurant in Palatine, a suburb of Chicago. In his dual roles as an administrative executive and spokesperson for the police department, Deputy Chief Walter Gasior suddenly had to cope with several different situations at once. He had to deal with the grieving families and a frightened community, help direct the operations of an extremely busy police department, and take questions from the media, which inundated the town with reporters and ﬁ lm crews. “There would literally be four people coming at me with logistics and media issues all at once,” he recalls. “And in the midst of all this, we still had a department that had to keep running on a routine basis.”
– D. J.Snowden, M. E. Boone, ‘A Leader’s Framework for Decision Making’, (Harvard Business Review, 2007) –
How could Deputy Chief Walter Gasior be supported? Perhaps, for example, by a press conference training? However, in general it is not very likely that a Deputy Chief of a Chicago suburb has to give important press conferences. So, a training beforehand would very likely never pay-off, and a just-in-time training would be unrealistic in this context.
Nevertheless, other things could prove useful in general as well as in particular. For example, a solid communication infrastructure, a spacious room for general purposes, that can be used for large press conferences in particular, etc.
Software for Managing ‘Chaos’
In terms of software this means that in situations like the above, general purpose software like e-mail, a decent word processor or spreadsheet are more appropriate than e.g., software that most efficiently supports a certain business process. But, how relevant are situations like the above to business software development? Isn’t it mainly about implementing well-structured business processes?
Example: BPM and ACM
For example, business process management (BPM) software consists primarily of elements to describe process activities, branch or join the flow, etc. This is very often sufficient for supporting 90% of the daily work of say, a back-office customer relationship process, where workers deal with customer requests, orders, static data, etc. Beyond these tasks, the remaining 10% of the daily work is more similar to Chief Gasior’s situation, where specific software support would be inefficient. This is where Adaptive Case Management (ACM) comes in. ACM is the complementary approach to BPM, i.e., it is NOT the more and more specific implementation of less and less often occurring processes. In contrast, it provides generic infrastructure for handling the remaining 10%, like communication and self management utilities.
In more general terms, when implementing information systems we go from functionality that is highly efficient to implement (large value, small effort), downwards till we reach a certain barrier of inefficiency. What we can do about the remaining functionality is to provide some general purpose functionality that supports generic user activities, like communication, or self-management. Notice, that this approach is significantly different from trying to implement the remaining specific functionality in a cheaper way.
More on Cynefin here