A key reason to work branchlessly, even if you still gateway an actual deployment: the more people who are using your code, the more *ways* they are using it, which often surfaces bugs more earlier than any testing regime.
When we're all pushing to head, we're all using all of our code during development. Because people are people, they use your app in ways that are different than you do, and different from your best coding pal, too.
My team recently got two new users to bang on the system. They're "friends & family": it's an internal project, and they're part of the team that will eventually use it everyday twice a day to do mission-critical work.
The bugs are flowing like cheap wine at a grad student party. And it's *great*! The complexity of modern software means lots of variant paths and cases. Having people coming at your code from different places is incredibly helpful, especially in code you couldn't microtest.
Sounds scary, I know, but it's really not. The cost of never making a mistake is very often never moving at all, so we're going to make mistakes. The hard part isn't fixing mistakes, it's finding them. Having real users really using is pure gold.
An absolutely central requirement here: *encourage* *your* *bug* *finders*. Make sure they know how much they're helping you.
To encourage them, do these things: 1) actually thank them. 2) prioritize their problems, 3) attack with vim and vigor. 4) share the developing story, especially the replication problem (if there is one, and there often is). 5) tell them when you've fixed it.
I know a lot of teams put bug-work at the bottom of their queue, for after they've made their silly "sprint commitment". This is very often a terrible mistake, so don't default to it. Default to bug-fix-on-top.
When you do lean to deferring, get the bug-finder involved in that dialog. Even defects I'm not going to fix right now are important and valuable to me, and that's one way to show that.
We're talking about free expert bug-finders here. That's an incredibly scarce resource, and we want to do everything in our power to conserve it when we get it.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
In today's episode of Stupid Geek Tricks, I just basically invented Smalltalk using Kotlin.
Before you get angry, please know that I don't approve of this. I don't approve of a lotta shit I do.
120 lines of code. A marker interface for messages, a one-API interface for objects. Any class can handle any message it chooses to. Didn't bother with doesNotUnderstand, but it'd be an easy add.
Conceptually, it's straightforward: the Interactor wraps a Thing to give it a jump table that switches on the message subclass. It calls the Thing's register() to fill out that jump table. Any given Thing class can register any given Message+Handler pair.
Anyway, all and sundry, "geepawhill" is not a common moniker. Find me that way. I'm on mastodon, but I also have a whole website, geepawhill.org.
Backstory: "geepaw" means "grandfather", and now, to look at me, it seems obvious. Of *course* this bitter old fucker is a grandfather, just look at him. But "GeePaw" is actually a name I've had for over 30 years.
See, my wife is a little older than me, and when we first got to the bouncy-bouncy, her kids were already almost grown. I was present in the hospital room when my grandson was born. (It was gross.) And I became a grandfather at the ripe old age of 31.
Please, I'm sorry, please, remember through all this Elon-is-evil-and-stupid shit, remember, please, I'm sorry, please.
This ass-clown *bought* this place where you made community, he didn't steal it. And he *bought* it from the people who sold it to him.
Baby, you were so sure you were the customer, all along, and so mad to discover you were product, all along.
*Fucking* mastodon. There's servers. There's CW's, and bitchy people on your server telling you to CW your random rage-tweets. There's no funded algo stuffing your timeline, just your server's locals and your follows and their follows.
I once did a bake-off. It was in the early days with spotify, and spotify is the king-hell site for bake-offs. Type in "nessun dorma" and get 500 takes.
So I listened to maybe 200 or so, and I put together a CD of about 20 of them.
And one night -- yes there were substances involved -- I played it for my wife, and we listened to all 20 takes, and we chose our top 3. No commentary. We just listened, and chose our favorites.
Late at night, when no one's around, or they're all abed, or I'm drunk and I don't care, I sing this to the trees outside my house.
My range is very narrow, and it straddles right there, alto and tenor, and I'm old, a practioner of many vices, across many decades. But I sing it, and it fits in my range, and singing it makes me feel good.