Trim the attention sails
In America, the 2024 election cycle is unlikely to amuse anyone. Maybe this is a rallying point for “unifying” the country: a near-universal loathing of our politicians, how they get themselves elected, and the outcomes they deliver to us. Let alone the new media that reports on them.
Ahead of the inevitable hell-cycle, I’ve trimmed my attention sails a bit. The general idea is to remove feeds and notifications from my daily routine which are monetized primarily by writing doom-y, grab-y headlines. I’m looking at you in particular, New York Times. But it applies to just about everything with headlines. I’ve disabled all notifications from The Economist and Apple News. I read them once a week. That’s plenty.
Unrelated to the election, I deleted the Twitter and Instagram apps. The web app is mostly equivalent in Twitter’s case, no loss there. Instagram’s mobile web app is surprisingly mediocre. The point, in both cases, is to put a few more steps, a bit more friction, between me and randomly scrolling an algorithmic, attention-hungry feed. I’ve since found that the friction of loading these two as web apps is great. I do indeed look at them far, far less. On the other hand, their web apps are intentionally just-okay. It seems to me that any organization that can put together an excellent iOS app should be able to do the same on mobile web. Reader, let me tell you, they don’t.
I found the settings in Lyft and DoorDash that prevent them from sending advertisements-as-push-notifications. They do exist! Highly recommended.
Mute lists, they’re also fantastic. All the names and teams and keywords that tend to mean “here’s a post about the political horse-race” are scrubbed from my timeline. Even better, I can see when they’re scrubbed and dip in to see if things are as unproductive as I remember. (Thanks for that little detail, Ivory.)
Previously: Think Your Thoughts.
Detroit’s airport (DTW) is…kinda decent? It’s got a monorail and a light show set to songs of Motown. At the very least, it’s not a bad coffee shop? 🙃
Blogs were/are a fun moment
Manuel Moreale, Why I write:
But the reason why I started is long gone at this point. I started the blog as some sort of public accountability tool and it’s now everything but that. I don’t write to be accountable. I probably should.
Manuel asks a lot of folks about why they started writing their blogs. It’s a great question! Some folks want to get weird, others can’t not write and putting it online as good as anything, still others want to connect with a community.
That last one, connecting with a community, is closest to my answer. I started because there was so much excitement, energy, and connection in the early 2000s blogs. It was a real scene. And, plenty of invention! Before there was centralized social media and web 2.0 there was decentralized blogging. An earnest attempt to take the technology of peer-to-peer file sharing and build something besides music sharing on it. It was a fun moment.
Avoid the ternary operator, I’m begging you
Allow me a bit of a soapbox-rant. A spicy take, as we might say these days.
You’re using the ternary operator wrong in Ruby, JavaScript, and almost everything else. It’s for expressions, not control flow.
My personal ternary journey of discovery, delight, and distaste:
- In the old C days: what is this noise? What does a colon even mean in this language? Is this even syntactically valid?
- Later, in verbose languages like Java: oh I get it, let me show off by using it. I like that I can compress five simple lines of conditional down to one.
- Currently, seeing how it’s used in shell and React code: actually this is awful let’s never use this. Delineating the arms of a conditional with one character is awful for scanning and discovery code.
- Even when it’s appropriate, I feel a little bad.
The nuanced take: a one-condition ternary with no more than 4 tokens is maybe okay. If I can’t fit my ternary expression in 80 characters, switch to an if/else conditional. (It’s not that bad!)
// fine, I guess
foo = bar ? baz : quux
// stop this, I'm begging you
msg = bar ? ...dozens of lines of code
: ...dozens more lines of code
Why I try to avoid it:
- in the year 2024, your editor can write conditionals for you
- some folks can’t even keep your ternaries at 10 tokens, let alone 5
- and it’s literally showing
- hence, I’m here writing about it
- the ternary operator is not for control flow, stop that
- the ternary operator is really only suitable for assigning values based on other values
- for example, in the expression
val = foo ? bar : baz
val
depends onfoo
- the ternary operator is a good way to represent dependency/correlation!
- for example, in the expression
- I don’t care what React’s conventions are anymore
- they’re not good in this regard
- use conditionals for control flow
- use variables to assign meaningful names to big chunks of markup
- please, stop with the boolean and ternary logic
- I’m literally writing this before the sun rises, asking you to stop
- the ternary operator is really only suitable for assigning values based on other values
- ternaries don’t airlift/refactor well
- you can’t pluck one bit of code out of a ternary and drop it somewhere else
- I feel this one in my bones but can’t think of a short example
- (citation needed)
Bonus track: stop adding conditional clauses!
// fine
if safe-to-release
launch-the-missiles
else
reset-to-ready
end
// bad, you got some refactoring to do
if safe-to-release && target-acquired && something-that-seemed-right-once && tuesday || national-holiday
...
end
I’m guilty of this temptation to add “just one more conditional!” I regret it.
It makes code difficult to reason about. It’s basically impossible to tell people when the thing will happen in the “bad” example.
If you manage to get something right in multiple conditions today, you’re probably only making it harder for yourself (or someone else) tomorrow.
I will support you 90% of the time if you want to take 30 extra minutes to turn a multi-clause condition into a simpler structure. Your teammates will hail you as a hero later when they need to read or modify said simpler structure!
A disproportionate percentage of bugs hide in conditionals. If they’re easier to read and change, hopefully we’ll write fewer bugs!
Psuedoprose
Taylor Troesh’s pseudoprose is a notation for writing/note-taking/thinking:
How to
- Write in English, Spanish, whatever.
- Grammar is optional.
- Markdown is encouraged.
- Embed in any document with [[…]] brackets.
- Use {…} for comments.
- Use <<…>> for LLM instructions.
- “tk” means “todo”.
Why
- Jot down notes/ideas quickly.
- Focus on semantics over syntax.
- Less text to edit.
- Offload grunt work to LLMS.
Notably, also a notation for annotating LLM/AI/Copilot interactions directly into your text. For the wonks, a GPT-4 prompt is included to convert psuedoprose to well-formed Markdown without any code. What a world.
Other folks’ ways of writing and taking notes are endlessly fascinating.
Rails generators are underrated
Every experienced Rails developer should pick up Garrett Dimon’s Frictionless Generators. Generators are an often overlooked piece of the Rails puzzle. The book shines a light on getting the most out of generators in your Rails projects. It’s an amazing-looking digital object too, the illustrations are great.
(Before I go further, it’s worth noting that Garrett Dimon sent me a review copy, acted on my feedback, and is generally a pal.)
You should customize generators and write your own
Conventions, in the form of assumptions that are woven into the framework’s code but also exist as a contract of sorts, are essential to Rails. Following those conventions would not work well if creating a new model, resource, etc. wasn’t made easy and consistent without our friends rails generate resource/model/etc
. These generators have been present in Rails since the beginning. I’ve used them hundreds of times and thought nothing of it.
A few years ago, I realized that generators had become a public API in Rails and that re-use was encouraged. The guide is a good start. I was able to knock out a simple generator for a novel, but conventional, part of our application. In the process, I realized a couple of things.
No one likes boilerplate and tedium. Generators automate the tedium of boilerplate. This is particularly helpful to less experienced developers, who are likely a bit overwhelmed with trying to comprehend decades of Rails evolution and legacy code (from their perspective) quickly.
Rails developers are under-utilizing this leverage. Every system that makes it past a few thousand lines of code (or several months in use) develops bespoke conventions. These are easier to follow if you can reduce the mental burden to “when you add a new thingy, run rails g thingy
”. Added bonus: starting new conceptual pieces in your app from generators encourages consistency, itself an under-appreciated sustaining element in long-lived Rails applications.
Luckily, someone was thinking the same thing I was…
Garrett knows more about generators than anyone I know
The Rails guides for generators are okay. They whet the curiosity and appetite. But, they aren’t particularly deep. When I first tinkered with generators, I mostly learned by reading the code for rails generate model/resource/etc
.
Frictionless Generators does not require one to jump right into reading code. It opens with ideas on the possibilities of developing with custom generators. Then, it moves onto the practicalities of writing one’s own generator and crafting a good developer experience. From there, it’s down the rabbit hole: learning about the APIs for defining generators, implementing the file-creation logic therein, writing help and documentation for them, generating files from templates, and customizing the built-in Rails generators.
Garrett goes into as much depth on generators as any other technical author I know, on any topic. Did you know you can make HTTP requests and use their responses in generators? I did not, but Garrett does! Did you know that generators apply the same kind of “oh, yeah, that’s common sense” convention for copying files from generators into applications? I did not, but Garrett does! I don’t think I’d use all these ideas on every generator, but I like the idea that I can return to Frictionless Generators should I have an idea and wonder how the existing, low-friction APIs can help me.
Further, Garrett offers frequent insights into the developer experience and leverage of building generators. On building generators for “fingertip feeling” so developers can easily (and frequently!) use them:
I like to aim for no more than one value argument and one collection argument to keep generators easier to use. Everything else becomes an option.
On approaching generators as high-leverage side-quests:
Remember that the ease of use is generally inversely proportional to the length of your documentation. Assistance first. Brevity second. Content third. Or, be helpful first, concise second, and thorough third. That said, there are a few other categories of information that can be helpful.
For me, a good technical book balances presentation of technical information, the right amount of detail, and wisdom on how to apply the two in practical ways. Garrett succeeds at striking that balance while keeping things moving and easy to follow.
In short, recommended! Rails generators are underrated, whether you’re aware of their existence or not. Smart teams are customizing generators and writing their own bespoke generators. There’s a book on this now, which you should check out if any of this resonated.
Collective flow
Dave Rupert, Play at work:
I’ve talked about this before in the context of prototyping and play and how we worked at Paravel. It’s a lot like playing baseball; each member of the team showing up to practice, volleying work (in screenshots, short videos, or demos), pushing changes, communicating thoughts and challenges in the moment outside the confines of slotted meeting times. Me and my coworkers, having a catch.
Several years ago, when I was doing improv, I was rehearsing for a musical, of all things. At the same time we were getting started with table reads and gel’ing as a cast, two other shows were rehearsing in the same theater. One show was about to open, very much having their thing dialed in. Another cast was somewhere in the middle, having figured out what they were about but still trying to get the execution just right. Everywhere in the theatre, there was creation and exploration energy and it was one of the most awesome things I’ve done. This despite not liking musical theater much!
I don’t like the idea of “return to office” and I don’t think you could make it work anyway. The social momentum that kept a critical mass of people in one office has been broken, you can’t put that toothpaste back in the tube.
That said, I have yet to feel that same energy in remote work that I did in a local theatre on rehearsal night while various groups were making something together, in the moment, and iterating on it as quickly as they could share a glance or read through a scene.
I bet some teams have figured out how to feel this way in remote/async setups. But, it feels like most are still running the old in-person playbook that we learned, and sometimes thrived with, over the past years and decades of our careers.
“Yes, and” despite pessimistic engineering intuitions
As engineers, we often face the consequences of shallow ideas embraced exuberantly. Despite those experiences, we should try to solve future problems instead of re-litigating problems-past.
Engineers put too much value on their ability to spot flaws in ideas. It’s only worth something in certain situations.
— Thorsten Ball, 63 Unpopular Opinions
Don’t be edge-case Eddie, wont-scale Walter, legacy code Lonnie, or reasons Reggie. At least try to think around those issues and solve the problem.
This is very much a note to my previous self(s).
Pay attention to intuitive negative emotion…If you’ve been asked for quick estimates a bunch, you might have noticed that sometimes the request triggers negative emotions: fear, anxiety, confusion, etc. You get that sinking feeling in the pit of your stomach. “Oh crap”, you think, “this is not going to be easy.” For me (and most experienced software engineers), there are certain kinds of projects that trigger this feeling. We’re still pattern matching, but now we’re noticing a certain kind of project that resists estimation, or a kind of project that is likely to go poorly.
– Jacob Kaplan-Moss, The art of the SWAG
Jacob recommends noting how intuition and emotion are natural and not entirely negative influences on the process of evaluating ideas. The trick, he says, is to pause and switch to deeply thinking through the idea (or estimate) you’re presented with.
This, again, is very much a note to my previous self(s).
Now, if you’ll excuse me, I need to get back to brainstorming and estimating this time machine, so I can deliver this advice to my former self.
You learn faster by falling down
Julia Galef, The Scout Mindset:
The “self-belief” model of motivation assumes that if you acknowledge the possibility of failure, then you’ll be too demoralized or afraid to take risks. In that model, people who believe that failure is unthinkable are the ones who try the hardest to succeed. Yet in practice, things often seem to work the other way around—accepting the possibility of failure in advance is liberating. It makes you bold, not timid. It’s what gives you the courage to take the risks required to achieve something big.
One of the most impactful ways I’ve adapted my thinking over the years, if only modestly successfully, has been to fear failure less and accept small downsides more easily. There’s way more world out there for those willing to trip or even fall now and then.
Building software is great
…even if some days working in corporations or under unwanted pressure makes it considerably less fun.
I also just don’t especially want to stop thinking about code. I don’t want to stop writing sentences in my own voice. I get a lot of joy from craft. It’s not a universal attitude toward work – from what I can tell, Gen Z is much more anti-work and ready to automate away their jobs – but I’ve always been thankful that programming is a craft that pays a good living wage. I’d be a luthier, photographer, or, who knows, if those jobs were as viable and available. But programming lets you write and think all day. Writing, both code and prose, for me, is both an end product and an end in itself. I don’t want to automate away the things that give me joy.
– Tom MacWright, The One About AI
What a great distillation of what makes working on software great! It’s an opportunity to think all day, earning a good wage doing so. Sometimes, to make something of value. Even more rarely, to make something of lasting value. Most of all, to be challenged every day. On the good days, it’s the future we were promised!
Use fewer algorithmic feeds, mostly search-based
Rob Walker via Austin Kleon, More search, less feed:
I’ve been thinking a lot about the search box versus the feed,” he said. “Let’s take Twitter. When I open it, everybody wants me to think about something.
A Ponzi ecosystem of hustle, reality distortion and projection, outright misinformation and propaganda. Plus, folks who just want to tell you the world is miserable. On the other hand, some funny takes and the occasional wholesome content. As goes social media, so goes humanity.
That bit of (attempted) gallows humor aside, the linked article has a good angle: search for more information and do actual research rather than letting algorithmic-people filter it towards you. Caveat: this may have been more useful when that post was written in 2019 than it is in the reality of junky internet search that is 2024.
Reminder: think your own thoughts.
Shell history is more valuable than shell customization
Thorsten Ball, Which command did you run 1731 days ago?:
Recipe for living a good life in the shell:
- Make sure it’s fast.
- Make sure its history can grow nearly infinitely and you can fuzzy-search through it.
A sage developer once told me he didn’t maintain dotfiles at all. He worked across so many machines and servers that keeping a shell configuration working across many systems was folly. Instead, the most important thing for him was making sure his shell history was synced across all those computers.
At first, I thought this was merely amusing. But the more I thought about it, the more I realized how deeply wise it is. Dotfiles, in the form of functions and aliases, abstract and ossify, the commands you think you’ll run frequently. But reverse searching through your total shell history provides you with access to commands you have run and lets you quickly edit/adapt them in-situ.
This makes the history file for your shell (possibly) the most significant file on your computer. Not just because it’s useful, but as a working memory and a reflection of your journey.
Masters of the space between notes
Virtuosity and speed are nice, in music and life. But you leave some space between the notes or slow things way down? Make some space in between the music for the music to happen? Now you’re cooking something good. For example:
- Aretha Franklin, the greatest of all time at making the most of the space between notes. As I’m fond of saying: there is no song Aretha Franklin could not perform slower and better than anyone else. Compare the tempo of Otis Redding’s Respect to Aretha’s version, both recorded in the same year.
- AC/DC, “Back In Black” or “Highway To Hell”. This is where I’d start rock and roll songwriting 101.
- D’Angelo, “Untitled (How Does It Feel?)”. Most of his work is an exemplar, he’s a master of making songs feel spacious.
- Joe Cocker, “With A Little Help From My Friends”. Take a jaunty, mid-tier Beatles song and draw it way out. This makes room for the huge, stacked vocals chorus. Suddenly, it’s right in the feels.
Related: the funk is the notes you don’t play.
Careers are non-linear
David Hoang, Should managers be technical?:
Career development looks more like unlocking attributes for a different subclass in a role-playing game, than picking a distinct class that can never change. It’s not a path. It’s a collection of skills and attributes focused on certain outcomes. Applying foundational skills is heavily contingent on your role and responsibility.
👍🏻 Careers, management or not, aren’t straight lines. The skills you need for your career aren’t a tree with one root. You can skip between various skill trees, if you like! You can go deep, but wide is an option too. The more you know, the more you can delegate!
You should check out David’s newsletter too.
A wise person from a Destiny 2 Slack:
I guess when you’re done with the main quest, you go back and do side quests
Careers (and lives) are non-linear. Occasionally their trajectories don’t make sense. They may even outright disappoint, in the moment. The silver lining is, they give us unique skills and experience that someone in the world wants if only we can find them. 📈
A tinker for your tinkers
David Crawshaw, jsonfile: a quick hack for tinkering. 114 lines, including comments. Nothing revolutionary here. Just a nicely written and well-thought-out “classic hack” for storing data in toy programs and prototypes.
I love a good shower-thought
Regarding Leó Szilárd, a theoretical physicist who first conceived of the possibilities of nuclear chain reactions, nuclear power, and nuclear weapons:
The bath was down the hall. “I remember that I went into my bath…around nine o’clock in the morning. There is no place as good to think as a bathtub. I would just soak there and think, and around twelve o’clock the maid would knock and say, ‘Are you all right, sir?’ Then I usually got out and made a few notes, dictated a few memoranda.”
— Richard Rhodes, Making of the Atomic Bomb
Shower thoughts, bath thoughts, lawn mowing thoughts. Great minds think alike, i.e., in similar repose.
Sneaker-net’ing URLs to personal devices in the year 2024
Suppose you’re on a computer provisioned by a corporate IT department. They’ve restricted the software you can install. On principle, you’ve decided that even signing in to websites on a personal account is nice to avoid, where possible.
Given those constraints, how do you transfer interesting web stuff you’ve come across from the sphere of corporate IT into your sphere of IT? Normal tools like bookmarking sites or iCloud sharing are out. Emailing it to yourself is also out, too many steps and too janky.
What I came up with is:
- Find a bookmarklet that will convert the current location’s URL to a QR code. This Codepen worked for me, but I bet there are others!
- Hold my personal phone up to the monitor like a weird person and scan said code
- Now the location is on my phone and I can do as I like
Rails generators reminders
First: use them! Most frameworks have a project boilerplate and that’s it. Rails’ ability to quickly lay down a conventional resource, model, or anything else is a productivity booster. Use it!
Second: experiment with the commands before you run them. Try Harrison Broadbent’s, RAILSG · Ruby on Rails Generator Reference and Command Builder:
RAILSG is a collection of Ruby on Rails generator command references, and command builders.
Third, write your own. When your app gets traction, you’ll probably invent a couple of conventions of your own. Use generators to quickly write new code consistently. Garrett Dimon has become the expert on this, Creating Custom Rails Generators:
Rails generators can help remove significant friction from the process of spinning up new ideas, but you don’t have to limit yourself to the included generators. You can also create custom generators as long as you’re familiar with the available APIs and know where the speed bumps are.
And check out his forthcoming book on the same topic!
Notes on focus and attention
Focus and attention are inputs to producing excellent things. All the talent in the world won't get me far if I’m not focused or attention isn't working in my favor. Beyond my skills at whatever I’m making (software, teams, products, essays, etc.), I need attention and focus.
In other words: I want to make what’s important to me: teams, writing, and software. I need focus to decide what to write/build with excellence. I require attention to sustain that focus.
Henrik Karlsson on multi-armed bandits and focus. First, explore to find what I might want to focus on:
The trick is to collide your mental model with the outside world as often as possible. This is what exploring does. You think you know the distribution of payoffs of the slot machines, but you try something new. You discover that you were wrong. You update your model.
This is a life design thing. Get out in reality, seek novelty, try plenty of things, “touch grass” with the world outside my mental model, the more the better. Experience a bunch of things, surround myself with intriguing, intense, or impactful people.
Surely things could have gone differently for me if I’d done more exploring when I was twenty-something. But, much less of the world was available to me then. More important that I figure out the world needs exploring now and then and that I can explore even with the responsibilities of my forty-something years.
After the exploration, “exploit” what I’ve found. Choose a few things and go deep on them. Things which resonate with me and make me think “this is a thing that I can do or invest my time and effort in”. I start doing it and that is focus.
But, really choose those “pillars” of focus. If I pick seven things, I haven’t really chosen. Pick a few of these things, leave several on the cutting floor. Don't construct some wild productivity system where I can spread my energy out over the seven days of the week, over seven areas of alleged focus and get nothing done (except possibly create a wobbly ideology and maybe a video course selling it 🌶️).
May I recommend the rule of three? It’s great.
Focus-and-exploit lets the brain work the problem even when offline, away from keyboards and tools. Pro-tip: mundane chores are an excellent tool here. e.g. take a shower, mow the lawn, go for a walk.
Why would focus compound? Part of it is time. If you care about less, you spend more time doing what you care about most. Also, you are always nonconsciously processing the thing you focus on. So cutting priorities means you work even when it looks like you’re not working. These days, I’ll spend the afternoon playing with the kids, doing the dishes, repairing the houses—being busy in a mind-clearing way. Then, when I sit down to write the next morning, I can type 700 words without thinking. The ideas have been churning in my head, just below the surface of conscious thought, and come fully formed.
If you're really focused, your brain is always working on those three pillars. It's thinking about whatever it is you're doing, turning over problems, processing that information, compiling it, organizing it while you sleep, and while you do mundane things.
Austin Kleon suggested a similar approach. When he runs out of writing/creative energy, he cleans his pool. Basically, he takes his thinking mind out of the loop. Lets his physical body do something routine and mundane to invite the creative mind to return. (Sorry, I can’t remember which Austin Kleon thing I saw this as a comment on. 🤦🏻♂️)
If you like this explore and exploit stuff, you’re going to really dig Kent Beck’s ideas about explore, expand, exploit.
On the other hand, allowing ideas into my sphere of thought from social feeds designed to put me in a bad mood or get me to buy stuff breaks the focus. I need attention.
Craig Mod, How I Got My Attention Back:
If I tell people I went offline for a month, it’s like telling them I set up camp on Mars. It hints of apostasy, paganism. Tribes seem to find pleasure in knowing all members suffer equally. But, really, is the situation so dire that we can’t wrangle a little more control? We’ve opted into this baffling baseline of infinite information suck, always-availability. Nobody held a gun to our head. We put our own mouths on the spigot every single day.
But it’s so delicious. That spigot goo — buoyed by pull-to-refreshes and pings and wily dots. Giving up attention, so seductive.
I can’t focus if my attention has me thinking of “5 amazing one-takes by Scorsese” or “INSANE Porsche 911 builds”. 🧠🫠 Too much social media feed is an inescapable gravity well of wandering thoughts. Modern, programmed attention makes it difficult to think our thoughts or sustain them.
However, disconnection is a luxury, and a bit ascetic. The real tactic requires figuring out how to thread the needle, striking a balance between connectedness and Waldenponding.
So I need guidelines, even when discipline wanes:
The internet goes off before bed. The internet doesn’t return until after lunch. That’s it. Reasonable rules. I’m too weak to handle the unreasonable.
What works for me:
- Remove the glaring offenders in my “attention” life. Mute, unfollow, etc.
- Set coarse rules that protect my time to focus. e.g., I take the first hour of my day for a writing routine, while my energy is high and the world is mostly asleep instead of eager to distract me.
- Remove decision-making. I listen to the same album on repeat during my writing session (currently, A Love Supreme). I work through the same five-item to-do list every time to get my energy going.
Attention and energy are finite. Don’t worry when one or both dwindle. At the end of the day, after numerous meetings, the weekend after a long week. That’s when it’s basically okay to allow a little temptation into your day. Don’t succumb to hustle culture! I encourage you to take a break from crushing it now and then.
Excellence. This bit started with trying to figure out how focus and attention generate excellent work. In particular, I need more than acumen and experience to make exceptional things, teams, organizations. I need to choose the right thing to focus on. But, tying up excellence with identity can cause misery or generate path dependence. I require honesty with myself when I’m doing great work and when I’m going through the motions to keep the work going. Focus and attention are preconditions for making excellence.
I Swear, I Really Wanted to Make a 'Rap' Album but This Is Literally the Way the Wind Blew Me This Time – Andre 3000
It’s all works in progress. Many posts are rough drafts I put out there to keep myself going. I have no idea which ones will stick and which ones will bounce. Plenty of drafts and following the way the wind blows me.
I know that if I let my attention wander, I will put less out there. Ergo attention. And I know that if I try to make several kinds of things, I will put less out there. Ergo focus.
Teams and organizations have focus and attention, too. Builders — developers, designers, etc. — focus on their slice of a problem. Teams focus on the problem as a whole. Organizations focus on solving problems that generate an impact on the metrics or goals they’re chasing.
Priorities are the attention of a team or organization. The negative space in those priorities reflects problems and impacts the group will say “no, thanks” to. That suggests a tidy way to think of personal and group attention; we should say “no, thanks” to attention-sinks which aren’t aligned with our personal goals and priorities. “No, thanks” to algorithmic feeds when our goal is to write, for example.
(Time to land this thing.)
Focus is a capacity to get stuff done. To choose a problem and put many hours and days into it. A sense of purpose, if that’s your thing.
Attention is deciding what the mind is thinking about. Attention can complement focus, or derail it. It’s how minutes turn to hours, in good ways (or bad).
Shallow focus and attention see us bouncing from one idea to another. Often, without our intention to intervene (i.e., dopamine hits). The good focus and attention turns minutes into hours of engagement and days of interesting work into the weeks and months of a notable career or legacy of work.