Attention tokens

Not long ago I confronted the realization that I have trouble saying no, and was relying on implicit no as a substitute. I had a particularly manic couple of days earlier this month, and so I was motivated more than usual to do something on this front.

I’ll start with this truncated quote:

If you don’t guard your time, people will steal it from you.

Pedro Sorrentino

Sorrentino’s goal in his post is mostly to shift the idea of “wealth” from money to time and/or freedom to do what you love, but I need something more practical to work on. (I already get that money != wealth anyway.) I just want the time.

I think the verb “steal” here is too strong, though. Really, it’s not that all these other people are so cruelly seizing your time. It’s that you are choosing to spend your time with them. For ostensibly good reasons, very valid, but still, it’s your choice. To reach back to the main idea, you could just say no. It’s your own fault, not theirs, that you assent to spending time with them.

Still, the main idea is correct. If you do not actually value, treasure, jealously guard your own time, then of course you spend it away, and have none left. Then, what you really wanted to do – or, more likely, what was really important for you to do – is no longer possible. (And let’s just set aside the idea of having uninterrupted time for deep thinking. I could write a whole separate post about that.)

“Spending” time is the key realization. Time is really a currency, a finite, scarce resource for everyone, and you can’t be a spendthrift about it and expect to do what you really want to. Saying “no” is really the only way you avoid spending time. Like, ever. For anything.

So, in line with this analogy, I’m experimenting with a way to budget my time expenditures.

Way back in 2007, Merlin Mann discussed rationing out time for meetings to cut down on uselessness. Soon enough, someone took his ideas to their logical conclusion and produced physical meeting tokens. Want to have a meeting? Cough up enough tokens for all of the attendees’ time. Not enough tokens left? Tough sh*t.

The purpose of the tokens was to drive home the concept, evolved since then, of attention scarcity. There are a bunch of articles about this you can go read up on. The concept of the “attention economy” is closely related, so expect to see a lot of crap from advertisers bemoaning how hard their jobs are. The gist of it is that there is an over-abundance of information available already, including the information you’d like to have consumed by, well, whoever it is that you want to get it to. So, the problem now is getting the attention of those consumers, in competition with all the rest of the information getting shoved in their faces.

There’s a strong analogy to work life here: instead of over-abundance of information, it’s over-abundance of work to do. Unlike idly scrolling through Facebook though, real problems crop up when you don’t have enough attention available for your work, and aren’t judicious with how you direct it. You can’t just invent more hours in the day to get more attention, so you have to dole it out thoughtfully. This means saying no to some work items, be they tasks or discussions with others.

Enter attention tokens, my experiment. (Not to be confused with basic attention tokens, but maybe they are fundamentally similar.) When I decide to direct my attention to something that isn’t what I’m normally trying to get done, I dock myself a token. When I run out, my reserve is empty, and I have to reject further demands for my attention.

  • I’m starting with granting myself 10 tokens at the beginning of each week, i.e., two per business day. They don’t carry over, because time waits for no one. If after a few weeks I still feel pressed for time, I’ll reduce the token count.
  • I manage my own tokens. Not only would it be impossible to have everybody else work with them, but like I said, it’s really my own decisions that are the problem.
  • It’s not my job, for the most part, to help someone who I say no to figure out what to do next … because that’s saying yes.
  • A little shell script tracks my token count, and a widget on my desktop says how many are left.

One of the common tactics I’ve read about for saying no is that you should set up your own rules for your decisions. Then, when you say no, you lean on the existing rule. “Sorry, no. As a rule I don’t respond to emails after 5 pm.” This is more to help you yourself work up the nerve to simply say no – people are generally really respectful when you decline a request, especially with a reason. But, it’s not a good long-term mechanism to lean on. It’s like saying that you won’t do something only because holy-book-of-your-choosing forbids it; you yourself also need to believe in your choice for it to be meaningful and respectable. But, to get you going while you learn your faith, it’s useful and valid.

So, my attention tokens are an awkward, external, weird rule that’s my excuse for saying no. Yep, flimsy and arbitrary. But, when I say no, I don’t have to say “I’m all out of my made-up tokens!”. I can say “Sorry, I’ve run out of time to spend away from my primary tasks. Please [email me later / ask me next week / investigate yourself / email the group / ask somebody else] if you need help now.” That’s what the tokens actually mean, anyway, and they might help me learn to say that more … and eventually, without needing them at all.

