TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Statistical Process Control: A Practitioner's Guide (2022)

83 点作者 jpalomaki大约 1 年前

7 条评论

roenxi大约 1 年前
A few related observations:<p>Software development is <i>not a stable process</i>. Either a team is always building new things in which case there isn&#x27;t a consistent process to measure, or there is a see-saw as people release new features, deal with the bugs in the features, then go back to building - that isn&#x27;t a controlled process, it is going to oscillate in statistically weird ways.<p>If SPC is applied to bugs, it will be monitoring the relevant manager&#x27;s habits. That is to say, if you show me a nice in-control timeseries of bug resolution, all that says is when a bug blows out horribly the manager splits it into 2x tickets or something similar. It isn&#x27;t necessarily a bad outcome (small tickets are happy tickets and gently stressing managers is a good idea) - but don&#x27;t expect the devs to behave differently.<p>It is good to have a grounding in SPC, just don&#x27;t try to apply it to every timeseries that you see. Bugs are a timeseries, but they aren&#x27;t expected to be a controlled process so SPC&#x27;s assumptions break down and the logic doesn&#x27;t work. If it does work, it is probably measuring something other than the software development aspect of the process.
评论 #39638491 未加载
评论 #39636616 未加载
lifeisstillgood大约 1 年前
For interest: <a href="https:&#x2F;&#x2F;en.m.wikipedia.org&#x2F;wiki&#x2F;Stable_process" rel="nofollow">https:&#x2F;&#x2F;en.m.wikipedia.org&#x2F;wiki&#x2F;Stable_process</a><p>And<p>“Until we can define what a stable process is, we are doomed to argue forever all use of any statistical metric. For the love of a all science, please help!”<p><a href="https:&#x2F;&#x2F;www.isixsigma.com&#x2F;variation&#x2F;what-stable-process&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.isixsigma.com&#x2F;variation&#x2F;what-stable-process&#x2F;</a>
jacques_chester大约 1 年前
This is one of my favorite introductions to this topic area, especially since it gets away from the dominance of manufacturing applications for SPC.
评论 #39639880 未加载
shadowsun7大约 1 年前
A couple of quick notes, from someone who has actually put this to practice — and in a non-manufacturing context, to boot!<p>(From a brief reading of this thread, it seems like kqr, jacques_chester, and I are the only ones who have put this to practice in non-manufacturing contexts — though correct me if I&#x27;m wrong.)<p>The bulk of the debate in this HN thread seems to be centred around what is or isn&#x27;t a &#x27;stable process&#x27;. I think this is partially a terminology issue, which Donald Wheeler called out in the appendix of Understanding Variation. He recommends not using words like &#x27;stable&#x27; or &#x27;in-control&#x27;, or even &#x27;special cause variation&#x27;, as the words are confusing ... and in his experience lead people to unfruitful discussions.<p>Instead, he suggests:<p>- Instead of calling this &#x27;Statistical Process Control&#x27;, call this &#x27;Methods of Continual Improvement&#x27;<p>- Use the term &#x27;routine variation&#x27; and &#x27;exceptional variation&#x27; whenever possible. In practice, I tend to use &#x27;special variation&#x27; in discussion, not &#x27;exceptional variation&#x27;, simply because it&#x27;s easier to say.<p>- Use the term &#x27;process behaviour chart&#x27; instead of &#x27;process control chart&#x27; — we use these charts to characterising the behaviour of a process, not merely to &#x27;control&#x27; it.<p>- Use &#x27;predictable process&#x27; and &#x27;unpredictable process&#x27; (instead of &#x27;stable&#x27;&#x2F;&#x27;in-control&#x27; vs &#x27;unstable&#x27;&#x2F;&#x27;out-of-control&#x27; processes) because these are more reflective of the process behaviours. (e.g. a predictable process should reliably show us data between two limit lines).<p>Using this terminology, the right question to ask is: are there processes in software development that display routine variation? And the answer is yes, absolutely. kqr has given a list in this comment: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=39638491">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=39638491</a><p>In my experience, people who haven&#x27;t actually tried to apply SPC techniques outside of manufacturing do not typically have a good sense for what kinds of processes display routine variation. I would urge you to see for yourself: collect data, and then plot it on an XmR chart. It usually takes you only a couple of seconds to see if it does or does <i>not</i> apply — at which point you may discard the chart if you do not find it useful. But you <i>should</i> discover that a surprisingly large chunk of processes <i>do</i> display some form of routine variation. (Source: I&#x27;ve taught this to a handful of folk by now — in various marketing&#x2F;sales <i>and</i> software engineering roles —and they typically find some way to use XmR charts relatively quickly within their work domains).<p>[Note: this &#x27;XmR charts are surprisingly useful&#x27; is actually one of the major themes in Wheeler&#x27;s Making Sense of Data — which was written specifically for usage in non-manufacturing contexts; the subtitle of the book is &#x27;SPC for the Service Sector&#x27;. You should buy that book if you are serious about application!]<p>I realise that a bigger challenge with getting SPC adopted is as follows: <i>why should I even use these techniques?</i> What benefits might there be for me? If you don&#x27;t think SPC is a powerful toolkit, you won&#x27;t be bothered to look past the janky terminology or the weird statistics.<p>So here&#x27;s my pitch: every Wednesday morning, Amazon&#x27;s leaders get together to go through 400-500 metrics within one hour. This is the Amazon-style Weekly Business Review, or WBR. The WBR draws <i>directly</i> from SPC (early Amazon exec Colin Bryar told me that the WBR is but a &#x27;process control tool&#x27; ... and the truth is that it stems from the same style of thinking that gives you the process behaviour chart). What is it good for? Well, the WBR helps Amazon&#x27;s leaders build a shared causal model of their business, at which point they may loop on that model to turn the screws on their competition and to drive them out of business.<p>But in order to understand and implement the WBR, you must first understand <i>some</i> of the ideas of SPC.<p>If that whets your interest, here is a 9000 word essay I wrote to do exactly that, which stems from 1.5 years of personal research, and then practice, and then bad attempts at teaching it to other startup operator friends: <a href="https:&#x2F;&#x2F;commoncog.com&#x2F;becoming-data-driven-first-principles&#x2F;" rel="nofollow">https:&#x2F;&#x2F;commoncog.com&#x2F;becoming-data-driven-first-principles&#x2F;</a><p>I don&#x27;t get into it too much, but the essay calls out various other applications of these ideas, amongst them the Toyota Production System (which was bootstrapped off a combination of ideas taught by W Edwards Deming — including the SPC theory of variation), Koch Industries&#x27;s rise to powerful conglomerate, Iams pet foods, etc etc.
评论 #39639552 未加载
评论 #39640681 未加载
评论 #39639551 未加载
fjkdlsjflkds大约 1 年前
I stopped reading at this point:<p>&gt; Roughly half of your measurements will be above average, and the other half below it.<p>This is simply not true for most definitions of &quot;average&quot; (i.e., for <i>all</i> definitions of &quot;average&quot; except the median).<p>Example:<p>&gt; (data &lt;- c(1:10,100))<p>[1] 1 2 3 4 5 6 7 8 9 10 100<p>&gt; sum(as.numeric(data &gt; mean(data)))&#x2F;length(data)<p>[1] 0.09090909<p>A 90&#x2F;10 split is hardly &quot;roughly half of your measurements&quot;.
评论 #39638452 未加载
BizOpsZen大约 1 年前
Came across this on twitter. Here&#x27;s why I think SPC is related to Software Development (and Agile concepts, particular the burndown charts) more generally:<p>To be clear, they are related but not the same use case. IMO, both Agile and SPC leverage the same insight: variation is inevitable: what matters is not that it exists, but how you deal with it.<p>With SPC, you are establishing a normal variation so that you can identify abnormal activity that is warrants further investigation.<p>With Agile you&#x27;re not really looking for outliers per se, it&#x27;s more that you want to get to a place where your &quot;normal&quot; variation is a much smaller range. Because a smaller range leads to better quality and more output:<p>Variation in the software dev context is the difference between your estimates and the actual work required to deliver a feature, etc. High variation means you&#x27;re constantly in a rush, need to cut corners, need to cut scope, etc.<p>This has a lot of downstream impacts in terms of quality but also in the actual scope of what you can deliver. In short, you need to spend <i>more time</i> fixing <i>bigger</i> problems.<p>Less variation means smaller problems and less time spent fixing --&gt; more time is allocated to new feature development.<p>(and separate topic, but variation in Software dev has a special property where it only accrues in the &quot;takes longer&quot; side vs. the &quot;take less time&quot; direction. You never &quot;make up time&quot; because something is quicker than your estimate. see note below.<p>So the burndown chart is less about enabling you to see outliers, more providing visibility to the variation so that you can work towards making it smaller. If you&#x27;re constantly loading work in the end of the sprint, you have a problem with the scoping process.<p>How does that track back to Agile?<p>One the key elements of Agile process is breaking work down into smaller batches --&gt; and Breaking things down into smaller batches <i>is* they key mechanism to reducing variability.<p></i>NOTE: *Software pretty much only takes longer than expected because there is high visibility into the fastest something can be done, but very little visibility into the unexpected things that can add scope to the project. So it&#x27;s extremely rare for something to happen that make it take less effort than your estimates, but very common for things to add scope.<p>It&#x27;s similar to estimating how long it will take to drive somewhere: you can get a pretty accurate sense of the fastest it will take based on distance and speed. But the things that extend the duration of the trip, like a car accident or unexpected road work, are just much more unpredictable. So if you were to plot that variation on a chart, you only see it move in one direction.
ilayn大约 1 年前
Another post to drive a control theory person up the wall.