![预算绩效管理的建议](https://i-blog.csdnimg.cn/blog_migrate/4e996b3c1976a708444b0200e4cb7e63.png)
预算绩效管理的建议
Occasionally I hear some chatter about performance budgets “not working.” And, to be fair, I have seen companies who adopt a budget and then are unable to make meaningful improvements towards that goal. Over time those ineffective budgets get pushed to the sideline where they accumulate dust before being forgotten about altogether.
有时,我会听到一些有关绩效预算“不起作用”的声音。 而且,公平地讲,我见过一些公司采用了预算,但却无法为实现该目标做出有意义的改进。 随着时间的流逝,那些无效的预算被推到了一边,在它们被完全遗忘之前,它们积聚了灰尘。
It’s not really about the performance budget, though. Or rather, it’s not the idea of performance budgets that doesn’t work in those cases—it’s the execution and reinforcement around the budget.
不过,这实际上与性能预算无关。 或更确切地说,不是绩效预算的想法在这种情况下不起作用,而是预算周围的执行和强化。
My definition of a performance budget has evolved over the years, but here’s my current working draft:
这些年来,我对绩效预算的定义一直在发展,但是这是我当前的工作草案:
A performance budget is a clearly defined limit on one or more performance metrics that the team agrees not to exceed, and that is used to guide design and development.
绩效预算是团队同意不超过的一项或多项绩效指标的明确定义的限制,用于指导设计和开发。
It’s a bit lengthy, I know, but I think the specifics are important. If it’s not clearly defined, if the team doesn’t all agree not to exceed the limits, and if it doesn’t get used to guide your work, then it’s a number or goal, but not a budget.
我知道这有点冗长,但是我认为细节很重要。 如果没有明确定义,如果团队没有所有人都同意不超过限制,并且如果它不习惯于指导您的工作,那就是数字或目标,而不是预算。
On the surface performance budgets sure seem pretty simplistic, but in my experience working with a variety of different organizations at different points in their performance journey, establishing a meaningful budget is one of the most critical components in successfully changing the way that company approaches performance on a day-to-day basis.
从表面上看,绩效预算肯定看起来很简单,但是根据我与许多不同组织在绩效旅程中不同点工作的经验,建立有意义的预算是成功改变公司绩效评估方法的最关键组成部分之一。每天
But as anyone who has ever set a budget on their spending will tell you, merely setting up a budget doesn’t accomplish anything. To be effective, a performance budget has to be concrete, meaningful, integrated, and enforced.
但是,正如曾经为支出设定预算的任何人都会告诉您的那样,仅仅制定预算并不能完成任何事情。 为了有效,绩效预算必须是具体的,有意义的,整合的和强制性的。
具体 (Concrete)
Being concrete means that we have to pick a number and get specific about what we’re after.
具体要意味着我们必须选择一个数字并具体说明我们要追求的目标。
Phrases like “fast as possible,” “faster than our competition,” “lightning-quick” are great, but they’re not concrete. They’re too subject to interpretation and leave too much wiggle room.
诸如“尽可能快”,“比我们的竞争对手快”,“闪电般快速”的短语很棒,但并不具体。 他们太容易被解释,留下了太多的回旋余地。
Performance budgets need to be a specific, clearly-defined metric (or metrics, in some cases). For example: “We want our start render time to be less than 3 seconds at the 90th percentile.”
绩效预算需要是一个明确定义的特定指标(或某些情况下的指标)。 例如:“我们希望开始渲染的时间在90%时小于3秒。”
Or: “When tested over a 3G network on a mid-tier Android device, our Time to Interactive should be no larger than 4 seconds.”
或者:“在中型Android设备上通过3G网络进行测试时,我们的互动时间应不超过4秒。”
You can have multiple budgets, but each of them needs to be very clearly defined. Someone who joins the team tomorrow should be able to look at them and know exactly what they mean and how to tell how well they’re stacking up.
您可以有多个预算,但是每个预算都必须非常明确地定义。 明天加入团队的人应该能够看清楚他们的意思,以及如何分辨他们的堆叠情况。
有意义的 (Meaningful)
That metric (or metrics if you choose to have multiple budgets) needs to be meaningful if it’s going to stick. You can opt for a performance budget on your load time, but if it doesn’t accomplish anything for your business and provides no significant change to the user experience, it won’t be long before people simply don’t care about it. We don’t make sites faster for the sake of making them faster, we make them faster because it’s better for the people using our sites and it’s better for the business.
如果要坚持下去,该指标(或多个指标,如果您选择有多个预算)就必须有意义。 您可以在加载时间上选择性能预算,但是如果它不能为您的业务做任何事情,并且对用户体验没有显着变化,那么很快人们就不会在意它了。 我们不会为了使网站速度更快而使网站速度更快,而是使它们速度更快,因为这对于使用我们网站的人来说更好,对企业也更好。
In the best case scenario, you look at your real user data and find a metric that has a clear tie to your business.
在最佳情况下,您需要查看真实的用户数据,并找到与您的业务紧密相关的指标。
First, identify some business critical metrics that you pay attention to. Maybe that’s conversion rate or bounce rate. Whatever it is, you want to look for a performance metric that has a clear connection (tools like SpeedCurve and mPulse should be able to help with this).
首先,确定您要注意的一些关键业务指标。 也许就是转换率或跳出率。 不管是什么,你要寻找的是有一个明确的连接(如工具的性能度量SpeedCurve和mPulse应该能够帮助这个)。
Let’s say bounce rate is critical for your organization, and that you find a clear connection between start render and the bounce rate on your site (it’s a fairly common connection in my experience). It probably makes sense to set a budget on your start render time and work towards that. That way you know that if you make improvements towards your budget, you create a better experience for users and improve your site’s effectiveness as well.
假设跳出率对您的组织至关重要,并且您发现开始渲染和站点上的跳出率之间有明确的联系(根据我的经验,这是相当普遍的联系)。 为开始渲染时间设置预算并为此工作可能是有意义的。 这样一来,您便知道,如果您对预算做出改进,则可以为用户创造更好的体验,同时也可以提高网站的效率。
If you don’t have access to real user data, you do the best with what you’ve got (while hopefully working on getting solid real user data in place). You can look around at what similar companies have found and consider your performance in user-focused terms to come up with potential metrics to prioritize. Then you can do a little benchmarking of your organization and some competitors to find a target that puts you at the top of the list and gives you a competitive advantage.
如果您无权访问真实用户数据,则可以充分利用自己已有的资源(同时希望努力获得可靠的真实用户数据)。 您可以查看类似公司的发现,并以用户为中心考虑您的表现,以提出可能的指标以进行优先排序。 然后,您可以对组织和一些竞争对手进行一些基准测试,以找到一个目标,该目标将您放在列表的顶部,并为您提供竞争优势。
The need for meaningful metrics is also why I always recommend using some sort of timing-based metric (custom or not) as your primary performance budget, rather than a weight or something like a Lighthouse score. Those can be great supporting budgets, but if they’re not connected to a larger goal they’re far less likely to stick for the long-haul.
对有意义的指标的需求也是为什么我总是建议使用某种基于时间的指标(无论是否定做)作为您的主要绩效预算,而不是权重或诸如Lighthouse分数之类的东西。 这些预算可能是不错的辅助预算,但是如果没有实现更大的目标,那么长期坚持下去的可能性就会大大降低。
集成 (Integrated)
Once you have a meaningful budget chosen, it needs to be integrated into your workflow from start to finish.
一旦选择了有意义的预算,就需要从头到尾将其集成到您的工作流程中。
Put it into your acceptance criteria for any new feature or page.
将其放入任何新功能或页面的接受标准。
Display it in your developer environment so that as developers are making changes, they’re getting immediate feedback on how well they’re adhering to the budget.
在您的开发人员环境中显示它,以便开发人员进行更改时,他们可以立即获得有关预算执行情况的反馈。
Translate the metric into a set of quantity-based metrics, which are more tangible for designers and developers alike during their day-to-day work. It’s an approximation, but it’s a critical step. It enables a designer to have some constraints to play with to help them make decisions between different images, fonts, and features.
将度量转换为一组基于数量的度量 ,这对于设计人员和开发人员在日常工作中来说都是更切实的。 这是一个近似值,但这是关键的一步。 它使设计人员可以处理一些约束,以帮助他们在不同的图像,字体和功能之间做出决策。
Display your budget on dashboards throughout the organization so that everyone is continuously reminded of what they are, and how you’re doing.
在整个组织的仪表板上显示您的预算,以便不断提醒每个人自己的状况以及您的工作状况。
The idea is you want to make your budget, and how you stack up to it, as visible as possible to everyone throughout the workflow.
想法是您要制定预算以及如何累积预算,以使整个工作流程中的每个人都尽可能看到预算。
可执行的 (Enforceable)
Once the budget is firmly integrated into your workflow, the next step is to make it enforceable. Even the most dedicated teams are going to make mistakes. We need to put the checks and balances in place to make sure the budget doesn’t get ignored.
将预算牢牢地集成到您的工作流程中之后,下一步就是使其可以执行。 即使是最敬业的团队也会犯错。 我们需要进行制衡,以确保预算不会被忽略。
Most monitoring tools let you establish budgets now and will alert team members via Slack, email or a similar format when that budget is exceeded. That’s a pretty passive way of keeping tabs on the budget, but it can clue you in quickly when something goes wrong.
大多数监控工具可让您立即建立预算,并在超出预算时通过Slack,电子邮件或类似格式提醒团队成员。 这是控制预算的一种非常被动的方式,但是当出现问题时,它可以快速提示您。
Even better is being proactive and building checks and balances into your continuous integration environment or build process.
更加积极主动,并在您的持续集成环境或构建过程中建立制衡机制。
You can set custom budgets in Lighthouse (something that will get more powerful soon), for example, that are checked on every pull request. You can test against WebPageTest automatically using its API.
例如,您可以在Lighthouse中设置自定义预算 (这将很快变得更强大 ),在每个拉取请求中都会对其进行检查。 您可以使用其API 自动针对WebPageTest进行测试。
For anyone building a JavaScript-heavy application, using something like bundlesize which alerts you to budget issues in your JavaScript bundles is an absolute must.
对于任何构建大量JavaScript的应用程序的人来说,绝对必须使用bundlesize之类的东西来提醒您预算JavaScript捆绑包中的问题。
Enforcing hard limits on your pull requests can seem intense, but those constraints can turn into a fun challenge and really change the way your entire team approaches their work.
对您的请求提出严格的限制似乎很严格,但是这些限制可能会变成一个有趣的挑战,并确实改变了整个团队处理工作的方式。
On a recent episode of Shop Talk Show, Jason Miller talked about Preact’s upcoming release, Preact X, and their limits on total library size. When a pull request for a new feature would land that added even a few bytes to the weight of the library, people would start playing “code golf”—finding technical debt that could be optimized to keep the library size under budget. Contributors started aiming to reduce the size of the library with every pull request as they added features, a refreshing inverse of the usual situation.
在最近的Shop Talk Show中 ,Jason Miller谈到了Preact即将发布的版本Preact X以及它们对库总数的限制。 当对新功能的拉动请求降落,甚至使图书馆的重量增加了几个字节时,人们就会开始玩“代码高尔夫”,这可以找到可以优化的技术债务,以使图书馆的规模保持在预算之内。 贡献者开始致力于在增加功能时通过每次拉取请求来减小库的大小,这与通常情况相反。
支持预算 (Supporting Your Budget)
The point is not to let the performance budget try to stand on its own, somewhere hidden in company documentation collecting dust. You need to be proactive about making the budget become a part of your everyday work.
关键不是要让绩效预算自己站起来,而是隐藏在收集灰尘的公司文档中的某个地方。 您需要积极主动地使预算成为您日常工作的一部分。
It’s not just a number, but a hard line. It’s a unifying target that your entire team can rally around. It provides clarity and constraints that can help guide decisions throughout the entire workflow and enable teams to focus on making meaningful improvements.
这不仅是数字,而且是强硬路线。 您的整个团队可以团结起来,这是一个统一的目标。 它提供了清晰度和约束条件,可以帮助指导整个工作流程中的决策,并使团队专注于进行有意义的改进。
And, if you make sure it’s clearly defined, meaningful to your users and business, integrated into your workflow at every available step and enforced in your build process, then a performance budget can be an indispensable part of your performance journey.
而且,如果您确保定义明确,对用户和业务有意义,在每个可用步骤都集成到工作流中并在构建过程中实施,则性能预算可能是性能旅程中不可或缺的一部分。
翻译自: https://timkadlec.com/remembers/2019-03-07-performance-budgets-that-stick/
预算绩效管理的建议