pages tagged euphemismyakkinghttp://yakking.branchable.com/tags/euphemism/yakkingikiwiki2015-07-15T11:00:12ZBus Factorhttp://yakking.branchable.com/posts/bus-factor/Daniel Silverstone2015-07-15T11:00:12Z2015-07-15T11:00:06Z
<blockquote><p>I decided that I would write this article one lunchtime, but by the time
evening had come around, I had completely forgotten the topic of the article
I had intended to write. Fortunately Richard had been at lunch with me and
he could remind me that I was to write about <em>Bus Factor</em> -- I can't think of
a single better example of why this is important to do.</p></blockquote>
<p><a href="http://en.wikipedia.org/wiki/Bus_factor">Bus factor</a> is, quite simply, the number of people who need to become
<em>"indisposed"</em> before a project will falter. As the linked Wikipedia article
says, it is a measure of the concentration of critical information in a
project.</p>
<p>We encounter the issues of <em>bus factor</em> almost every day when we learn
something unique in our day-to-day work. As information workers, the
generation of unique knowledge is our bread-and-butter and we need ways to
ensure that the knowledge we create is not lost if we are. We do this by way
of writing things down, telling them to others, putting them in
<a href="http://en.wikipedia.org/wiki/Knowledge_management">knowledge-management</a> systems and any other thing we can do to ensure that
the knowledge is safe.</p>
<p>As software engineers we do this a lot of the time by committing our new
knowledge as source code to a revision control system and pushing it elsewhere.
Of course, we then sometimes don't improve the bus-factor but instead create
a <a href="http://en.wikipedia.org/wiki/Single_point_of_failure">single-point-of-failure</a> for the hardware infrastructure we depend upon.</p>
<p>What's more, as knowledge workers, we have two conflicting desires at the root
of our pursuit of knowledge. We like to know things that others do not know
since that gives us a measure of smugness or superiority. We enjoy learning
new things but above all that we enjoy <em>inventing</em> new things and holding those
precious nuggets of joy to ourselves for a short while. Conflicting with this
desire is the desire to be seen to be clever/wonderful/inventing new things.
Fortunately that second desire is the one which reduces the <em>bus factor</em> for
the new knowledge and it is to this second desire that we must adhere.</p>
<p>When software projects begin, typically they begin with one person having a
clever idea. That project intrinsically begins with a <em>bus factor</em> of one.
Hopefully, if the project gains users, the project will gain further developers
and in doing so will reduce its bus factor providing the developers share
knowledge and understanding rather than segmenting the project and never
encroaching on one another's domain. Fortunately F/LOSS projects tend to be
run in a way which encourages the sharing. So if you start a project, please
make sure you write stuff down and do your best to get at least one other
person involved, ideally <em>before</em> you have users depending on you.</p>
<p>After all, it could be <strong>you</strong> who goes <em>under a bus</em> tomorrow.</p>