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 [...]
翻译:现实世界的软件应用必须持续演化以保持其相关性。这种演化发生在开发新应用或调整现有应用以满足新需求、进行修正或纳入未来功能的过程中。传统的软件质量管控方法涉及软件质量模型和持续代码检查工具。这些措施专注于直接评估软件本身的质量。然而,开发过程的质量与最终软件产品之间存在强相关性和因果关系。因此,改进开发过程也会间接提升软件产品。为实现这一目标,必须从过往过程中有效学习,这通常通过事后组织学习来实现。尽管对大型人工制品的定性评估很常见,但由应用生命周期管理捕获的较小量化变更却常常被忽视。除了软件度量之外,这些较小的变更可以揭示与项目文化和管理相关的复杂现象。利用这些变更有助于检测和解决此类复杂问题。软件演化此前通过变更的规模来衡量,但由于缺乏对可靠且通用的量化方法的共识,阻碍了其作为可信度量的使用。不同的规模分类无法可靠地描述演化的本质。虽然应用生命周期管理数据丰富,但确定哪些人工制品能对有害的管理实践进行建模仍不确定。诸如仿真建模、离散事件仿真或贝叶斯网络等方法,在利用此类现象的连续时间过程模型方面能力有限。更糟糕的是,此类灰盒或黑盒模型的可访问性和机理洞察力通常非常低。为应对这些挑战,我们建议利用客观的……