Overkill is a good thing

Recently, a question was asked about how to get enumeration with non-sequential, random-ish numbers. (I say random-ish because the point of the question was not to generate random numbers, but to take a given list of random _looking_ numbers and enumerate with them. The obvious answer is just to use the optional argument of `\item` to do it manually. Tobi’s answer suggests exactly this. This is, I think, The Right Answer in this case.

So why did I suggest my own answer which, by my own admission, was an insane way of achieving the same thing? Given that the right answer had been given, why did I offer a _much_ more complicated solution to the problem? Isn’t this a waste of everybody’s time?

No! The reason that my answer wasn’t a waste of time relates to something that you occasionally see mentioned on the StackOverflow blog. To quote from that linked post:

[W]e shouldn’t care about the questioner – the goal is to create a useful piece of information that makes the internet better. We’re here to serve the 15 million people who get answers from the site without ever typing a word.

What’s overkill for the question as it is asked might not be overkill for someone later stumbling across the question while browsing questions about enumeration on TeX.sx. For example, imagine that our hypothetical TeXer Alice is wondering “How could I make my own list type, with an arbitrary set of symbols?” In this case, while Tobi’s answer works, the automated and general solution that seemed so over the top for the original case, now becomes a good solution to that problem.

So I would encourage you to offer really over the top super general solutions to questions with obvious simple answers. This encouragement is qualified however: if the simple answer hasn’t yet been given, give that first!

When I am writing LaTeX, I often indulge in over the top solutions to my simple problems. Why? Because as a PhD student, procrastination is an important part of staying sane. But also because it gives me a chance to learn more about TeX and this may save me time in the future, when I come back to something and I need the generality of what originally seemed an over the top solution.

I will leave you with a comment exchange between me and Herbert that illustrates this side of my liking for over the top solutions. I wanted to draw a brace across several lines of text.
I commented on one of Herbert’s answers that I would prefer a TikZ answer to his PStricks answer. Why would I do that? Because I wanted to learn about TikZ. Of course, TikZ was overkill for this simple problem, but I’ve since used TikZ for much more complex drawings, and without those “overkill” baby steps, I wouldn’t have known how to do that.
Herbert put it nicely: “I see, you like to shoot with canon balls on sparrows … ” I responded “as a way of learning how to use canons, it’s good practice.”

3 thoughts

  1. “Because as a PhD student, procrastination is an important part of staying sane.” This is probably the 2nd Corrollary about Grad School, if I may claim the 1st to be the tagline on my website, “Because all research students are insane at one time or another”.

  2. I disagree with the quote as stated, but I agree with your (unstated) reinterpretation of it. We should care about the questioner! That should be our primary goal: to answer the question that the questioner actually asks. Our secondary goal is then to “make the internet a better place”.

    You actually say this since you say: “This encouragement is qualified however: if the simple answer hasn’t yet been given, give that first!”

    I often give hacky solutions, but I tend to wait a bit first to see if there’s a nice simple package that solves it (unless it’s obvious that the questioner needs it now because their PhD deadline is in two hours’ time!). The hack might help “future readers”, but it also might discourage the current questioner from asking more questions.

    Jeff says: Don’t optimise for sand, optimise for pearls.

    I prefer: Don’t optimise for pearls, optimise for pearl-producing sand.

Leave a Reply

Your email address will not be published. Required fields are marked *