Threaded discussions: nope nope nope

Pet peeve #73: threaded discussions. You may have seen it in a Usenet reader or perhaps even your email. It may seem like a great way to manage a long conversation with multiple ideas and lines of discussion. OK, that’s fine, I think you’re wrong and looking at this a little too technically but it’s not forcing that perspective on anyone else so fine.

I get peeved when its suggested that conversational tools like Twitter or Slack should implement threaded messages. Nope. You have now failed my secret test, please disembark from the pragmatic train.

If a conversation requires threading, that conversation has already gone way off the rails.

Two people talking about one thing and another two people talking about another thing in the same conversation is the definition of talking past each other. Why should our software enable that?

If an email or chat ends up covering two important topics, e.g. whether to use solid or liquid fuel on a rocket and what color to paint the rocket, it was poorly written in the first place. A reasonable person can easily jump in and say “let’s talk about the fuel now and we can figure out the color later”.

Bottom line: I think people can and should handle breaking off side discussions on their own instead of trying to push weird hierarchy on participants.

BDFLs aren’t community builders

What if large open source projects appointed a community manager to handle things like codes of conduct and social spaces? Anecdotally, those who make large projects are often the worst at actually running a community. Even volunteer projects need management. Flat organizations will always be dominated by ad-hoc in-group politics. The internet we’ve created thus far is allowing terrible people to outpace good people by a long shot.

I am a unique snowflake

Every software person is as special and unique as they think they are. But things go weird, in my experience, when I try to express my snowflakeness in production code. If I want to be weird or try something new, I should at least do it in a side/passion/mastery project. Even better: hobbies!

Ideas for Twittering better

When it comes to Twitter, things can get out of hand fast. Setting aside the hostile environment some people face when they participate in Twitter (which is setting aside a doozy!), it helps to have a few defense mechanism for what is appearing in your stream.

Most importantly, I evaluate each potential follow by the rule of “smart and happy”. Which doesn’t mean smart, angry people are automatically off the list. But, they have to show a really unique intelligence to get past my emotional filter. I made a graphic to boil down my “should follow?” decision:

How to decide to follow someone on Twitter.
How to decide to follow someone on Twitter.

Non-brilliant and happy? Probably in! Brilliant and happy? Probably in! Smart with a little bit of edge? Maybe. Just angry? No thanks.

Information overload, confirmation bias, and overwhelming negativity are also handy things to manage. I do a few things to keep my head above water and a not-too-dismal outlook on life:

  • Don’t worry about keeping up. It’s impossible. That’s OK!
  • When I have stuff that needs doing, shut it down. The tweets will go on without me.
  • Follow people with a perspective different from your own.
  • Keep a private list for high signal-to-noise follows. Good friends and people whose ideas I don’t want to miss end up here.
  • But follow a lot more people as a firehose of interesting and diverse voices.
  • When on vacation: don’t even care about Twitter. Disconnect as much as possible.

I hope one of these ideas can help you Twitter better!

Hype curve superpositions

It seems, these days, that technologies can exist in multiple phases of the hype curve, simultaneously. Two data points I read this weekend:

  • Node, which I personally place somewhere between “trough of disallusionment” and “plateau of productivity”, is in the “exceptional exuberance” phase for the author of Monolithic Node.js
  • Ruby, which I personally place in the “plateau of productivity” phase is in the “trough of disallusionment” for the author of The Ruby Community: The Next Version

In short, I strongly disagree with both of these opinions. But I think that’s not the useful datapoint here. The takeaway is that both viewpoints can exist simultaneously, in their own context, and not be entirely wrong.

Missing the big picture for the iterations

I.

Driving in Italy is totally unlike driving in America. For one thing, there are very often no lane markers. Occasionally a 1.5 lane road is shared by two cars moving in opposite directions. Even if there were lane markers, it’s doubtful Italian drivers would heed them. Italian traffic flows like water, always looking for shortcuts, ways to squeeze through, and running around temporary obstacles. For an American, driving in a big Italian city is a white-knuckle affair.

My conjecture is that the unspoken rule of Italian drivers is “never break stride”. Ease in and out of lanes, blend in at traffic circles. There’s almost a body language to Italian driving by which you can tell when someone is going to merge into your lane, when a motorbike may swerve in front of you, or when a tiny delivery van is going to blow past you on a two-lane road.

II.

Start with the result. I find myself mired in optimizing for short-term results that I can incrementally build upon. This is a fine tactic, especially when getting started. It’s a nice way to show progress quickly and keep making progress when rhythm matters.

But, it’s a tactic. To make a musical analogy, it’s how you write a song, not how you write a whole album. At some point I need a strategy, a bigger idea. I need a result in mind.

III.

I love to tinker with new technology. The grass is always greener with new langauges, libraries, tools, etc. I’ve learned a lot this way, and kept up with the times. I’ve got lots of surface-level experience with lots of things. But increasingly I want more experience with deeply accomplishing or understanding something.

IV.

