Tag Archives: reuse

Backhoes, beliefs and software re-use

  • Backhoes Don’t Obey Moore’s Law: A Story of Convergence  – An article from the way back – 1996 that talks about Moore’s law and the computer industry’s dependence on telecommunication and the implication of this dependence.
  • Survival Guide for Junior Developers – Particularly, I can’t stress #2 enough. It not only helps the junior developers themselves, but others as well. When I joined my current team, there wasn’t a lot of documentation for several things. I documented everything(starting from how to set up the dev environment, documentation of my understanding on several systems and how-tos) on the wiki. As time went by, the team started reaping benefits – it was much easier and quicker to ramp-up the new people who joined our team(4 full timers, 3 of them were new grads and 4 contractors)
  • The Fallacy Of ReUse  – The title of the article was such a bait that I had to check it out. The highlight of the article for me was the distinction between ‘use’ and ‘reuse’ of software. Many times, when we say we are ‘reusing’ a piece of code, we are actually ‘using’ that piece of code – the distinction here is a little subtle.

If we were to (re)use a piece of code in only one part of our system, it would be safe to say that we would get less value than if we could (re)use it in more places. For example, we could say that for many web applications, the web framework we use provides more value than a given encryption algorithm that we may use in only a few places.

So, what characterizes the code we use in many places?

Well, it’s very generic.

Actually, the more generic a piece of code, the less likely it is that we’ll be changing something in it when fixing a bug in the system.

That’s important.

However, when looking at the kind of code we reuse, and the reasons around it, we tend to see very non-generic code – something that deals with the domain-specific behaviors of the system. Thus, the likelihood of a bug fix needing to touch that code is higher than in the generic/use-not-reuse case, often much higher.

The lessons from the article, which I agree based on my experience so far, are

– “stay away from reuse” – that is, don’t write specific/non-generic code

– “minimize use” – write generic components, but be careful and minimalistic while adding dependencies between generic components.


  • The Newsroom – started watching The Newsroom – I know I’m late to the party, but man what a great show! What I like most about the show is how optimistic and non-cynical it is. And, with what is going on in the world right now, I don’t think there could be a more ironic time to watch this show if you haven’t watched it already.

  • Crony beliefs -this was a super interesting post. The author’s idea is that beliefs can be viewed as ‘hired hands’ for the brain and their job is to make sure we survive. He classifies beliefs into two types:

– merit beliefs(beliefs we want to be factual and accurate so we monitor them actively) and

– crony beliefs(beliefs that are essential to for us to continue be a social animal. we don’t actively monitor these for accuracy).

The post further talks about how to identify crony beliefs and what can we do about them.