TEL: 180-210-69380

为什么角色不是规矩

Jul,19,2023 << Return list


产品开发越来越具有协作性。但是,作为一个工程师,合作是什么意思呢?它开始于跨代码边界的思考,超越我们的角色和责任的限制。以下是我们如何在菲格玛的工程团队中找到自己的协作最佳点,以及帮助定义我们工作的原则和流程。

马库斯奥克利的插图

figma-1w80yjd" style="margin-top: 0px; box-sizing: inherit; cursor: var(--cursorText); color: var(--secondary-color); margin-block: 24px;">我于2016年加入菲格玛公司,当时我们有12名工程师。在加入之前,我承认我怀疑我们是否能够在网络浏览器中构建一个协作的、可执行的工具。现在,这种感觉就像是有一辈子的时间了,但在那个时候,人们重新强调了应用程序和移动设备,并对其感到兴奋,同时也出现了一些引人注目的失败尝试,试图建立与他们的本土同行相媲美的网络体验。在技术和文化变革的推动下,需要进行重大转变才能使菲格玛成为可能。通过引入低级别的浏览器API--比如Webgl和Web程序集--使我们能够重新设想在Web上可能实现的目标。这一代人在谷歌文档这样的工具上长大,后来又被过去几年的混合和远程工作加速,这促使我们充分认识到同步协作的价值。

figma-1w80yjd" style="box-sizing: inherit; cursor: var(--cursorText); color: var(--secondary-color); margin-block: 24px;">如今,人们的期望是,我们的工具在默认情况下越来越多地是多人的。不仅仅是我们对工具的期望发生了变化,而是我们如何相互联系,以及我们对彼此的期望。从早期的承包商编写代码到领导团队,我一直在思考这对工程师来说意味着什么。我们的角色如何演变 随着产品开发越来越非线性

figma.net.cn/core/extend/ueditor/themes/default/images/img-cracked.png" srcset="https://cdn.sanity.io/images/599r6htc/localized/8c3216725ea0718975028548dfe8162ade16194b-2784x1566.jpg?q=75&fit=crop&crop=focalpoint&auto=format&dpr=0.5 1392w,https://cdn.sanity.io/images/599r6htc/localized/8c3216725ea0718975028548dfe8162ade16194b-2784x1566.jpg?q=75&fit=crop&crop=focalpoint&auto=format&dpr=0.75 2088w,https://cdn.sanity.io/images/599r6htc/localized/8c3216725ea0718975028548dfe8162ade16194b-2784x1566.jpg?q=75&fit=crop&crop=focalpoint&auto=format 2784w,https://cdn.sanity.io/images/599r6htc/localized/8c3216725ea0718975028548dfe8162ade16194b-2784x1566.jpg?q=75&fit=crop&crop=focalpoint&auto=format&dpr=1.5 4176w,https://cdn.sanity.io/images/599r6htc/localized/8c3216725ea0718975028548dfe8162ade16194b-2784x1566.jpg?q=75&fit=crop&crop=focalpoint&auto=format&dpr=2 5568w" loading="lazy" alt="一个拥抱混乱的人,就像拥抱一条笨拙的弯弯曲曲的线条" style="box-sizing: inherit; border-style: none; cursor: var(--cursorPointer); display: block; object-fit: cover; aspect-ratio: 21 / 9; width: 298px;" data-catch-result="fail"/>

figma-19jvqfh" style="box-sizing: inherit; cursor: var(--cursorPointer); margin: 12px 0px 4px; font-size: 16px; font-variation-settings: "wght" 600, "wdth" 98; line-height: 1.7; letter-spacing: 0px;">



?作为一个工程师,合作应该是什么样的呢?总是好事吗?



figma-ti75j2" style="box-sizing: inherit; margin: 0px;">
figma-e4r5nb" style="margin-bottom: 40px; box-sizing: inherit; font-size: min(3.8889vw, 56px); font-variation-settings: "wght" 750, "wdth" 74; font-feature-settings: "ss01"; letter-spacing: 0.01em; line-height: 1.12; font-family: reform;">figma-mayfla" style="box-sizing: inherit; position: absolute; height: 1px; width: 1px; clip: rect(0px, 0px, 0px, 0px); clip-path: inset(50%); overflow: hidden;">我发现,在利用他人的智慧和在没有明确方向的情况下绕圈子之间,有一条很好的界线。