Coin image source: https://theonestopfunshop.com/products/yes-no-tossing-coin

Three Rules of Leadership

These rules are my own idea for how a good leader does their job. I don’t claim they are “The” Three Rules, just a set of them that I like.

Because I am a nerd, they are structured like Asimov’s Three Laws of Robotics. You can break later rules in order to follow an earlier one.

Rule 1. Don’t be stupid.

Above all else, don’t make moronic decisions or take dumb actions. This is essentially unforgivable. A leader has to be intelligent or, some might say, “smart”.

Rule 2. Be fair, unless that would be stupid.

Even if you have to displease somebody, if it’s a fair decision, they should eventually at least understand and accept it. Everyone really cares about fairness, even the very young.

However, it’s a mistake to do stupid things in the name of fairness. See Harrison Bergeron. It helps to remember that fair does not mean equal.

Rule 3. Don’t be a jerk, unless that’s needed to be fair and not stupid.

To be effective, those you lead must at least not hate you. When a leader acts, they should be compassionate and understanding, or at least not hostile.

However, if push comes to shove, and you can’t effect change in a fair and intelligent way otherwise, then you’ll have to stop being nice, and get the job done. Can’t please everybody.


I don’t want to expound on these ideas, because, well, that could take a while, and detract from their nice, simple form. I’ve considered them for quite some time, and I think they hold up well when considering what real-world leaders do, and whether they are doing a good job or not.

Implicit no

I’ve felt busier at work this year than usual. (Hence why it’s been a year since my last post – yikes!) I’m probably not actually busier as measured by, I dunno, theoretical units of work effort. It’s that there is a wider variety and breadth of what I have to deal with each day than, I think, ever. Rather than concentrating on fewer items, my time and attention are spread across many items.

I don’t like working like this, and I’m also not used to it, compared with diving deeply into technical efforts. I don’t have the mental habits in place to work well this way (at least by my own assessment).

So, I’ve been learning and reading about this conundrum. While researching one topic, how to make effective requests, I ended up reflecting on how I respond to requests. I try to take care of everything on my plate, regardless of who placed it there, but this year I’ve seen just how finite the size of that plate is. I can’t respond to everything that either I want to or others want me to.

For this common work scenario, you’ll hear the recommendation to learn to say no. I’ve realized how very rarely, nay, even seldom, I out-and-out say no. I mean, I totally buy into the idea, but when it comes time … that little word barely ever passes between my lips. Just thinking about saying that to a coworker feels bad to me when I imagine it.

The problem is that, because of my reluctance to explicitly say no, I am instead implicitly saying no, now more than I used to. That’s even worse.

Continue reading

Chunking through unit tests

Ever since the advent of multi-tier application architectures (which seems forever ago now), I’ve commonly had to work on tasks that span multiple levels of abstraction. You probably have too. For example, say you need to implement a new REST API call in your classic web application. You have to:

  • Define the endpoint itself, with its request and response formats.
  • Implement some business logic for it.
  • Update the data layer to persist and/or query what needs it.

That’s just your three classic tiers, and sure, once you’ve done this sort of work enough, it’s almost straightforward. But, as time goes on and your application gets complicated, more aspects creep in. Security. Audit logging. Retries and resiliency. And then there’s all those newfangled microservices to deal with. The neat layer cake ends up looking more like monkey bread. How can you keep track of all of this and get your work done?

One way is to use something you should be doing anyway: writing unit tests.

Continue reading

In praise of incremental development

A good traveler has no fixed plans and is not intent on arriving. – Laozi

The other day I was asked about whether an encryption feature in a product I work on supports user-supplied keys. I had to look back in Jira, years into the past, for the answer, which was: nope. It supports default keys, but we hadn’t had time for supporting user-supplied ones.

While this is a little disappointing, it still was the right thing for us to do. That’s the paradox of incremental development, and why I think it’s hard for developers to fully embrace it.

Continue reading

Hierarchy of “Is it supported?”

