As software projects are very diverse, each software development process must be adjusted to the needs of the project and the corresponding development team. Frequently, we find different methods and practices combined in a so-called hybrid development method. Research has shown that these hybrid methods evolve over time and are devised based on experience. However, when devising a hybrid method, the methods and practices used should cover the whole software project with its different phases including, among others, project management, requirements analysis, quality management, risk management, and implementation. In this paper, we analyze which methods and practices are used in which phase of a software project. Based on an initial survey with 27 practitioners, we provide a mapping of methods and practices to different project phases and vice versa. Despite the preliminary nature of our study and the small sample size, we observe three remarkable aspects: (1) there are discrepancies between the intended use of methods and practices according to literature and the real use in practice, (2) practices are used more consistently than methods, and (3) parts of the software lifecycle such as maintenance and evolution are hardly covered by widely distributed methods and practices. Consequently, when devising a development process, it is worth a thought whether all phases of the software lifecycle are addressed or not.
翻译:由于软件项目多种多样,每个软件开发过程都必须根据项目和相应的开发团队的需要进行调整。我们经常发现不同的方法和做法在所谓的混合开发方法中相互结合。研究显示,这些混合方法随着时间的演变而变化,并且是根据经验设计的。然而,在设计混合方法时,所使用的方法和做法应当涵盖整个软件项目的不同阶段,包括项目管理、需求分析、质量管理、风险管理和实施等。在本文件中,我们分析在软件项目哪个阶段使用哪些方法和做法。根据与27名从业人员进行的初步调查,我们为不同的项目阶段和反之亦然提供了方法和做法的分布图。尽管我们的研究具有初步性质,抽样规模较小,但我们观察了三个显著的方面:(1) 根据文献和实际使用情况,方法和做法的预期使用存在差异,(2)做法的使用比方法更加一致,(3)软件生命周期的某些部分,如维护和演进,几乎没有被广泛分布的方法和做法所涵盖。因此,在设计开发过程时,我们有理由思考软件生命周期的所有阶段是否都得到了处理或没有处理。