Real-world software applications must constantly evolve to remain relevant. This evolution occurs when developing new applications or adapting existing ones to meet new requirements, make corrections, or incorporate future functionality. Traditional methods of software quality control involve software quality models and continuous code inspection tools. These measures focus on directly assessing the quality of the software. However, there is a strong correlation and causation between the quality of the development process and the resulting software product. Therefore, improving the development process indirectly improves the software product, too. To achieve this, effective learning from past processes is necessary, often embraced through post mortem organizational learning. While qualitative evaluation of large artifacts is common, smaller quantitative changes captured by application lifecycle management are often overlooked. In addition to software metrics, these smaller changes can reveal complex phenomena related to project culture and management. Leveraging these changes can help detect and address such complex issues. Software evolution was previously measured by the size of changes, but the lack of consensus on a reliable and versatile quantification method prevents its use as a dependable metric. Different size classifications fail to reliably describe the nature of evolution. While application lifecycle management data is rich, identifying which artifacts can model detrimental managerial practices remains uncertain. Approaches such as simulation modeling, discrete events simulation, or Bayesian networks have only limited ability to exploit continuous-time process models of such phenomena. Even worse, the accessibility and mechanistic insight into such gray- or black-box models are typically very low. To address these challenges, we suggest leveraging objectively [...]
翻译:现实世界的软件应用必须持续演化以保持其相关性。这种演化发生在开发新应用或调整现有应用以满足新需求、进行修正或集成未来功能时。传统的软件质量控制方法包括软件质量模型和持续代码检查工具。这些措施侧重于直接评估软件质量。然而,开发过程的质量与最终软件产品之间存在强相关性和因果关系。因此,改进开发过程也会间接提升软件产品。为实现这一目标,有必要从过去的过程中进行有效学习,这通常通过事后组织学习来实现。虽然对大型工件的定性评估很常见,但由应用生命周期管理捕获的较小量化变更往往被忽视。除了软件度量之外,这些较小的变更还能揭示与项目文化和管理相关的复杂现象。利用这些变更有助于检测并解决此类复杂问题。软件演化此前通过变更规模来衡量,但由于缺乏可靠且通用的量化方法,其无法作为可信赖的度量标准。不同规模分类未能可靠地描述演化的本质。尽管应用生命周期管理数据丰富,但识别哪些工件能建模有害的管理实践仍不明确。诸如仿真建模、离散事件仿真或贝叶斯网络等方法,在利用此类现象的连续时间过程模型方面能力有限。更糟糕的是,这些灰盒或黑盒模型的可解释性与机理洞察通常极低。为应对这些挑战,我们建议利用客观的[...]