As tech lead of Cloudera Altus Director, I’ve often been asked whether some product feature, or use of a particular version of some external software, or use of some external service – some it – is supported. I found that it’s really hard to answer these questions. There are different factors involved, like how much testing we’ve done or continue to do, or what we recommend to customers, or say we’ll let them at least get away with. The answer is rarely a binary, absolute yes or no.

So I spent some mental cycles thinking about the question of whether something is supported. Thinking about the different angles, I came up with a hierarchy of support levels. It’s certainly a “1.0” sort of artifact. But, I think it’s a good starting point, and it already helps me answer “Is it supported?” questions today.

Continue reading

Remote Work Tip #4: Overcommunicate

Those who are against remote work are right about one thing: There really is no substitute for face-to-face interaction with someone where you are. All those nonverbal cues that we’ve evolved over eons to pick up on. The side conversations about hobbies, family, sports, TV … you know, the non-work stuff. Just existing in the same place as your coworkers. It definitely helps to bond a team together.

HOWEVER. Being physically together with your team is not necessary for success; there are successful, all-remote teams (and companies) out there (see Gitlab, Basecamp). It also isn’t sufficient for success, as evidenced by the legions of failed software projects which, despite everyone being stacked into one building, ultimately failed.

The best argument one could make, perhaps, is that co-location increases the odds of success. I am, in fact, quite the proponent of increasing your odds of success – that’s why you stay in school, say, or don’t smoke. So, if you and your employer are considering or implementing remote work, you’d need to use other tactics to make up for the (possibly) decreased odds of success from having a distributed team where no one is in the same place.

The primary tactic to employ is to consciously make up for those missing side conversations and cues that are harder to read over a video hangout. It is helpful and effective to intentionally overcommunicate when working remotely.

Communication

This doesn’t mean to become a incessant fountain of vacuous emails and phone calls. That’s as bad as being that loud coworker who won’t stop talking about the latest episode of Such-and-Such or the Ludicrous Display Last Night. It means to take steps to actively fill in the gaps that are created when you can’t just lean over and ask a question, or answer a question. Here are some essential steps to take.

  • Be present in a chat window. For example, my team has a persistent chat room where we can ask and answer questions, or make quick announcements. This is the closest analogue to all sitting in the same physical room, without the coughing and keyboard clackering. While this is a key practice for overcommunicating, it’s just as important to not let chat take over your time (looking at you, Slack). Sometimes you are busy, and it’s good to hang up a virtual Do Not Disturb sign when necessary.
  • Don’t hesitate to hop on a video call. Text chat and email are great for what they are great for, but back-and-forth, involved conversations work better using our voices. An audio conference call is OK, but a video call is better; it’s more like everyone is together. Just make sure to look presentable.
  • Document more. Even in a standard workplace, it’s common for decisions made in a meeting to not get written down, and that can cause problems because everyone tends to remember the past differently. Documenting plans, decisions, and meeting minutes becomes even more important for remote workers, since the lack of physical presence makes their experiences vary more. Also, maybe they all can’t make it (because they are asleep halfway around the world), so they need the record to stay informed. A good video call system should permit recording, and a wiki or shared storage is great for writing everything down to share with everybody.
  • Don’t stick only to work topics. It may take bravery, but having a discussion or email thread about something random helps a team gel, and takes the place of those metaphorical water cooler discussions. An easy starter topic is linking to some semi-work-related blog article, which was a pretty good read and you thought you’d share, and so on. Then you move on to a webinar video, or some interesting news from your field, or some resource about a hobby you enjoy, or information about a vacation. Eventually, once you’re sharing cat videos and using emoji as your team’s secret vocabulary, you know that you’ve got a good culture going.
  • Follow up with confirmations on actions, decisions, and discussions. Email threads and chat conversations can sometimes just fritter away without a solid conclusion, especially without some leader-ish person running them like an in-person meeting. Be sure to close out remote discussions with a summary, next steps, and the like, to be sure that everyone is in agreement. Again, this is a great practice even for a co-located team, but more important for a remote set of coworkers.
  • Say hello and good night. Mindfully practice those little niceties that are automatic when you’re with someone.

There are plenty of other useful overcommunication practices that you can discover, but I think this is a good starter set to think about. Even though you are sitting by yourself somewhere, you’re still part of a team, and expanded communication is the way to make it feel like you are with everyone, working alongside them. Technology has granted us lots of ways to communicate that make achieving that feeling, that spirit, possible. Once you have that, you’ve beaten the odds.

