skip to main bit
a man slumped on his desk, from 'The Sleep of Reason Produces
      Monsters'

Oblomovka

Currently:

on being a bit of an idiot

I love this reassuring advice for contributors to Mozilla projects undergoing their first code review:

Bugzilla reviewers may seem to be harsh, accidentally. They aren’t trying to be harsh or overly critical, they’re just pointing out what needs to be changed, which usually means they’re pointing out what’s wrong with the current code, instead of pointing out what’s right with it. Usually they don’t have lots of extra time in their life for reviews, so they just quickly write what needs to be fixed, without spending too much time thinking about the nicest way to say it. Sometimes they also don’t go into long explanations.

You’re not a terrible programmer or a bad person. All we’re doing is telling you what’s preventing us from checking the code into Bugzilla’s main codebase.

I remember the first time that I, almost accidentally, asked somebody for an opinion on my code, a few years ago. They automatically mailed back with about thirty different suggestions, all correct, and I was mortified. Why had I been such an idiot? And why were they being so cruel and rude?

Actually, thinking back on it, I think the first time that happened was when I wrote some code for .EXE when I was 21, and had to bear about six months of readers writing in with an endless stream of bugs. “Dear .EXE, I spotted yet another error in your ‘Printing in Columns’ program from June”…

I now, at some level, realise that having somebody else go over your code is both humiliating and the best way to learn. And…

You know, this post was going to be about how I thought that was true for most people, and harp on philosophically about how personal and intimate coding is, and how pair programming is fraught with psychological drama. But, if I am honest, as I write this, I must admit that this is mostly a personal bug I’ve had up my arse (weird anglo-american hybrid term) for many years, rather than a common state of humanity. I’ve dodged a lot of things out of terror of criticism in my life. My stand-up career was aborted really before it got started because of an incident with a Scottish lady screaming into my face while standing on a table near the stage. NTK’s wilful obscurity came from, in part, a desire that people not so much be insulted, than as to be unsure what was being said about them, exactly (more on this in a future post). I generally fiddle with projects for months to protect them from even the slightest possibility of a cruel word.

In parallel with this, I’ve noticed something happen online a lot. Some absolute idiot turns up on the Net, and asks absolutely idiotic questions, and generally bumbles loudly to themselves while everyone notes what a clod they are and shoots them down in flames. Then, they start adapting to the criticisms, or facing them down, or disappear entirely and re-appear later in some other guise.

Through any of these processes, they end up transformed. Soon, they’re handing out advice to other idiots, or explaining what was actually utterly arcane to a far wider audience, or alternatively pursuing their dumb ideas to great success. I first noticed this with a guy on Cix, who called himself Nildram, and who was rude, and argumentative, and obtuse and the biggest pain (among a vast community of grumpy patrician carbuncular pains, I should say). At first I patted myself on my back for being quiet and sensitive and afraid to make the kind of humiliating public mistakes he made. And then I watched him just get better and better. I learned from his mistakes too, but at one remove. He ended up being the guy behind Nildram Broadband, which had the reputation of being one of the more responsive and customer-friendly ISPs.

This was what prompted the note I put at the end of Life Hacks, about the value of living some part of your life in public. If you can identify what are the valid criticisms of your code or your ideas or your writing, and who are the trolls, and which are the other people just being temporarily stupid obtuse geniuses-in-waiting, you can parlay all that valid feedback and move from fool to slightly less fool in quick time.

What I don’t know is how to stop the anticipation of that criticism, or the excessive idiocy of some of it, stop good people from becoming better. Today I heard of the existence of a library that is badly needed, but the person who is writing it doesn’t want to release it because “it hasn’t been tested enough”. Release it, and it will be!

I think my biggest encouragement to those who are scared of criticism to enter the public space is that if you don’t, the public space will be filled with people who have no fear of their failings whatsoever. And we all know what fools they are.

