我刚刚完成了计算机科学专业的毕业 现在我了解所有软件开发过程模型,即
• Waterfall Model
• Spiral Model
• Iterative and Incremental Development
• Agile Development [I don't know much about this]
但我想知道新当前公司最常用的是什么?
除此之外是否有新的模型,这是新的,并且都不知道它?
答案 0 :(得分:14)
到目前为止,我所说的最广泛使用的方法是“让它现在正常工作,以后再做好”(后来就在你不再工作或产品死亡之后)。
这是最好的方法吗?绝对不。但你要求使用最广泛的一个。
答案 1 :(得分:7)
敏捷 - SCRUM现在被广泛使用了一天。
答案 2 :(得分:7)
我说大多数公司都有牛仔编码,因为他们的管理层根本不关心开发过程......他们只是想快速完成工作。
当然,更好的公司......以及你想要工作的公司应该有一个流程。我找到了敏捷方法论和这些公司最常使用Scrum,测试驱动开发,持续集成和迭代开发等实践。
我最近接受了从一个拥有牛仔编码的大型组织开始的挑战。我正在引入敏捷方法来改变流程并提高质量。
答案 3 :(得分:2)
也许不是你想听到的,但“敏捷”不是一个过程模型,而是一组态度,例如,甚至可以用于瀑布。软件开发过程模型类似于极限编程或Crystal Clear。
问题在于,虽然创建了一个术语“敏捷”来定义一组属性(参见敏捷宣言),但社区已经重新定义了它以引用方法论。任何方法(例如Scrum或XP)都可以实现为敏捷或非敏捷。
此外,方法/过程旨在解决不同的问题。有些为软件开发人员提供了流程(例如XP强制要求配对编程和TDD),而其他提供了项目管理流程(例如Scrum和XP)。所以比较很困难,有时甚至毫无意义。
在某种程度上,所有都是瀑布,它只取决于焦点水平。
我建议阅读Alister Cockburn。不同规模的团队和不同级别的“关键性”需要不同的解决方案。查看Crystal进程集。 Alister花了将近20年的时间研究世界各地成功而不那么成功的团队。例如,他发现,在一个小团队中,实际流程与诸如频繁交付之类的属性相关性较小。
希望这有帮助。
答案 4 :(得分:1)
主要是瀑布模型。
对于过程控制解决方案,软件人员正在进入迭代过程,以开发像Agile这样的软件。
我更喜欢TDD。
答案 5 :(得分:1)
每个流程模型都不好,也不错。因为它取决于您将要开发的软件。根据我的openion增量过程模型更好。
答案 6 :(得分:0)
我担心毕业的严酷现实之一是“大多数”软件开发都发生在大型企业环境中,大多数企业IT部门仍然使用瀑布(更常见的是至少在英国称为)结构化的开发方法
简而言之就是Design>>构建>>测试>>部署>>保持
这种方法更多地是由于需要管理预算,交付,时间尺度和维护可审计性,而不是开发优秀的软件......但是,这就是我们生活的世界......