Driving in Italy was extremely jarring for me at first. It closely resembled chaos. Eventually, I got used to it, at small and medium scales. (But never drive in Rome/Milan). Now, I sort of miss driving in Italy, at least the good parts. I miss the freedom to overtake other drivers without having to swerve through lanes, and I miss not stopping at traffic signals any time there’s an intersection.

Maybe this is a reminder, for me, that getting out of my routine (American driving) isn’t so bad. Worth the initial shock. Maybe my routines, my tactics, my tool/library/langauge novelty seeking, were helping me along as much as constraining me.

Maybe the big picture result, not the iteration, is the thing and how you get there (highly ordered American driving or seemingly unordered Italian driving) is of less consequence.

Sometimes

  1. Sometimes you go on a writing slump. Usually, just throwing something at the wall is how you undo that.
  2. Sometimes you notice that a lot of your writing can end up in platitudes and that deepens your slump. We regret the error, those responsible have been sacked.
  3. Sometimes you get kinda caught up in learning, tinkering, and enjoying things and forget to write. That's ok!

18 months is a smelly interval

Wherein you’re screwed before you even started

18 months is a dangerous window, when it comes to building a product. It’s far enough in the future that it seems like you could deliver an ambitious idea within a year and a half. But it’s a long enough timeline that one is tempted to skip the necessary contemplation, dividing-and-conquering, and hypothetical thinking that the planning process forces on you.

As it happens, 18 months is 540 days. 540 degrees is one and a half revolutions. As in, you started a revolution, but ended up regressing.

Saddest trombone. Be wary of anything that promises to happen in 18 months. It’s the “epic handwaving” of project management.

Megaprojects: megacool

Wherein it’s a lot of work to make something amazing

Megaproject. It’s a cool word. It’s an even cooler list-of-pages on Wikipedia. I’ve only worked on projects limited to tens or dozens of people. The human and geographical scale of some of these endeavors just blows my mind. The coordination and planning required for something like the Boeing 747 or Apollo program is beyond my comprehension. (OK, maybe I’m still really into aerospace; I did go to Space Camp. Twice.)

I would love to be a fly on the wall of the meeting where it’s decided to go ahead with a project that will be visible from quite some height above the earth like Denver International Airport or Walt Disney World. That’s a pretty huge commitment. I waffle for weeks when I decide I’m going to buy a new car!

If those don’t whet your appetite, perhaps speculative megastructures are more your speed? Trans-global highways! And of course, Dyson spheres, ringworlds, et cetera.

It’s good to remind myself that occasionally, human kind is capable of building really great stuff.

Vacation, disposable, and calm computing

Wherein an odd conclusion is reached

1

Let me talk about vacation computing. The prime directive of vacation computing is that you should compute on vacation as little as possible. Neglect your email, abandon your social mediums. Don’t do the things you normally do, regardless of how computery your regular work is.

From there, it follows that your vacation computer should basically not be a computer. That means smartphones, tablets, and book readers are the only options. But smartphones are pretty much synonymous with social media, so they aren’t really viable as a vacation computer (though you probably want it anyway because they’re a superpower). Tablets are nearly computers now, so that’s not viable either.

It follows that a book reader is the only acceptable vacation computer.

2

Let me talk about disposable computing now. We put a lot of important stuff on our computers these days. Important passwords, legal documents, email, family pictures, private pictures, computer games, purchased and bespoke music, Hollywood and home video, etc. Sometimes those computers are in our pockets, sometimes they’re on our laps and coffee tables, and occasionally you might still find them on our desks!

For the drama and heartbreak that can occur when we lose these computers, we take astoundingly bad care of them. We don’t back them up, we reuse passwords. A moment without wireless networking is the worst and yet we don’t take steps to prevent even more dramatic losses due to password breaches and storage failure.

Given all of this, a computer is made better by making it a disposable object. Backup your data, and backup your backups. Practice good password habits as much as possible so your accounts are isolated and somewhat disposable. Know your gameplan and what happens to your stuff if your computer or backups fall into a lava pit.

3

Knowing about vacation and disposable computing, I’m led to an odd and dissonant conclusion: an e-ink Kindle is the perfect computer. It does not do work, it does not social media. You can take it through airport security without any extra steps, which feels a little perverse and seems a bit surreal. It does not interrupt, it does not beep or blorp, it just barely displays text. As modern computers go, it’s basically useless.

But. You can read on it. And reading is so wonderful. And you can put stress aside. A Kindle gets wet? Not a big deal. Drop a Kindle? Not a big deal. Try to use it by the pool, out in nature, out in weather, out where the internet does not go? Not a big deal. Lose your Kindle? Buy another one, it costs a fraction of all your other computers.

The one scenario where you will find yourself absolutely screwed with a Kindle is when you have to enter text. Logging into Amazon or a wireless network for the first time? That’s a bad time.

In every other respect, the Kindle is a computer that does nothing to increase your stress level. That’s pretty remarkable today. Let’s make more calm computing devices, ok?