One of the initial findings from the project is the balancing act between maintaining control over developed software while simultaneously utilizing external resources in developing the software. In other words, while integrations to externally provided resources and systems provide companies multiple benefits and in some cases are more of a necessity than an option, they also lead to reductions in control as the software in question becomes dependent on external resources in its functioning. This reduction of control may not be an issue if everything works as intended and the development of those external resources evolves without surprises or unexpected events. However, in worst case scenarios the reliance on external resources and actors may result in errors that cause the software artefact to malfunction and its developers unable to fix the issues at hand by themselves.
This reduction of control can be to some extent counter-balanced via applying strategies and actions that seek to restore some of the predictability and stability that follows from giving away control. The key issue is that by utilizing external resources, the software companies have limited ability to influence those resources that their own software relies on, already in terms of how they are managed. However, even though this control cannot be fully restored, by carefully choosing the adopted resources and, among other things, resorting to some generally accepted and adopted guidelines and standards can help mitigate the risks following reductions in control over the software and its development.
The common factors for these so-called counter-balancing strategies and practices is that most of them seek to replace the lack of control by looking for it from the more general, system-level of software development. For instance, instead of utilizing practices that are specific to the software development entity alone, one should turn the focus adopting procedures, standards and norms that are being generally accepted by large number of different actors working in software development. On an organizational level, the reduction of control also increases the importance of relying on trusted partners and the role of regulation and commonly agreed practices that increase the predictability of the operating environment of software development. As a result, the factors that are aimed at mitigating this reduction of control can either be technological or organizational in their nature, and as a whole have their basis mechanisms that allow the operating environment to become more transparent and easier to predict on a system-level.
In terms of our project, we are currently working on a paper on that further explains this balancing between reduction of control and utilization of external resources. The paper discusses each of the factors leading to reduction of control, the benefits and challenges linked to it, as well as the strategies and practices that can be applied to counter some of those challenges. Once published, we shall inform about it here and in our other communication channels. We hope that the paper overall will function as a source of lively discussion and debates.