A Complexity Theory Viewpoint on the Software Development Process and Situational Context
The research literature informs us that a software development process should be appropriate to its software development context but there is an absence of explicit guidance on how to achieve the harmonization of a development process with the corresponding situational context. Whilst this notion of harmonization may be intuitively appealing, in this paper we argue that interaction between a software development process and its situational context is an instance of a complex system. In Complexity Theory, complex systems consist of multiple agents that interact in a multitude of diverse ways, with system outcomes being non deterministic. Complex systems are therefore noted to be difficult to control, such as is the case with many software development endeavors. If the interaction of software processes with situational contexts is representative of a complex system, then we should not be surprised that the task of software development has proven so resistant to attempts to produce generalized software processes. We should also seek to ameliorate the software development challenge through the adoption of techniques recommended for use in managing complex systems, not as a replacement for the many software process approaches presently in use, but as complement that can aid the task of process definition and evolution.
2016 IEEE/ACM International Conference on Software and System Processes (ICSSP)