引子

“今日加一下班把这个需求做了吧,老板催得很急。”–某时某厂某项目经理

灵敏,这个从前作为灵敏速度的代名词,在过去 20 年里逐渐发展成为 IT 界中被程序员们常常挂在嘴边的看似深奥的专业术语。灵敏开发(Agile Development)作为许多开发团队的项目管理结构首选,由于其简单、灵敏,更重要的是它字面上暗示着 “快”。想一想无数码农为了赶进展而无偿加班吧。

灵敏 = 快速交给?

当你的开发团队遭遇项目延期、产品质量下降、士气低下以及客户关系恶化时,你的朋友或许会推荐你运用灵敏开发:“嘿,兄弟。我传闻最近灵敏挺火的,你可以试一下。” 可是,当你在团队中推广灵敏一段时刻后,你很或许会发现它并不好使:产品发布后仍旧大量的bug、无穷无尽的加班、连绵不断的最高优先级需求。在与老板的日常会议中,老板问你:“传闻你们正在用灵敏来提高交给功率,很棒!所以我下周能看到之前给你提的重要功用吗?”

“灵敏便是快速交给”,这是许多灵敏实践者中最大的误区。其实,灵敏并不一定意味着快;相反,它还会引入更多额定作业,然后或许导致更慢的交给功用。对,你没看错。严格意义来说,灵敏会下降交给速度。例如,极限编程(XP,灵敏结构之一)要求为每一个功用编写单元测试,这会引入 1-2 倍的额定代码。

所以,为什么还有人说灵敏是软件开发的项目管理神器呢?它既不能提高开发功率,也不能削减作业量,那它究竟有什么用?这是许多灵敏实践者遭遇最多的灵魂拷问。假如你无法及时作出令人满意的答复,开发团队终究会抛弃灵敏,而回到他们开始习气的作业模式。

什么在阻止项目成功?

作为管理过大型复杂项目的项目经理,你或许会觉得项目失利稀松平常。据 TeamStage 查询,2022 年中,项目失利率高达 70%,超标项目占比 55%,而有 75% 的项目经理对其项目成功没有信心。“胜败乃兵家常事”,话这么说没错,但长时刻的项目失利会导致严峻的资源糟蹋、人才流失,甚至企业破产。

浅谈敏捷:你的团队在正确实践敏捷吗?

假如你考过 PMP 专业项目管理证书或学习过项目管理,你应该对上图比较熟悉。每个项目都由下面 4 个要素(维度)约束:

  • 时刻(Time):时刻节点,作业时长
  • 本钱(Cost):人力资源,项目预算
  • 规模(Scope):功用模块,影响范畴
  • 质量(Quality):缺陷,稳定性,功能

假如一个软件项目需求在 3 月份交给,预算为 $100k,要求支持 1k 用户同时运用,那么它的约束维度就已经固定了。看起来全部按部就班。可是,一旦客户要求添加一个重要的新需求,项目规模就扩展了,而开发团队不得不在其他维度中寻求妥协

假如你是该项目的项目经理,你会如何选择?

  1. 时刻:“这个功用十分重要,要不咱们周末辛苦加班吧。”
  2. 本钱:“假如你做不了,我可以找人来帮你。”
  3. 质量:“说实话我还没测过,但进展催得紧,先上线再说吧。”

这些互联网黑话是不是很熟悉?作为程序员,你或许并不知道项目的全貌。但实际上,最主要的原因是项目约束因子变形的凶猛,然后产生了一系列问题,终究导致项目失利。

灵敏到底是什么?

依据上面的分析,咱们知道,许多项目由于限制要素的改动而导致了 “动作变形”,然后引发一些列问题,终究导致项目失利。传统瀑布流模式会确保时刻维度不变(用炫酷的甘特图来确保),但其他要素形态各异,所以常常出现的症状为:超标(本钱)、残次品(质量)、连绵不断的需求(规模)。

然而,从经验上来看,成功的软件项目都建立在质量至上,也就意味着交给的产品必须是可用的、易用的、有价值的,这正是灵敏结构其中一个核心。灵敏结构要求固定质量、时刻、本钱这 3 个维度,唯留规模这个维度可变。例如,在灵敏结构 Scrum 中,某一个冲刺(Sprint)中的用户故事(User Story)在冲刺开始之前是可以依据状况灵敏改动的,以确保单个冲刺中交给的价值最大;而极限编程中更是答应团队依据状况随时替换复杂度相同的用户故事。同一个灵敏团队通常是固定的质量确保(要求回归测试)、固定开发成员(一般 12 个以内)、固定的交给周期(两周一次的冲刺),不同的是上线交给给用户的功用。这样的成果便是:稳定、高质量、契合客户预期的持续交给,而且灵敏团队仍是不断自我完善的

我不期待这一篇几百字的文章就能让一个对灵敏不了解的 IT 从业者瞬间就能理解灵敏开发带来的优点,而且要推广灵敏到整个开发团队甚至整个组织也不是一朝一夕。但我可以必定的是,正确实践的灵敏可以有效削减组织中恶性加班和低质量交给的问题,这也是大多数 IT 从业者想要处理的问题。

灵敏 = 开车

假如你常常开车(字面意思),稍加注意你应该会简单发现开车用到的基础动作:看路途,踩踏板,转方向盘。依据路况,不断重复这三个简单动作,让你可以去到任何城市中路途的任何目的地。假如不注意路况,或盲目开快车,很或许会导致车毁人亡。

灵敏也是相同,无非便是一个搜集反馈、不断调整、小步快跑的开发流程。这种注重反馈回路的流程可以让整个团队在不断变化的竞赛市场中增强反脆弱性,可以协助团队企业存活下来甚至长时刻繁荣。这是一个注重人道、立异以及自由文明的流程。

不过,灵敏或许并不适合有雄心勃勃的创业者,由于有些创业者开的是一辆外壳酷似超跑的踏板车,他们需求健壮的牛马日夜兼程的踩踏板而让其看起来像超跑,否则就会被死后真实的跑车给挤下山去。要让他们承认自己开的只是一辆踏板车是十分困难的一件工作。而殊不知,只要慢下来甚至停下来,他们才或许有时刻去打造真实的跑车

社区

假如您对笔者的文章感兴趣,可以加笔者微信 tikazyq1 并注明 “码之道”,笔者会将你拉入 “码之道” 交流群。

本篇文章英文版同步发布在 dev.io,技术共享无国界,欢迎大佬们指点。