figma-1mr4x4q" style="box-sizing: inherit; margin-left: -0.46em; opacity: 1;"> figma-0" style="box-sizing: inherit; opacity: 1;">我已经 figma-0" style="box-sizing: inherit; opacity: 1;">成立 figma-0" style="box-sizing: inherit; opacity: 1;">那个 figma-0" style="box-sizing: inherit; opacity: 1;">有一种 figma-0" style="box-sizing: inherit; opacity: 1;">A figma-0" style="box-sizing: inherit; opacity: 1;">优美的 figma-0" style="box-sizing: inherit; opacity: 1;"> figma-0" style="box-sizing: inherit; opacity: 1;">在…之间 figma-0" style="box-sizing: inherit; opacity: 1;">利用 figma-0" style="box-sizing: inherit; opacity: 1;"> figma-0" style="box-sizing: inherit; opacity: 1;">智慧 figma-0" style="box-sizing: inherit; opacity: 1;">属于…的 figma-0" style="box-sizing: inherit; opacity: 1;">其他人 figma-0" style="box-sizing: inherit; opacity: 1;"> figma-0" style="box-sizing: inherit; opacity: 1;">旋转的 figma-0" style="box-sizing: inherit; opacity: 1;">在…中 figma-0" style="box-sizing: inherit; opacity: 1;">圆周 figma-0" style="box-sizing: inherit; opacity: 1;">没有 figma-0" style="box-sizing: inherit; opacity: 1;">A figma-0" style="box-sizing: inherit; opacity: 1;">清楚的 figma-0" style="box-sizing: inherit; opacity: 1;">方向 figma-0" style="box-sizing: inherit; opacity: 1;">属于…的 figma-0" style="box-sizing: inherit; opacity: 1;">你的 figma-0" style="box-sizing: inherit; opacity: 1;">我承认。 figma-0" style="box-sizing: inherit; opacity: 1;">”



figma-1w80yjd" style="box-sizing: inherit; cursor: var(--cursorText); color: var(--secondary-color); margin-block: 24px;">在极端情况下很容易锚定。如果密切的合作能带来更强的结果,为什么我们不希望得到反馈和重复 一直 ?总的来说,我发现在利用他人的智慧和在没有明确方向的情况下旋转之间有一条很好的界线。在实践中,有时候我们需要更加独立地工作,有时候我们应该不顾一切地把别人带进来。我从经验中了解到,差异和融合之间的理想平衡对每个人都是不同的--基于你的文化、你正在建设的产品以及你正在优化的目标。当你找到平衡,我想分享 我们是如何看待我们自己的协作最佳点的 ,包括工程和产品开发。

figma.net.cn/core/extend/ueditor/themes/default/images/img-cracked.png" srcset="https://cdn.sanity.io/images/599r6htc/localized/d6ef6daa6ff56108f84a57cf083a147deb69cb2b-1056x1320.png?q=75&fit=max&auto=format&dpr=0.5 528w,https://cdn.sanity.io/images/599r6htc/localized/d6ef6daa6ff56108f84a57cf083a147deb69cb2b-1056x1320.png?q=75&fit=max&auto=format&dpr=0.75 792w,https://cdn.sanity.io/images/599r6htc/localized/d6ef6daa6ff56108f84a57cf083a147deb69cb2b-1056x1320.png?q=75&fit=max&auto=format&dpr=2 1056w" loading="lazy" alt="" style="box-sizing: inherit; border-style: none; display: block; position: relative;" data-catch-result="fail"/>

figma-1w80yjd" style="box-sizing: inherit; cursor: var(--cursorText); color: var(--secondary-color); margin-block: 24px;">产品开发不再是从设计开始到工程结束的。然而,在许多OGS中,产品经理和设计师负责制定路线图,而工程师则执行该路线图。这是我在产品团队中的对手山下玉树,我想做对的事情。我们非常紧密地合作着,我们的组织的其他部分也都有瀑布。工程师不仅仅定义 如何 为了制造东西,他们也发现 什么的 与他们的跨职能伙伴密切合作,听取顾客的反馈意见。

figma-1w80yjd" style="box-sizing: inherit; cursor: var(--cursorText); color: var(--secondary-color); margin-block: 24px;">在启动新的工作流时,我们总是鼓励团队尽早从一系列的角度出发,允许概念文件根据其他产品开发团队的投入发展。工程师 希望能写下早期的想法 ,目标是从他们的合作者那里得到反馈 因为他们正在努力 不会在感觉"抛光"的时候。"实际上,每个项目都有某种形式的文档来反映这种早期的想法;当团队在自己的工作中快速地跑来跑去的时候,挑战是从他们那里得到快速的反馈。

