5 ms·
> BUS FACTOR OF ZERO Bus factor is usually defined as the minimum number of team members that have to be hit by a bus to put the project in jeopardy. The Wikip
by saithound 5y ago
> BUS FACTOR OF ZERO
Bus factor is usually defined as the minimum number of team members that have to be hit by a bus to put the project in jeopardy. The Wikipedia article linked from the site defines it the same way.
So a bus factor of zero would mean that the project is in jeopardy even if all the maintainers are alive.
- deleted 5y ago[deleted]
- codethief 5y agoThat same Wikipedia page also states: > There is a rare alternative definition for the bus factor, namely: the number of people who are indispensable for the project.[2] In other words, it is the minimum number of people who are a single point of failure. If using this definition, then a high bus factor is considered a bad thing (since the loss of any person included destroys the project), and zero is considered the ideal bus factor.
- saithound 5y agoThat's true, and in fact I'd prefer it if that was the mainstream definition. Given that it isn't, there may be better replacements for the headline, along the lines of "maintainable by one person".
- deleted 5y ago[deleted]
- ebingdom 5y agoThat alternative definition seems less useful, because quite often there are two people who can individually maintain a project, and in that scenario the bus factor is 0 even though there is a risk that both of them will leave the project.
- saulrh 5y agoThese two measures are probably ended up conflated because they're two ends of the same metric. "How many people need to be hit by a bus", which for simplicity I'll call the "bus factor", measures unusually high levels of resilience, but it doesn't go lower than 0 so it can't measure how fragile a fragile project is. "How many people are indispensable", which for simplicity I'll call "inverse bus factor", measures unusually low levels of resilience, but it doesn't meaningfully go below 0 so it can't measure how resilient a resilient project is. The thing is, a bus factor >= 2 necessarily indicates an inverse bus factor = 0 (if you need to hit two people with buses to take the project down then nobody is indispensable) while an inverse bus factor >= 1 necessarily indicates a bus factor = 1 (if anyone exists that is indispensable, then hitting exactly them with a bus takes the project down). In other words, bus factor = 1 and inverse bus factor = 1 could be viewed as being the same point in the middle of a line on which all projects fall, same way zero is the center between positive and negative numbers.
- dTal 5y ago>same way zero is the center between positive and negative numbers. More like the way 1 is halfway between 0 and infinity. I think you're nearly there, and the answer to the dilemma is that fractional bus factors are possible. A bus factor of 0.5 means there are two indispensable people. We might disambiguate the two conflicting definitions by renaming them with suitably inverse words - "redundancy" and "fragility" perhaps (though I suspect the latter is unneccesary). This is basically the terminology we use for RAID arrays and servers.
- lioeters 5y ago> 1 is halfway between 0 and infinity That would be true if "infinity" meant 2.
- saulrh 5y agoI agree that fractional bus factors would be better if we could completely redefine the metric, yes - they do a much better job conveying the fact that doubling your bus factor does way more than halve your likelihood of actually getting stopped by losing a contributor. I was stuck reinterpreting existing definitions when I wrote that post, though, so /shrug
- donw 5y ago> So a bus factor of zero would mean that the project is in jeopardy even if all the maintainers are alive. So, PHP, then.
- LambdaComplex 5y agoI suppose the downvotes may be justified due to your comment being pretty out-of-place, but, just to add some perspective: I'd like to remind everyone that PHP originally used strlen() as a hashing function: https://news-web.php.net/php.internals/70691 https://news-web.php.net/php.internals/70691 It is (or at least originally was) certainly not the pinnacle of good design.
- rossvor 5y agoI don't think it's fair to use this fact as a data point -- since that same message you've linked says "This was circa late 1994 when PHP was a tool just for my own personal use". PHP was released to the public 1995.
- LambdaComplex 5y agoEh, I think it is--the creator knew enough about programming to consider (and then actually implement!) storing the functions in a hash table, but I'd say that anyone who knows enough to do that would/should know perfectly well that strlen is a terrible choice for the actual hashing function.
- donw 5y agoHonestly, they probably are. But I figured that the occasional jibe or jest on HN is an absolute crapshoot.
- repox 5y ago> I'd like to remind everyone that PHP originally used strlen() as a hashing function: https://news-web.php.net/php.internals/70691 https://news-web.php.net/php.internals/70691 You speak of this as it should be something that is relevant for the state of PHP and the community that uses it to this day. It is not. The community moved on, maybe it's time the haters did as well.