Onboard new teammates with a 90-day plan
My new boss had written up a 90-day plan for me the week before I started. This was perfect timing. I was already starting to put a bow on my current work and my focus was wandering. Now my brain could start working on ideas for the next gig. Plus, I had a much better idea of what I’d start working on and how to make an impact than I did coming out of my interviews. It was one of the better emails I’ve ever received.
Use factories to create jumbo object graphs
The entire time I’ve been using FactoryBot, several years at this point, I’ve used it one factory at a time:
company = create(:company, name: "Acme, Inc.")
alice = create(:user, name: "Alice Smith")
posts = create_list(:post, 3, user: alice)
Do you see the mistake I make all the dang time? Spoiler alert, I forgot the company relation on Alice’s user, so she is either orphaned (unfortunate) or created on an entirely unrelated company. That’s gonna make my test fail in weird ways!
Lately, I’ve been trying something different: create the whole object graph I want to test on in one fell swoop:
company = create(
:company,
name: "Acme, Inc",
user: build(
:user,
name: "Alice Smith",
posts: build_list(:post, 3)
)
)
The entire intent of the test scenario is made clear right here. And, the error I so often make is solved structurally rather than by vigilance.
Granted, that’s pretty chunky and way more lines. I feel like it’s a worthy tradeoff!
When I need to reference the models created by my jumbo object graph, I use RSpec let
and ActiveRecord finders with a mind towards consistently finding the right thing:
let(:company) do
create(...) # the whole company bit from above
end
let(:alice) { company.users.find_by(name: "Alice Smith") }
let(:posts) { alice.posts }
How to succeed at blogging by not even trying too hard
“Perfect is the enemy of shipped” - Simon Willison
15 rules for blogging - Matt Webb
Lists, emoji, and consistency are totally working for Duncan Davidson
Austin Kleon’s list of perfect albums: #perfect31. Non-compilation albums, no songs worth skipping. Discovering these albums is one of my favorite things about listening to music. Blood Sugar Sex Magik was the first one I found myself, when I was sixteen. Blew my mind.
Matt Webb on Asimov’s Foundation, and what’s unique about science fiction:
Like any scientific endeavour it starts as a phenomenological exercise: what’s happening? How does this thing behave in various circumstances? Then beginning to probe: what are its limits? How do we break the premise? And finally consequences… what does it mean for this phenomenon to be wielded deliberately; what are the second order effects when others can see the effects …and so on. Dynamical systems are all the same; the reader can readily draw parallels and discover new truths.
Writing is thinking. Sci-fi, at its best, is thinking about an idea taken to its end. Most sci-fi is a miss, but every once in a while it describes upcoming realities with absolute clarity, e.g. Neuromancer.
Let me tell you about my theories on art and fishing.
This Ernest Hemingway story is definitely about fishing.
On the other hand, I have a theory that most Billy Joel songs are either a) definitely about a fisherman or b) could exist in one world where the protagonist is a fishing professional. Kinda the same thing with Bruce Springsteen song; the whole canon is one working-class world.
Failure = entropy due to adding humans
Here’s a real dinger of a sentence from Michael Lopp’s latest, The Art of Leadership: Small Things, Done Well:
Failure is created by the increasing entropy of a growing number of humans running around the building, good intentions in hand, breaking things.
Growing an organization requires rethinking trust, coordination, and collaboration. The breakpoints where things go from working pretty well to an absolute shamble come faster than we think. They don’t even occur at nice, round numbers like base–2 or base–10 orders of magnitude.
Figuring out how this works for teams, companies, social networks, and whole countries feels like one of the big unsolved problems of the knowledge/attention-era.
iOS feature request: write-only interfaces & "smoke-break"
Two iOS wishlist items:
- Any app that can send & receive messages (emails, direct messages, photos, chats, tweets, etc.) should require a narrow, write-only affordance for sending a one-off message without distracting yourself in all the engagement loops.
- “Smoke-break”, an extension of the current screen time affordance. Only allow yourself access to e.g. Facebook, Twitter, TikTok, etc. for seven minutes of the hour. The easy part is integrating this into the operating system. The hard and most impactful part is keeping the Smoke-break name and all its negative connotations.
The best way to achieve these outcomes now is to delete the app from your device and only dip into the web interface when you absolutely must. That’s contrary to Apple’s goals. It’s not bad for the web platform, though🤔.
In short: nerf the engagement loops at the operating system level.
Determined Disney fan recreates the original Disneyland version of the Alice In Wonderland ride-through in 3D. Same, but for Mr. Toad, one of my top 3 Disneyland favorites.
Writing is thinking, so write about code
Writing clarifies thinking. Therefore, writing design docs clarifies one’s thinking about code. Design Docs at Google and an example/meta design doc from the same author are great places to start!
I found that writing prose until I run out of clarity and then switching to proof-of-concept code is even better. The constraint of making an ambitious design work with a minimal change-set is a nice way to work for a day or so.
Lots of features or fixes don’t require in-depth thinking to get started. But when they do, sorting out the ideas and tradeoffs in writing helps a lot.
Write until I run out of ideas, flesh those ideas out, write about the nuances I found. It’s a nice feedback loop!
Bradford Fults on feedback and human bias
A Better Approach to 360° Feedback: Bradford Fults shares ways to route around fallible human memory and gather useful information when it comes to review season.
Humans also have a recency bias and suffer from long-term memory distortions that change to fit their current opinions of other people. This means that “observations” from months ago often aren’t so much observations as they are current opinions and emotions repackaged as fixed stories about the past. Most people don’t even intend to distort the truth like this: it’s just the way the human brain works.
Instead, ask questions in the context of how the reviewer works with the reviewed, particularly in the last 90 days or so. Paraphrasing Janet Jackson: “What Have You Done For Me Lately?”
In my too-frequent skimming of German sports cars for sale near me, I came across a BMW 135i with a black exterior and interior. It’s a tempting car, but I’m afraid it says “I listen to two kinds of music: Kraftwerk on cassette and Kraftwerk on vinyl”.👴
1992 Lancia Delta Integrale Martini 5 Evoluzione, Bring a Trailer fodder for the day. I can’t resist Martini Stripes. Or bright yellow, extremely 80s instruments.
Watched Jim Gaffigan’s The Pale Tourist. I’m surprised one can dedicate an hour-long set to Canada alone, but he makes it work. Gaffigan’s not the edgiest comedian or most insightful orator, but he is delightful. And delightful is mostly what I want out of entertainment right now! Recommended.
Unlocking value with durable teams, Anna Shipman:
If you build teams around projects, this means that there is a ramp-up period while the team go through the early stages, and if the team is not together for long enough, it’s possible they won’t spend very long (if any time at all) in the performing stage. This happens if new initiatives come in and the team is disbanded to form other, new teams.
It takes a lot of effort to form a team; you need to find the right balance of skills, someone to tech lead, delivery manage and be the product owner; you need to find engineers, customer researchers, product designers and possibly business analysts and you need to make sure that the work they are currently doing can be finished or stopped.
Specialization and matrix’d teams seem inevitable as an organization grows. I suspect that a cross-functional, self-sufficient team that has time together and knows how to work together will almost always outperform teams of specialists spread across multiple projects and priorities.
h/t Simon Willison
I’d never seriously listened to Mazzy Star before today. Had really only heard “Fade Into You”. Now I’ve listened to all four albums and they’re a) pretty good! and b) kinda ahead of their time?
I’m a little surprised that something so straight-forward and sounding very much of the nineties can predate music I associate more with the “indie sounds” of the 2000s and 2010s. Maybe I’ve just got my history wrong!