figma-1w80yjd" style="box-sizing: inherit; cursor: var(--cursorText); color: var(--secondary-color); margin-block: 24px;">这就是为什么我们在我们的设计和工程团队中经常使用工程"克利特":以确保总是有一个专门的时间和地点来获取其他团队的反馈。工程学的研究发挥了非常特殊的作用。这是一个早期和经常征求反馈的地方。这是一个获得技术设计专家支持的论坛。是的 不 一个审批程序。在英语会议上没有任何决定或解决办法,这是有计划的。目标是帮助提升设计到一个不需要批准的阶段。我们用的 无花果 举办这些会议,使每个人都能实时参与--他们非常有趣!

figma.net.cn/core/extend/ueditor/themes/default/images/img-cracked.png" srcset="https://cdn.sanity.io/images/599r6htc/localized/ae1c410c4aae6881124858b1ce46ed6623a80f61-1706x960.png?q=75&fit=max&auto=format&dpr=0.5 853w,https://cdn.sanity.io/images/599r6htc/localized/ae1c410c4aae6881124858b1ce46ed6623a80f61-1706x960.png?q=75&fit=max&auto=format&dpr=0.75 1280w,https://cdn.sanity.io/images/599r6htc/localized/ae1c410c4aae6881124858b1ce46ed6623a80f61-1706x960.png?q=75&fit=max&auto=format&dpr=2 1706w" loading="lazy" alt="无花果的流程图" style="box-sizing: inherit; border-style: none; display: block; position: relative;" data-catch-result="fail"/>

工程测试不是一个审批过程,而是一个很早而且经常从其他团队获得反馈的时间。我们鼓励参与者接受WIP的工作,并有效地指出问题,而不急于做出决定。 这个 是我们在菲格玛使用的模板。

figma-1w80yjd" style="box-sizing: inherit; cursor: var(--cursorText); color: var(--secondary-color); margin-block: 24px;">但是如果有 太 很多投入,还是相互冲突的反馈?我见过一些项目在没有生成性和探索性的正确组合的情况下就会脱轨,同时也会把事情向前推进。当遇到困难的权衡和很多不确定性时,尤其困难,比如定义你的第一个定价模型;太多的竞争观点和新的想法很容易被转换成被卡住的问题。

figma-1w80yjd" style="box-sizing: inherit; cursor: var(--cursorText); color: var(--secondary-color); margin-block: 24px;">这就是为什么我们把项目分解为里程碑。这听起来可能很简单,但明确界定和传达里程碑有助于我们管理与其他利益相关者的期望,并提醒我们,是时候为了进步和势头而聚合了。动力是非常重要的。当我们有了动力,我们就会觉得我们总是离目标只有几步之遥。当我们失去动力时,我们开始旋转,并质疑我们在做什么。

figma.net.cn/core/extend/ueditor/themes/default/images/img-cracked.png" srcset="https://cdn.sanity.io/images/599r6htc/localized/2b85c891186c33d3809e9d3f03dbcbde8a47d8e0-1056x1320.png?q=75&fit=max&auto=format&dpr=0.5 528w,https://cdn.sanity.io/images/599r6htc/localized/2b85c891186c33d3809e9d3f03dbcbde8a47d8e0-1056x1320.png?q=75&fit=max&auto=format&dpr=0.75 792w,https://cdn.sanity.io/images/599r6htc/localized/2b85c891186c33d3809e9d3f03dbcbde8a47d8e0-1056x1320.png?q=75&fit=max&auto=format&dpr=2 1056w" loading="lazy" alt="" style="box-sizing: inherit; border-style: none; display: block; position: relative;" data-catch-result="fail"/>

figma-1w80yjd" style="box-sizing: inherit; cursor: var(--cursorText); color: var(--secondary-color); margin-block: 24px;">在菲格玛,里程碑不仅能帮助我们在团队中聚合,而且还能让我们识别什么时候团队之间的事情没有跟踪计划。通过及早沟通,我们可以互相提供专业知识或资源,并重建势头。现在正是 更多的 输入是有用的。有时候,如果我看到一个项目在拖延,我会投入。当我仅仅因为我的头衔而深入到特定的领域时,人们仍然会感到惊讶,但重要的是,我们要互相帮助,让对方摆脱障碍,而且我们中的任何一个人都不能离那些让我们保持基础的细节太远。

