美文网首页
敏捷开发的一点思考,我们到底应该坚持什么?

敏捷开发的一点思考,我们到底应该坚持什么?

作者: rhuanhuan | 来源:发表于2018-11-22 01:10 被阅读11次

引子

敏捷开发总是一个充满话题与争议的东西,加上日常工作中经常会遇到有各种各样的场景。要不要TDD? 要不要Pair? 要不要每张卡上线?要不要团队每个开发都是全栈?要不要每个人都是全功能? 流程是否过重?会议是否过多?日常沟通是否太费时?这个来源于十几年前的开发方法论,是否依然适应于这个一日千里的开发领域?要不要写文档?等等。。。

关于这些争论了无数次的东西,嗓子大是没有用的。于是基于个人浅薄的经验,梳理了以下思考的过程,以及欢迎大家拍砖。

思考逻辑

明确首要目标 --> 确定原则 --> 结合场景 && 提出实践

明确首要目标

首先就是要明确我们最重要的目标:持续不断地及早交付有价值的软件使客户满意。“持续不断的及早交付有价值的软件”,是为了能够及早的推出产品,从而快速的验证想法、快速的试错,进而更快的适应市场的需求,降低错误成本,快速抢占市场;“客户满意”,则强调了软件作为产品,用户体验的重要性。
我们所做的事情,应该都是为了达成这个首要目标而努力。当我们有件事情不确定了的时候,不妨问下自己,是否有利于自己达成首要目标。

确定原则

其次确定原则。原则与实践是两种不同的东西,类似于数学中的公理与定理。原则是大家公认的绝对不可轻易违背的东西,通常描述的会比较大一些,在这里面,就是为了实现上述目标,我们必须得遵守的东西;而实践则是由原则衍生出来的一些具体的操作,是可以由原则推导出来的。
原则比首要目标要更具体,有利于我们在有些讨论中快速达成一致,减少沟通成本。当多条原则互相冲突时候,可以参考我们实际的首要目标;
参考当年敏捷宣言的具体内容提到的东西:
个体和互动 高于 流程和工具
工作的软件 高于 详尽的文档
客户合作 高于 合同谈判
响应变化 高于 遵循计划

以及敏捷十二原则, 太长这里就不列了。个人总结,就是强调:

  • 及早以及持续的交付价值。能快速上线,快速验证,低成本试错……
  • 及时的响应需求变化。市场&社会是个复杂巨系统,变化很快,及时响应保证产品价值最大。并且敏捷这个词,在系统学中,本身就有指代快速响应变化的能力。
  • 重视沟通,流程简洁。团队内外,业务、开发、客户、责任人等。保证大家对于需求的理解是一致的,保证大家能及时获取用户真正的需求
  • 及时反思。三省吾身
  • 追求技术卓越与良好设计。 好的可读的代码,有利于持续的开发与演进
  • 激发个体斗志,提供环境、资源,团队自组织。 团队中人的重要性,大家很嗨皮,自主意愿&斗志强的时候,才能做出最好的产品。

结合场景 && 提出实践

实践是我们项目上具体采取的一些操作,是一些很具体的事务。这些操作的目的是为了完成上面说的首要目标。而原则则给我们提供了一些思考方向,帮助我们快速的从一些维度来思考并达成一致,而在这个过程中,项目的实际背景不可忽视。

因此,在我看来,上面疑问里面的很多实践,之所以会有这么大争议,也是因为他们大都符合大部分的原则,但是又在一些背景里面多少有些冲突。
比如说,要不要TDD? 要不要pair? 这些实践固然很好,它“追求技术卓越与良好设计”,他“促进团队内部沟通”,能帮助我们少写bug。但是很多产品,尤其是一些创业团队而言,在早期MVP阶段,几乎不可能以这种方式去工作,他们需要快速上线快速测试,更愿意使用最简单甚至很潦草的方式去实现,比如江湖传言某滴早期的代码烂,做大以后开始各种重构;团购鼻祖Groupon早期就是基于开源框架Wordexpress搭建了一个相当粗糙的模板;
其他比如要不要团队每个开发都是全栈?这在一个平稳的项目中当然很好,有利于大家的沟通,以及减少对个体的依赖;但是在一个项目初期,本身有很多坑要趟,或者有很多领域的技术难题需要解决,那么过度追求全栈的结果就是多而不精,某一块的技术卓越与良好设计很难实现;尤其是如果那个人对领域本身的偏好也比较强的时候,个体斗志,团队自组织性,都会有影响。
一言蔽之,实践是需要跟实际背景相结合来看的。完全脱离背景谈必须follow什么实践,就跟脱离剂量谈毒性一样,都是耍流氓。

小结

简单的说,敏捷开发发展这么多年,给出了很多非常好的实践,可以解决开发中很多代码、流程、管理上的问题。但是我们在完全follow时候,不妨先看下项目的实际情况,是否真的可以帮助我们“持续不断地及早交付有价值的软件使客户满意”。

相关文章

  • 敏捷开发的一点思考,我们到底应该坚持什么?

    引子 敏捷开发总是一个充满话题与争议的东西,加上日常工作中经常会遇到有各种各样的场景。要不要TDD? 要不要Pai...

  • 如何理解敏捷开发丨日事清产品经理说

    敏捷开发流行了这么多年,到底该怎样理解敏捷?什么是敏捷开发?该如何实践?有哪些风险?敏捷开发是否适用于所有开发团队...

  • 打造Worktile敏捷开发管理工具的思与惑

    从2019年初,我们团队准备开发一款适合研发团队使用的敏捷开发管理工具,那时候我们也在思考,到底什么样的工具才算是...

  • 敏捷开发简介

    敏捷开发十二原则 敏捷是一种指导思想或开发方式,但是它没有明确告诉我们到底采用什么样的流程进行开发,而具体的开发方...

  • 不知道敏捷就奥特了

    “希望敏捷能够达到这一点,我们不再讨论敏捷,不再说‘敏捷软件开发’,我们仅仅说‘软件开发’,当然一定是敏捷的”。这...

  • 我们到底应该坚持什么

    拆掉思维里的墙:大部分的矛盾与冲突,就是因为双方都在坚持自己的形式,而不是结果。打着爱的旗号来伤人,而且还坚持不懈...

  • 我们到底应该坚持什么

    大学毕业三年,有过两段不成功的感情,甚至是奔着结婚去的第二段也草草收场。到底我应该追求什么?第二段结束后,很苦闷,...

  • 浅谈敏捷开发

    章节 什么是敏捷开发(What) 为什么使用敏捷开发 (Why) 如何使用敏捷开发 (How) 采用敏捷开发的产品...

  • 敏捷开发 | 如何在日事清上实践scrum3.0?

    开发团队应该如何敏捷?敏捷开发适合你所在团队的工作吗?你是不是在做假的敏捷开发?敏捷开发软件/工具有哪些推荐? 敏...

  • 传统项目管理模式如何往敏捷开发精益项目转型

    传统项目管理模式如何往敏捷开发精益项目转型,如何做到敏捷开发和CMMI体系融合 1 前期思考 转型目标,为什么要实...

网友评论

      本文标题:敏捷开发的一点思考,我们到底应该坚持什么?

      本文链接:https://www.haomeiwen.com/subject/mdtkqqtx.html