如何确定开发软件的软件开发过程,决定遵循哪个开发过程时要考虑的关键因素是什么(例如敏捷、WaterFall、螺旋等)。
发布于 2010-03-12 21:12:39
影响这一决定的因素有很多,包括“技术”因素:
和社交方面的:
请注意,后者至少与前者一样重要,如果不是更重要的话!
技术因素
项目的性质和大小强烈地限制了您发布新版本的频率,这反过来又会影响您的敏捷程度。例如,一些开源项目可以随心所欲地发布,而according to Joel,收缩包装软件不应该每1,5年升级一次。
随着团队规模的增长,沟通往往变得更加正式,团队变得不那么敏捷。此外,项目越关键,流程就越严格和正式。
社会因素
如果你的用户不愿意,或者不能直接与你的团队合作,那么敏捷性就会受到限制。如果管理层固守传统的思维和方法,那么敏捷性也会受到限制。物理上分离的团队也是如此。
底线是:您不需要一劳永逸地选择一个流程。此外,名字和流行的缩略语并不像你的团队每天真正在做的事情那么重要。你可以用敏捷的风格做瀑布或RUP,就像你可以有效地将XP或SCRUM转变成严格的、正式的过程一样。在一个好的项目中,随着情况和团队需求的需要,流程会被不断地审查、微调和改进。从看起来足够好(尽可能简单)的东西开始,然后定期召开回顾会议,收集关于哪些进展顺利,哪些出错,以及哪些可以改进的反馈。
发布于 2010-03-12 21:15:47
有许多方法可供选择,但没有一种明确的方法(尽管它会很好)。在我们的环境中,我们使用敏捷。这对我们来说是有意义的,因为有许多因素:
我还建议你看看你所在行业的其他公司,看看他们是如何处理事情的。
我要推荐的最重要的一件事是,不要纠结于这个过程,只要构建一些很棒的东西,然后让这个过程开始改进即可。虽然我们使用敏捷方法,但它是一种我们自己的混合,对我们有效。
希望这会有帮助,我相信会有比我更好的答案:-)
发布于 2010-03-12 21:13:53
就我个人而言,我会考虑项目的总体规模(预计在几天/几周内开发,而不是几年),复杂性,开发团队的规模(以及在多个地点的共处或分布)……..but最重要的是,看看利益相关者,并考虑他们对项目的期望程度。
所有这些因素都倾向于在粗糙的两极相互吸引。
小而快的项目往往有一个较小的开发团队,较低的仪式要求,并可能适合更“敏捷”的方法。更大的,多年的项目往往有庞大的团队,盛大的仪式,并可能适合更多的瀑布式的方法。记住,没有迭代的瀑布无论如何都不会成功-但这超出了你的问题的范围。
https://stackoverflow.com/questions/2432873
复制相似问题