GEAR(齿轮)框架是工业初创公司TRACTIAN提出的敏捷开发框架,强调一切以人为中心,客户需求为最高优先级,互动胜于流程的开发文化。原文: The GEAR Framework — Tractian’s Agile Engineering Culture
怎样打造专注于人的卓越性和敏捷流程的良好开发文化?本文将介绍使TRACTIAN成为世界上发展最快的工业创业公司的独特开发框架。
为什么提出GEAR?
Scrum已经过时了: Scrum在20世纪90年代早期由Jeff Sutherland和Ken Schwaber推广开来,是敏捷文化的良好开始。最初被认为是"用一半时间做两倍工作的艺术",今天,应该被重新表述为"做两倍计划和一半可交付成果的艺术"。
Scrum原则试图通过建立对经验过程的控制,并将所有内容限定在相同长度的"sprint"中,从而使开发变得可预测。但与此同时,很快就出现了裂痕,因为并不是每个特性都能被分解成相同长度的子任务。在一些sprint中,开发人员很快就完成了任务,无所事事的等待仪式结束,而在另一些sprint中,时间却不够用。
随着时间推移,Scrum创造了一种以过程为中心的开发文化,忽略了创造力,把客户期望放在了一边,不鼓励/忽视修复随机出现的错误,敏捷文化的最大特色——响应变化而不是遵循计划——被忽视了。
遵循套路可能会让人感觉舒服,但如果涉及到设计,我们认为围绕当前环境进行设计比满足先前的一致性更好。在看了其他方法以后,我们发现最终都会陷入类似的问题,即方法过于关注计划和过程,而忽略了适应性、创造力和敏捷性,从而破坏了敏捷原则。
由于没有找到可用的方法,因此有必要基于我们自己的价值观和做事方式来定义自己的技术。GEAR框架使我们摆脱了痛苦,并完全准备好取代传统框架,帮助我们得到想要的结果。
我们相信什么?
当一天结束以后,你相信所做的一切都是好的,但第二天早上会告诉你真相。
这听起来可能不言而喻,但在现实中,有各种各样的压力可能会导致你交出平庸甚至可疑的工作。我们承诺过这个功能!我们花了很多时间!这并不那么差劲!从用户角度来看,其实没什么问题吧?
开发这个功能的时候,假设在产品发布之后,不能改变产品中的任何内容。这带来了一种感觉,即每个特性都是最终产品中最重要的部分,如果在交付后不能更改,那么显然需要尽最大努力测试每个用例,即使这需要比计划的时间长一点。请注意,并不是说一定要完美,而是说要"打造到最后"。
通过持续改进和解决相关问题来关注客户需求,即使这些需求并没有在文档中描述,这是最高优先级。
人们很容易高估想法的价值,特别是当这些想法来自工程团队的时候。避免为了自己学习而陷入好奇心,而忽略了在特定时刻什么才是对客户有价值的东西。
专注于编码会夸大寻找"正确"方法解决问题的重要性,而不是理解问题的重要性。
在着手解决编码问题之前,必须确定问题是什么,以及是否真的是一个问题。如果让自己专注于如何通过代码解决问题,而不管这是否是编程问题,看不到"为什么",最终什么也得不到。
在被过度设计的浪漫迷住时,不要忽视现实,必须花时间建立对问题领域的理解,必须适应这一事实: 你是问题解决者,而不仅仅是"填充框架"的开发人员。
有必要对正确的事情说"是",而对其他事情说"不",专注的意思是知道应该忽略哪些东西,而不是知道应该关注哪些东西。
真正重要的想法会在脑海里回荡。最后一次忘记那个伟大而鼓舞人心的想法是在什么时候?如果不是那么有趣(也许是客户不时遇到的bug),当客户再次抱怨或新客户也遇到这个问题时,就会重新引起你的注意。如果只听过一次,也许并不是什么真正的问题。如果一直听到这个问题,就会有动力制定解决方案,并在下个周期争取时间解决这个问题。
这种方法分散了优先级和跟踪任务的责任,并使其易于管理。来自不同部门的人可以提出他们认为重要的事情,并使用任何对他们有效的方法来跟踪。
我们不必选择是不断添加繁重的待办事项列表还是把发生过的事给忘掉,每个人都可以在没有待办事项列表的情况下独立跟踪询问、bug、请求或任何自己想做的事。
每次讨论总是新鲜的,任何带来的东西都有其相关背景,和某人及其目的相关,每件事都有目的、及时有效、适合当下。
能够快速适应的人比定计划的人走得更远,应对变化的能力是项目最大的加速器。
要知道哪些特性重要,哪些特性可有可无,并据此制定计划。计划就是猜测,计划越长远,猜测就越糟糕。考虑用周计划代替年度计划。定了三年计划?改为制定3周计划吧。定了10年的计划吗?先定10周计划吧。经常做计划,而不是很少做,计划越近,就越准确。
正如艾森豪威尔所说: 计划没用,但必不可少。
控制容易,信任难。控制导致遵从,自主带来参与。当一些员工不想建立信任时,要认识到这一点,并要求他们离开。
GEAR模型侧重于围绕工作进行组织,而不一定是流程和仪式。当涉及到如何工作时,给组织更大的灵活性。GEAR不要求团队改变工作方式(例如"必须进行scrum"),而是专注于让团队成员彼此保持一致,并朝着单一结果前进。
部门之间定期但不频繁的一对一交流有助于交流下一步想法。例如,技术支持可以告诉产品他们所看到的最重要的问题,然后产品可以作为潜在的项目独立跟踪,也许只是挑了其中最重要的问题来解决。然后,在未来的一对一中,支持人员可以再次为尚未得到关注的事情进行游说。
人们如何互动?
当我们谈论构建优秀的产品时,团队中的有两个明确的功能,远远超出了职位或角色,涉及到每个团队成员看待自己的任务和范围的方式,使某些人更专注于某些类型的任务。在这种类型的组织架构中,根据角色和技能将团队组织成更小的小组或部门,这些小组内部的职位,称为专家(Functional Experts) 和多面手(Product Generalists) 。
当一群人在一起工作时,有必要划分职能,选择一些人来执行,另一些人来管理和组织,这就是我们所说的创造者(Makers)和管理者(Managers)。
值得注意的是,领导者的概念不同于创造者和管理者的概念,创造者可以是领导者,就像管理者可以是领导者一样。从概念上讲,领导者能够通过实际行动或以身作则来指示方向,激励行为和决策。
领导者的角色与所做工作的质量和重要性联系得更紧密,而不是职位本身。所有人都应该以成为领导者为目标,以身作则,在任何时候都朝着正确的方向前进。与人们普遍认为的相反,绝大多数领导者都是创造者,而不是管理者。
平时应该怎么做?
如果有人想在实践中应用GEAR框架,就必须采用一套特定的日常行为,并且清楚知道,什么样的行动和策略可以与该框架成功合作。这些行为可以概括为:
首先打造发布产品的能力: 发布好产品需要纪律和牺牲。在担心对研发流程的改进之前,先建立发布产品的能力。也许你拥有世界上最好的客户洞察,但如果不能把它变成项目并发布,就没有任何意义。首先,让团队有节奏的完成任务。一旦有能力发布产品,就可以开始改进流程。
处理发布后的问题: 所有紧急问题都必须被修复,这需要一定的灵活性,能够停止正在做的事情,转而修复出现的问题。问题有时可能很简单,很难被人注意到,有时可能非常紧急,会给某个系统的用户带来巨大问题。总之,所有需要纠正或调整的东西都是bug fix,无论其复杂程度或影响如何。同时也必须注意"实质性"界限,因为几乎所有发布的东西都会收到一系列反馈,如果是实质性问题,那就实事求是的承认,把新开发暂时搁置,修复现有问题。
速战速决: 所有获得更大收获的特性或变化都是通过低成本的行动、低执行复杂度和高收益来实现的,通常来自于最意想不到的地方。
通过必要功能打造长期价值: 复杂的更改和新功能必须被划分成更小的部分,以提高敏捷性和构建的清晰度。这些变更可能源于创新,或用以弥补潜在的问题,并伴随着某些计划。与速战速决不同,必要特性具有较高的实现复杂度和/或高成本操作,但也具有较高的收益。
内置重构: 主要代码或产品重构总是在构建必要特性或快速修复的过程中完成,必要特性和快速修复永远不应该因为重构本身而停止,如果是新特性的一部分,只需要通过工程视角来寻找未来的用例。
避免边际思维陷阱: 如果你需要一台机器却不买,那么最终会发现已经为它付出了代价,却没有得到它。(亨利·福特)
完成意味着交付: 如果客户手中的产品没有处于最佳状态,那就还没有完成。你是否完成了你所负责的部分并不重要,产品只有在交付给客户后才成为一个整体!
坏的结果是好事,但坏的决定不是: 糟糕的结果是有创造力的公司的自然部分。当我们探索新想法时,总会有一定的失败的可能性。然而,我们需要对产生这些决定的过程持批评态度。如果决定是正确的,但导致了糟糕的结果,那仍然有值得庆祝的东西。我们基于拥有的数据做出了最好的决策,最终会在下一次做出更正确的决定!但是,如果忽视正确的过程,却意外得到了正确的结果,也没有什么好的,那只是运气而已,不能指望取得长期成功。
当突然出现问题或新需求暂停了手头的工作时,确实令人沮丧。三个星期前你怎么不提?是的,尽早获得反馈确实更好,但通常是不可能的,因为问题或需求直到真正遇到才会表现出来。那是我们真正思考的时候,真相会随之喷涌而出。
但无论暂停工作是多么令人沮丧,更令人沮丧的是发布一些不适合所有人的东西。一旦作品发布出来,就很难再把它收回去了。
由于良好构建的功能、产品的流程及细微之处实现的非常准确,因此可以被快速复制/改进,而不需要任何类型的文档或复杂的流程。
我们最深刻的信念是每个人都有兴趣改变世界
幸福就是你不希望结束的每一刻,就是当你意识到生命的神奇并觉得应该永远存在的那一刻,就是你希望感觉成为永恒的那一刻。
我们的意图和努力都集中在这一理念上,不仅仅是一起工作,而是想要你和我们一起享受每一刻,希望它是永恒的。
这是一份持续更新的文档,只有一个框架是不够的,必须提高批判性思维。以下是一些参考书目:
你好,我是俞凡,在Motorola做过研发,现在在Mavenir做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI等技术始终保持着浓厚的兴趣,平时喜欢阅读、思考,相信持续学习、终身成长,欢迎一起交流学习。
微信公众号:DeepNoMind
基业长青 - Jim Collins: https://book.douban.com/subject/34883707
[2]从优秀到卓越 - Jim Collins: https://book.douban.com/subject/34882512
[3]Shape Up - Basecamp: https://basecamp.com/shapeup
[4]Cultura de Excelência - David Cohen: https://www.amazon.com.br/Cultura-excel%C3%AAncia-David-Cohen/dp/8568377122
[5]亚马逊逆向工作法 - Colin Bryar/Bill Carr: https://book.douban.com/subject/35771946
[6]零规则 - Netflix: https://book.douban.com/subject/35278861
[7]Posthog Handbook: https://posthog.com/handbook
[8]Spotify工程文化: https://engineering.atspotify.com/2014/03/spotify-engineering-culture-part-1
[9]How Apple is Organized for Innovation: https://hbr.org/2020/11/how-apple-is-organized-for-innovation
[10]Brex Decision Making: https://www.brex.com/journal/increasing-the-quality-of-our-decisions
[11]Please Don't Learn to Code: https://techcrunch.com/2016/05/10/please-dont-learn-to-code
本文由 mdnice 多平台发布