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