figma-1w80yjd" style="box-sizing: inherit; cursor: var(--cursorText); color: var(--secondary-color); margin-block: 24px;">在基础层面上,我喜欢把我们在菲格玛的工作看作是一个依赖树。树叶可以很快地变化,对树的其他部分来说风险很小,但是树根必须是坚固的。当您在根级别上定义一个项目时,考虑因素与叶级别上的某些东西大不相同。如果你正在建立一个数据库,你肯定不希望独立运行,"快速移动,打破一切"--当你在较低级别的系统中工作时,你必须更加深思熟虑地获得正确的输入,而不是在高层次的技术上。如果您正在研究一个功能,它可以改变接口,但不影响底层数据模型,那么更独立地进行实验的风险就会降低--但是您仍然不应该"破坏"用户。我的大部分职责是将叶节点与根节点分开,为团队澄清它们可以快速前进的方式,以及需要更有原则性的方法,并从关键的利益相关者那里得到反馈。

figma-1w80yjd" style="box-sizing: inherit; cursor: var(--cursorText); color: var(--secondary-color); margin-block: 24px;">产品变化通常也是根节点。例如,当我们考虑一种新的设计原语,比如自动布局时,我们必须确保我们对我们公开的新属性充满信心,因为在事实上更改它们可能会破坏现有的工作流和设计。我们许多最重要的启动和技术上的成就要求我们沿着整个分支,从一个又一个分支,从一个框架,语言,或抽象的边界思考。


figma-ti75j2" style="box-sizing: inherit; margin: 0px;">
figma-e4r5nb" style="margin-bottom: 40px; box-sizing: inherit; font-size: min(3.8889vw, 56px); font-variation-settings: "wght" 750, "wdth" 74; font-feature-settings: "ss01"; letter-spacing: 0.01em; line-height: 1.12; font-family: reform;">figma-mayfla" style="box-sizing: inherit; position: absolute; height: 1px; width: 1px; clip: rect(0px, 0px, 0px, 0px); clip-path: inset(50%); overflow: hidden;">我们许多最重要的启动和技术上的成就要求我们沿着整个分支,从一个又一个分支,从一个框架,语言,或抽象的边界思考。

figma-1mr4x4q" style="box-sizing: inherit; margin-left: -0.46em; opacity: 1;"> figma-0" style="box-sizing: inherit; opacity: 1;">许多的 figma-0" style="box-sizing: inherit; opacity: 1;">属于…的 figma-0" style="box-sizing: inherit; opacity: 1;">我们的 figma-0" style="box-sizing: inherit; opacity: 1;">多数的 figma-0" style="box-sizing: inherit; opacity: 1;">重要的 figma-0" style="box-sizing: inherit; opacity: 1;">发射 figma-0" style="box-sizing: inherit; opacity: 1;"> figma-0" style="box-sizing: inherit; opacity: 1;">技术的 figma-0" style="box-sizing: inherit; opacity: 1;">功绩 figma-0" style="box-sizing: inherit; opacity: 1;">必需的 figma-0" style="box-sizing: inherit; opacity: 1;">我们 figma-0" style="box-sizing: inherit; opacity: 1;"> figma-0" style="box-sizing: inherit; opacity: 1;">认为 figma-0" style="box-sizing: inherit; opacity: 1;">沿着 figma-0" style="box-sizing: inherit; opacity: 1;">全部的 figma-0" style="box-sizing: inherit; opacity: 1;">分支机构, figma-0" style="box-sizing: inherit; opacity: 1;">来自 figma-0" style="box-sizing: inherit; opacity: 1;"> figma-0" style="box-sizing: inherit; opacity: 1;"> figma-0" style="box-sizing: inherit; opacity: 1;">根, figma-0" style="box-sizing: inherit; opacity: 1;">在远处 figma-0" style="box-sizing: inherit; opacity: 1;">A figma-0" style="box-sizing: inherit; opacity: 1;">单一的 figma-0" style="box-sizing: inherit; opacity: 1;">框架, figma-0" style="box-sizing: inherit; opacity: 1;">语言, figma-0" style="box-sizing: inherit; opacity: 1;"> figma-0" style="box-sizing: inherit; opacity: 1;">抽象 figma-0" style="box-sizing: inherit; opacity: 1;">边界。 figma-0" style="box-sizing: inherit; opacity: 1;">”



