就在前几天,Jeremy Keith 写道,性能工作的问题不仅仅是优化和修复代码,还要解决 人员问题
我发现性能挑战存在一个连续体。 在连续体的一端,您遇到了技术问题。 这些可以用技术解决方案解决。 在连续体的另一端,您遇到了人为问题。 这些可以通过讨论、达成一致、同理心和对话来解决(通常是令人恐惧或尴尬的)。
我认为,作为开发人员,我们倾向于关注技术问题。 那是我们的安全空间。 但我怀疑通过解决令人不快的社会问题可以获得更大的收益。
几年前我加入一家公司时,这确实让我大吃一惊,我发现有一堆我无法独自完成的性能工作。 我开始尝试教人们了解性能,并定期举行办公时间,并参与需要帮助的项目和团队。 但我意识到所有这些工作都没有帮助。 我在业余时间开发的网站变得更慢了,尽管我付出了最大的努力。
感到沮丧和精疲力尽,有一天我坐在椅子上,意识到我无法独自完成所有这些工作。 问题的根源在于:人们没有动力去关心。 如果性能神奇地提高了百分之万,公司里的任何人都不会注意到。 客户会注意到,但我们可能都不会注意到。 除了我,因为我是个书呆子。
在 Ethan Marcotte 的 最新演讲中, 他描述了设计系统中存在的人员问题
创建模块化组件并不是创建设计系统的首要目标,甚至不是主要益处。 更重要的是,关注流程和人员总是会带来更可持续的系统。
设计系统就像性能一样,都与良好的高质量前端代码有关。 但是,如果组织内部的人员没有动力使用库中的组件或与设计系统团队进行沟通,那么事情很快就会变得一团糟。
也许我会简化一下这个社会问题:代码库很容易更改,但公司内部的激励机制却不容易更改。 然而,正是这些激励机制决定了编写什么样的代码——什么可以接受,什么需要修复,人们如何协同工作。 简而言之,我们不能指望在没有修复组织的情况下修复代码。
最明显的激励措施是金钱和绩效评定,甚至雇佣专门负责此项工作的人员或团队。 提高对性能问题的可见度,并庆祝重大胜利,也是可以做的另一件事,以改变平衡,让大家更加重视这个全新的专业领域。 但是,这些事情确实必须从上而下进行; 而不是从下而上。 至少在我的经验中是这样。
我在这里要表达的是,大型组织中激励机制问题没有单一的解决方案。 这听起来很愚蠢,但为了开发那个网站,最大的障碍是这些激励机制。 如果今天没有人关心性能工作,那么大喊大叫、发脾气对一点帮助都没有。
相信我,我曾经是个混蛋。
这是真的。
问题是:我们能做些什么呢?
我甚至不觉得逻辑在这里起作用。
性能对公司很重要。 但尽管如此,总是有其他优先事项、其他问题,有时还会有纯粹的抵制和忽视。
所以我们能做些什么呢?
与你与之合作的每个人建立个人关系和信任,说服他们? 这几乎不可能,尤其是考虑到我们倾向于关注技术问题。 因为说服人们做任何事都很难。
我经常这么说。
做实际工作很容易……满足沿途所有人的要求才是难点。
首先:我们需要跟踪性能。
使用 Lighthouse 或 webpagetest,分析页面并跟踪指标随时间的变化。
或者更好的是,使用 web vitals 或 RUM 解决方案。
其次:将这些指标与其他指标放在一起。 寻找与业务指标(如跳出率、转化率、会话时长等)的相关性。
如果您可以证明性能问题与业务问题相关,那么将有更多人加入到解决问题的行列中。
实现这种一致性可以让说服人们认识到性能的重要性变得更容易。
嗯,只要把性能与美元挂钩就行了。 有一个关于亚马逊的故事,讲的是毫秒和转换销售的可能性,应该很容易。
我认为你用“真正的问题是:人们没有动力去关心”这句话说出了问题的关键,Robin。 这个问题,即缺乏关心的动力,是大多数“人员问题”的核心。 当然,这个问题在不同的公司和不同的时间有所不同,因为随着时间的推移,人员动态会发生变化。 想一想。 当一家公司雇用员工时,除了希望获得一份“工作”外,它是否会尝试确定候选人希望在这家公司工作的动机? 大多数员工都想做好工作并为最终结果做出贡献,而金钱通常并非他们想要在特定工作中工作的核心动机。 但是我们都是人,我们也会犯错。 除非一个人迫切需要一份工作(尤其是在现在这种情况很常见),否则这种我会称之为专注的方法会很快变得淡化。 如果一个人无法控制自己的工作,并且经常被他们的经理(“老板”)或其他人质疑,就会发生这种情况。 如果个人在工作中拥有股份,这反过来会直接影响他们在公司中的成功,这通常会有所帮助。 这通常意味着做更重要的工作,并因出色工作而获得认可,承担更多责任,甚至如果公司能负担得起的话,还能获得薪酬激励。 这个问题的另一方面是拥有敏感且“关心”的经理,他们了解如何成功地激励为他们工作的人员。 恐惧,比如害怕因业绩不佳而失去工作,或其他一些消极的动机,当然也是一种激励因素,但它不是最好的激励因素。 挖掘一个人想要做得更好的工作是什么,这是一种更好的方法,这也是经理需要掌握的技能,但他们常常没有掌握这种技能。 这是一个很难解决的问题,但值得努力解决。
感谢你写下这些,Rendle,我希望我能用一些东方的智慧话语来贡献一些东西;
在モノづくり(制造)和人づくり(培育人才)之间需要保持平衡,因为两者都需要维护,而一个没有另一个就无法制造。
简而言之,我相信设计系统有两个问题:技术一致性和感知一致性。 你的系统在技术上可能是完美的,但使用它的人却有不同的看法; 他们可能会认为它对他们来说很糟糕,或者认为它剥夺了他们“像往常一样”工作的能力。
相反,你也可以让你的客户完全被你的设计系统所迷惑,认为它非常出色(Stripe 开发人员推文),因为他们看到了“系统”的感知一致性,但在幕后,工程师却完全相信它“一团糟”。
所以我的告别语是:“技术问题很容易解决,但感知问题很难解决”。