Remote Work Tip #3: Make an effective work area

In my first remote work tip post I talked about creating a separation between work and non-work. Part of that is having a place in your home that is only for work, and nothing else. That modest physical separation helps with the mental part of the separation.

If you were working in an office, you’d have a desk set up with the usual set of equipment. Working remotely shouldn’t be much different: Set up an effective area for remote work, with elements like a work area in an office. Your couch is probably not the best environment for getting down to business, no matter how comfortable it is.

Desk

For example, I am a software engineer. So, I have a big (not enormous, this is in my house after all) monitor sitting on a desk, into which I plug my closed laptop, and I have a high quality keyboard and mouse to use all day. I’m not spending all day hunched over my little laptop screen, typing away on a merely OK keyboard. What I have at home is, in some ways, actually nicer than the bog standard equipment I’d have in an office (before I’d swap it out, anyway).

Don’t forget to use a good office chair. It’s easy at home to just haul out a cheap folding chair or stool, but you’ll be sitting in this thing for hours, so just like you should have a good mattress for all the time you spend sleeping, you should be kind to your body with quality seating.

When you are working remotely, you need to pay special attention to the technology that enables audio and video chat: webcam, microphone or headset, and speakers. In an office you might not have any of that, since you could always go off to meet in a conference room, but they’re obviously essential for remote work. Pay special attention to the webcam and microphone / headset quality, since those affect how you are presented up on that screen at your home office. It’s much more desirable to have a clear, crisp image of you up there than a low-grade, pixelated image; to others, it feels more like you’re there with them as part of the team.

Speaking of webcams, do make sure that the view behind you isn’t embarrassing. It doesn’t have to be perfectly clean and formal-looking, but there shouldn’t be piles of laundry, greasy tool racks, or questionable posters in view of the audience. The view from your webcam is essentially “your office” as far as everyone else is concerned, so just like it’s important to get dressed, your walls should be presentable.

I’ve found that I don’t really need to work with paper much beyond taking notes; remote work naturally lends itself to working with online documents. If you still need to deal with writing on dead trees, though, also invest in a decent printer or multi-function device (printer / scanner). I can say that they are still as complicated and touchy as they’ve ever been, so it might be tough to find one that’s good quality, but give it your best shot.

Beyond the tech, make sure you have the usual office supplies around that you need, like paper, pens and pencils, scissors, a stapler, necessary cables, all that. It’s the same stuff you’d have in drawers in your office desk. When I travel to one of my company’s offices, I always check to see if there’s anything useful in the supply closet to bring home.

Try to keep your work area reasonably clean; this is actually pretty tough depending on your work style anyway, but it’s even harder when the area is in your house and no one else can see it. If you need to keep papers around, get a filing cabinet or some other sort of organizer. Put books in a shelf or cabinet, not in a crooked stack. Wipe down the area once in a while. It feels better to work in an environment that wouldn’t make your mom worry about you when she sees it.

Also, don’t forget to dress up your space with knickknacks, office toys, artwork, or whatever else you like to have around you. Again, this would be just like what you’d do in an office. If you’re going to spend eight or so hours a day in the area, you might as well make it pleasant to look at. Bonus: since most of your work area is off-webcam, you have a lot more freedom to decorate.

Finally, pay attention to the lighting and ambient sound in your work area. Avoid working in spaces with a lot of ruckus nearby, like just off your kitchen. Since you’re not in an office, you don’t need to deal with horrendous fluorescent lighting, so use a good lamp or a few LED strips for backlighting, or whatever you find pleasant. The light and sound around you matters a lot for those video chats, too; ensure that there’s enough light for you to be seen by, and little enough noise that you can be heard.

See if your employer has a budget for remote workers to purchase equipment (they are saving money on office space anyway), or if they will otherwise reimburse you for home office purchases; that’ll help take the bite out of the cost for bigger items you decide to acquire. If not, then just think of it as spending some of the money you’re saving on gas, parking, and lunches, except you get to keep what you purchase.

Having a highly customized work space is one of the many perks of working remotely, so optimize it for what you need and where you’d like to spend your work days.