石墨文档技术总监:敏捷思想在产品周期的延伸

论坛 期权论坛     
选择匿名的用户   2021-5-29 22:45   253   0
<div class="blogpost-body" id="cnblogs_post_body">
<div class="markdown article-content">
  <center class="unindent">
   <img alt="微信图片_20190703101045.jpg" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-d33ced7ba656d96789058b2fbde88722" width="750">
  </center>
  <p> </p>
  <p>李子骅--石墨文档技术总监。</p>
  <p>一个产品有需求的提出、评审、确定,以及实际的开发测试和交付这几个阶段。从2001年敏捷被提出开始到现在已经有越来越多的项目在使用敏捷。现在的敏捷已经变成一种常态,这个时候讨论敏捷实践中被大家的忽略点就变得非常有意义。</p>
  <p>今天我们会围绕两个关键的点来讨论:一个是关注非功能需求,另一个是DevOps相关的策略。</p>
  <h4 id="-">关注非功能需求</h4>
  <p> </p>
  <center class="unindent">
   <img alt="image.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-d54a18499d3ad7ad9f03ca3b471e0a98" width="750">
  </center>
  <p> </p>
  <p>这是一个网站的截图,上面有两个文本块,第一个是标题,第二个是答案。</p>
  <p>看到这个图,首先大家会想它是什么东西,其次是为什么会有人问这个问题。</p>
  <p>这是现在最流行的前端开发框架 React 的新一代的核心算法,Fiber的提出有两个背景原因。</p>
  <p>第一个原因 是现在越来越多的产品和网站非常复杂,尤其体现在交互和功能方面。就比如石墨文档可以让很多人同时在线编写 Word 文档,这和之前传统的类似博客和新闻的Web 应用不一样,现在我们会有更复杂的交互,所以复杂交互带来什么呢?越来越多的用户发现虽然网站功能越来越多,但是好像网站也随之变得更卡了。滚动的时候会有一些延迟,打开一个网页会越来越慢。Fiber专门是为了解决这个问题,也就是说当你的网站很复杂的时候它可以让你的网站速度响应更快一些。</p>
  <p>第二个原因是什么呢? 经过长期的发展,React是现在最流行框架之一,全世界用户都在向它提各种需求:我想加这个功能,要那个功能,但是长期发展过程中也积累了很多技术债,也有很多没有完成的重构的东西,所以他们也希望能够通过Fiber的开发可以把这些技术债还上,把它变成更容易维护一些。</p>
  <p>到现在,Fiber开发了满打满算两年时间,它已经推出了。推出之后大家惊喜的发现我的网站好像变快了,我们也可以看到React市场占有率在逐渐升高,迭代频率也在逐渐加快。所以其实Fiber的开发就是一个很明显的非功能需求,大家收到很多需求反馈,但是最终团队还是选择开发这样一个Fiber的工具。</p>
  <p> </p>
  <center class="unindent">
   <img alt="image.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-9af82dc07e184b196d723ff80a81c160" width="750">
  </center>
  <p> </p>
  <p>所以,我们当提到非功能性需求的时候,会有几个常见类别,包括响应的速度、负载能力和测试覆盖。每个团队根据不同的情况会有不同的处理方式,把非功能的需求放到Acceptance Criteria里面,也可以放到Definition of Done里面作为这个用户故事是否完成的标准。</p>
  <p>不同的方式其实各有利弊,如我们在开发石墨文档过程中支持多个人在一篇文档实时编写内容,同时每一个人看到编辑的东西,这是很明确的功能需求。</p>
  <p>怎么去约定它背后的非功能需求呢?大部分情况下应该把它放到我们的验收准则里面,就是说我们可以约定一些通用性能需求。就多个人实时编写这个例子来讲,可能会约定一个人数,比如希望能够十个人都能够去实时编写,然后每个人的保存时间可以控制在一秒钟之内。这样当我们去完成这个用户故事的时候,我们会看验收准则,如果它支持了在一秒钟之内保存,那我们就确定它是完成的,所以这是一个对于事情有没有完成的很清晰的量化标准,不会让人忽略掉非功能的方式。</p>
  <p>但其实也有另一种做法。有些团队会把这种非功能需求当成一个独立的项目,然后放在Backlog里面,这会造成什么问题呢,在时间宽松的情况下没有什么问题,但是当开发遇到一些阻碍的时候会发生什么事呢?就是我们常常会倾向于优先解决客户能看到的东西。因为当我去交付这个项目的时候,客户看到有这个功能觉得还挺不错,你们工作很快,然后你们也很卖力,这些功能对我也很有用处。</p>
  <p>可实际上隐含的非功能性需求非常重要:能够承载多少人、能不能在公司范围内使用我们的产品以及安全性怎么样等等,还有一个
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP