首先,从字面上看“敏捷”这两个字。 “敏”:基本词义是指敏捷而通达事理或奋勉,作为形容词时指动作快;思想敏锐,反应快或勤勉 “捷”:基本字义:快、迅速,战胜,战胜所获。 所以,通过字义描述我们不妨用一句话来表达那就是“用快速的应对能力来获取胜利”。相信在IT领域奋斗多年的你在面对这句话是多么的渴望与失望啊。 瀑布模式 提到敏捷,我们就不能不先说说瀑布模式了。凡是做过项目的人对瀑布模式是在熟悉不过了,因为它更传统、运用的更广泛。 传统瀑布模式流程 简单来说,瀑布模式就是由“需求分析”-“UI设计”-“代码编写”-“代码测试”-“交付使用”这五部分所组成的,也符合传统项目管理的“启动-规划-执行-监控-收尾”流程。表面上看上去,是一套很规矩、很好管理的模式,但在实际的软件开发过程中我们却总是在不停地重复种种以下问题: 甲方需求的不明确 由于对结果不满意导致大量的返工 开发周期长并且频繁的DeadLine 项目成员各自为政,缺乏团队意识 开发软件的质量难以把控 以上这些问题,都是让人印象深刻的。追其根本,究竟是什么原因导致的呢?这里就来说说传统的开发方法基于了三个错误的假设: 一.客户知道他们需要什么 二.人员知道如何开发并且实现 三.开发过程不会发生变更 我们总是以预测性为原则,但用户需求却难以预测;以文档驱动开发过程,但这会导致团队成员依赖文档从而推卸责任;以过程控制为核心,会是人员缺乏信任与合作。最终,出现上文提到的种种问题。 敏捷(Agile) 敏捷开发流程 为了解决瀑布模式开发的弊端,敏捷模式逐渐兴起。敏捷模式与瀑布模式的区别在于: 敏捷通过较短周期的开发,来使得软件快速发布到客户手中 通过客户对软件的使用,根据使用反馈来逐步明确需求,完善代码,小步迭代 这是一种立足于经验性与试错性的过程控制,也使得我们明白需求是没办法提前预知的,它需要涌现出来。 对于任何企业与个人来讲,敏捷是以价值驱动作为动力,在项目里何为价值呢? 价值就是我们提供给用户可以使用的软件,而不是我们用来交流的文档。在较短周期内我们要完成“设计-开发-测试”,但这并不意味着就是将瀑布变为“小瀑布”去实现(ps:后续文章将重点讲解),而是一种基于团队合作的模式,以团队作为整体来承诺并且实现目标。