16 Responses to “on being a bit of an idiot”

  1. Francis Irving Says:

    “I think my biggest encouragement to those who are scared of criticism to enter the public space is that if you don’t, the public space will be filled with people who have no fear of their failings whatsoever. And we all know what fools they are.” — I love that.

    I say the same thing about campaigning — “if people who think things through and understand nuance never act because they are never 100% sure, then we’re leaving the whole political sphere to dogmatic extremists, way to go”.

  2. Dave Says:

    Just to get into the spirit of things, do you mean “Release it, and it will be!” in the last sentence of the penultimate paragraph?

  3. Marcus Cavanaugh: on being a bit of an idiot Says:

    [...] Danny O’Brien, quoting Bugzilla’s code review process: [...]

  4. Wynand Winterbach Says:

    I am overly sensitive to criticism and I am glad to know that I’m not just some out-lier.

    Criticism does become easier to take when one is exposed to more of it. But it’s important not to allow one-self to get overwhelmed by it – people are always eager to criticize and especially when they are encouraged – since it can sap the zest one needs to improve oneself.

    Thanks for the post.

  5. john naglick Says:

    i liked it.

    i definitely agree that having your code and/or ideas utterly destroyed by smarter people is one of the best ways to learn and get better. i’ve always tried to not take things personally in order to get all the value out of criticism that’s there, but it can be hard, especially if you accidentally let your ego get in the way.

    good article!

  6. Dave Miller Says:

    Very much enjoyed this article, good encouragement for people getting involved in open source. :)

  7. Gustavo Duarte Says:

    Cool post :)

    The end reminded me of a Bertrand Russel quote:

    The fundamental cause of trouble in the world today is that the stupid are cocksure while the intelligent are full of doubt.

  8. Paulo Eduardo Neves Says:

    Weinberg has a good suggestion about the best wording in code reviews. Always raise your points asking a question. Instead of writing “this variable name sucks”, write “Can you imagine a more informative name for this variable?”.

  9. Danny O'Brien Says:

    Dave, thanks!

    Paulo — I’m always a bit sceptical of that sort of advice, if only because I instantly think of writing stuff like “Could you think of some other, less godawful way of iterating this list?”

  10. Dave G Says:

    In my experience, when someone solicits “feedback” or “comments and criticism” from their peers on some work they’ve done, what they’re often really soliciting is praise and compliments. They think that their design document or class library or user documentation is simply brilliant, and they want everyone else to behold its glory and affirm how magnificent it is. If someone offers genuine constructive criticism, they’ll get defensive and argumentative and will show little interest in actually incorporating the feedback into their work.

  11. Collin Cusce Says:

    Excellent post! Code is extremely personal. When someone reads your code it often feels like someone reading your journal.

  12. L. Says:

    @Dave G…

    Dave Green? rumours of your demise have been greatly exaggerated, then. (in dobbin’s OpenTech video.)

  13. Danny O'Brien Says:

    Another impostor: there’s usually at least four or five fake Dave Greens around, including the inherited line of “Anti-Dave”s in Avignon, France.

  14. Phil Gyford Says:

    For the past few years while I’ve been doing this acting stuff I’ve been failing miserably at finding witty and illuminating parallels between the geek and theatre worlds. But your description of code feedback is just like feedback from acting teachers, who will (generally) tell you everything you did wrong. Maybe after an initial “Hmm, not bad…” to make them sound less harsh. Their reasoning being, I think, that you *know* what you did right so you don’t need someone else to tell you.

  15. Dave G Says:

    I’m not Dave Green, FTR.

  16. Verity Stob Says:

    Re: Code written for .EXE

    How come the so-called ‘editorial process’ didn’t pick up the bugs in your program?

    What I think you are really saying is that you had a bad experience on a poor quality publication. You shouldn’t let this affect your approach to life… except, perhaps, to be more careful where you work. The riches that junk mags such as .EXE offer are not everything, you know. There is such a thing as integrity.

    – Concerned Admirer

                                                                                                                                                                                                                                                                                                           

petit disclaimer:
My employer has enough opinions of its own, without having to have mine too.