如何确定开发软件的软件开发过程,在决定遵循哪个开发过程时需要考虑的关键因素(例如Agile,WaterFall,Spiral ......)。
答案 0 :(得分:2)
影响这一决定的因素很多,包括“技术”决定:
和社交的:
请注意,后者至少与前者一样多,甚至更重要!
项目的性质和规模严重限制了发布新版本的频率,这反过来又影响了您的敏捷程度。例如。一些开源项目可以根据需要随时发布,而according to Joel,收缩包装软件的升级频率不应超过每1。5年。
随着团队规模的扩大,沟通趋于变得更加正式,团队变得更加敏捷。此外,项目越重要,流程就越严格和正式。
如果您的用户不愿意,或者无法直接与您的团队合作,那么敏捷性就会受到限制。如果管理层坚持传统的思维方法,那么敏捷性就会受到限制。对于身体分离的团队也是如此。
底线是:您无需一劳永逸地选择流程。此外,名称和时尚缩略词并不像你的团队日常所做的那样重要。你可以用敏捷的方式做瀑布或RUP,就像你可以有效地将XP或SCRUM变成一个严格的正式过程。在一个好的项目中,随着情况和团队需求的不断,这个过程会不断进行审查,微调和改进。从一些看起来足够好的东西开始(尽可能简单),然后定期回顾会议,收集有关哪些进展顺利,出现什么问题以及哪些措施可以改进的反馈。
答案 1 :(得分:1)
有许多方法可供选择,但没有一种明确的方法(虽然它会很好)。在我们的环境中,我们使用敏捷。由于许多因素,这对我们来说很有意义:
我还建议您查看行业中的其他公司,了解他们如何处理事情。
我建议的最重要的事情就是不要挂在这个过程上,只需构建一些很棒的东西,然后让流程开始改进。虽然我们使用敏捷方法,但它是我们自己的混合物,对我们有用。
希望有所帮助,我相信会有比我更好的答案: - )
答案 2 :(得分:0)
就个人而言,我会考虑项目的整体规模(预计开发时间/天数与年份相比),复杂性,开发团队规模(以及跨多个地点的共址或分布)...... 但最重要的是,看看利益相关者,并考虑他们对项目的期望程度。
所有这些因素都倾向于在相反的两极中聚集在一起。
小型,快速的项目倾向于拥有较小的开发团队,较低的仪式要求,并且可能适合更“敏捷”的方法。 更大,更多年的项目往往拥有庞大的团队,高仪式,并可能适合更“瀑布式”的方法。请记住,没有迭代的瀑布无论如何都不会成功 - 但这超出了你的问题的范围。