figma-1w80yjd" style="box-sizing: inherit; cursor: var(--cursorText); color: var(--secondary-color); margin-block: 24px;">对于那些习惯于专业化的工程师来说,这可能是一种改变,就像那些在前端有经验的工程师一样,他们对系统编程或基础设施工作都是新手。问题是:我们都低估了快速学习的能力。这就是为什么我们有意为团队配备工作人员,这样工程师就能同时在树叶和树根上工作,提供一种能够上下工作的结构。团结起来,我们可以依靠对方的专业知识,面对挑战,而不是围着挑战工作。最有效的制造商不仅仅是在某一领域具有高度的专业性;他们是那些邀请挑战并有信心快速学习新系统的人。他们在任何地方追逐问题,不要让他们的角色束缚他们。正是这种工作方式使我们有勇气首先将产品设计带到网络上。


figma-ti75j2" style="box-sizing: inherit; margin: 0px;">
figma-e4r5nb" style="margin-bottom: 40px; box-sizing: inherit; font-size: min(3.8889vw, 56px); font-variation-settings: "wght" 750, "wdth" 74; font-feature-settings: "ss01"; letter-spacing: 0.01em; line-height: 1.12; font-family: reform;">figma-mayfla" style="box-sizing: inherit; position: absolute; height: 1px; width: 1px; clip: rect(0px, 0px, 0px, 0px); clip-path: inset(50%); overflow: hidden;">最有效的制造商不仅仅是在某一领域具有高度的专业性;他们是那些邀请挑战并有信心快速学习新系统的人。

figma-1mr4x4q" style="box-sizing: inherit; margin-left: -0.46em; opacity: 1;"> figma-0" style="box-sizing: inherit; opacity: 1;"> figma-0" style="box-sizing: inherit; opacity: 1;">多数的 figma-0" style="box-sizing: inherit; opacity: 1;">有效的 figma-0" style="box-sizing: inherit; opacity: 1;">制造者 figma-0" style="box-sizing: inherit; opacity: 1;">是不是 figma-0" style="box-sizing: inherit; opacity: 1;">正当的 figma-0" style="box-sizing: inherit; opacity: 1;">深刻地 figma-0" style="box-sizing: inherit; opacity: 1;">专门的 figma-0" style="box-sizing: inherit; opacity: 1;">在…中 figma-0" style="box-sizing: inherit; opacity: 1;">一个的 figma-0" style="box-sizing: inherit; opacity: 1;">面积; figma-0" style="box-sizing: inherit; opacity: 1;">他们 figma-0" style="box-sizing: inherit; opacity: 1;"> figma-0" style="box-sizing: inherit; opacity: 1;"> figma-0" style="box-sizing: inherit; opacity: 1;">在…上 figma-0" style="box-sizing: inherit; opacity: 1;"> figma-0" style="box-sizing: inherit; opacity: 1;">邀请 figma-0" style="box-sizing: inherit; opacity: 1;">A figma-0" style="box-sizing: inherit; opacity: 1;">挑战 figma-0" style="box-sizing: inherit; opacity: 1;"> figma-0" style="box-sizing: inherit; opacity: 1;">拥有 figma-0" style="box-sizing: inherit; opacity: 1;"> figma-0" style="box-sizing: inherit; opacity: 1;">自信 figma-0" style="box-sizing: inherit; opacity: 1;"> figma-0" style="box-sizing: inherit; opacity: 1;">迅速地 figma-0" style="box-sizing: inherit; opacity: 1;">学习 figma-0" style="box-sizing: inherit; opacity: 1;">新的 figma-0" style="box-sizing: inherit; opacity: 1;">系统。 figma-0" style="box-sizing: inherit; opacity: 1;">”



figma-1w80yjd" style="box-sizing: inherit; cursor: var(--cursorText); color: var(--secondary-color); margin-block: 24px;">我在不同的高增长公司看到了足够多的不同的原则、框架和流程,我知道没有人会"正确"地做事。实际上,最成功的公司往往会成功 恶意地 一些决定。当我们在一个不断变化的工程和合作环境中共同航行时,我们不能让先前的经验限制我们的团队解决新问题的细微差别的能力。同样,我们应该抵制将自己局限于角色和头衔的冲动。对于一个角色或过程的规范性定义很容易就会有过高的索引,而不是我们在实践中所需要的--从最初的原则出发,从一个低自我的地方出发,超越了以前所尝试过的约束。