做出来的软件,老是被客户给推翻,发布半年之后,发现竞品早就迭代了十几个版本,这并非是你努力程度不够,而是缺少一套正确的开发方法,敏捷开发就是为解决这些问题才诞生的。
诸多移动互联网公司于2010年至2015年这段时期,仍在运用瀑布流模式。我那会儿身处的三家公司,每逢拿到新项目之际,首先得耗费几周时间去剖析需求文档。然而项目经理与客户交流之后,双方的理解已然出现了偏差,开发人员所获取的乃是二手信息。
那时开发一项功能仿若猜谜,你依据文档编写代码,可客户心中所想却是另外模样,直至项目完成交付,才发觉全然不符,在此种模式下,一个历经半年的大版本发布后,市场已然改变,你的产品尚未上线便已过时了。
敏捷开发的关键施行之举是,将一个规模较大的软件项目划分成好多子项目,每一个子项目被称作“故事”。每一个故事都是一个单独的模块,开发完毕之后能够独自进行测试,并且能够独自运转。与此同时所有的故事又能够合并到一块,构成完备的软件产品。


那比如说去制作一个电商App,我们能够将登录注册这一功能、商品浏览这一功能、购物车这一功能、支付这一功能,分别拆分成单个独立的故事。每一个故事都由专门的小组来负责,其开发周期较为短暂,通常一到两周的时间便能够完成一个。就这样当哪个模块出现问题的时候,能够马上发现并且予以修复,不会对整体进度产生影响。

着手拿到产品原型之后,团队要将一切用户故事排出优先级,高优先级的予以先做,低优先级的往后放置,接着把故事划分成几个批次,每一批对应一回迭代,一回迭代通常涵盖一到三个故事线,开发周期把控在一到四周。

实施具体操作之际,产品经理无需撰写篇幅冗长的需求文档。全部想法皆呈现于原型图之上,再增添务必的备注阐释。一旦开发人员存有疑问,便径直展开面对面的交流,以此规避经由文档传递所引发的信息偏差。如此一来,团队之中的每一个人都明晰所要开展的工作内容,并且理解达成一致。

想切实掌握Scrum敏捷开发,就得从五个会议着手。其一为需求澄清会议,产品经理拿着原型向团队讲明确要达成怎样的样子。其二是计划分析会,开发人员依据用户故事拆解具体任务,并自行估量每个任务所需的时长。
这第三个呢,乃是每日站会,开发人员以及测试人员,每日都会提出两三个问题,且每个人都要讲述自身的工作进度,这个会议时间很短,通常十五分钟就能搞定啰;设立此会议的目的,在于让团队成员彼此知晓项目的状态。这第十四个是所说的评审会,那便是要演示本次迭代所完成的成果。这第五个则是回顾会议,意在总结此次迭代所存在的优点以及缺点,并据此制定改进措施。

有不少公司,一年仅仅会发布三至四个版本,其整个流程是极为缓慢的。这些公司仍在运用传统瀑布模式,并未体会到敏捷所带来的好处。敏捷开发倡导小版本迭代,每一次仅仅做一两个用户故事,开发、测试以及发布这整个流程是简单且快速的。

拿登录功能来讲,从开发直至上线,两周的时间便能够完成。用户能迅速用上,出现问题也可及时反馈。与之相较,半年发布一回大版本,在此期间积累了几百项功能变更,一旦出现问题,排查起来极为困难。小版本发布存在一个益处,即能够依据用户反馈快速调整方向。
并非存在固定标准流程的敏捷开发,难以凭借某一做法判定是否敏捷,不过能够从团队氛围以及项目运作的状态予以评估。普遍而言,判断标准涵盖,迭代版本发布进程顺不顺利、轻不轻松,构建版本以及持续测试是不是常态化的行为。
另外进而要查看团队成员可不可以在面对面之际实现顺畅沟通,在需求变更之时能不能予以快速响应。每一次迭代结束之后,团队能否主动寻觅出问题并加以改进。要是你的团队已然达成这些,即便并非完全依照Scrum框架照搬,也已然行进在敏捷的道路之上了。
你们公司当下的开发流程里头,你认为最使你苦恼的是哪一个环节?欢迎于评论区去分享你的经历,赶紧点赞收藏此文,从而让更多程序员能够告别无效加班。