Coding with Jesse

Empower your clients to make changes

A woman fishing

When a client asks me to make a change to a website, I have two choices. I can go and make the change. Or, I can set things up so that the client can make the change themselves.

It's not always obvious which of these two will be a better use of my time. If it's a one-time change that will never need to happen again, of course it's better if I go make the change. But sometimes it's obviously something that will need to be changed again and again.

Sometimes the change is so small that it's a quick copy & paste, so there's almost no benefit to adding a content management system. Often, the changes can be more complex, and require a lot of back-and-forth communication, asking for clarification, testing, reviewing, etc. I have a pretty low tolerance for this before I insist on building a tool for my client instead.

Pretty much every system should have some kind of administrative login area, where the client can go in and access these admin-only tools. It might be as complex as a content management system, where they can create whole new pages, and change all the text in the system. It might be where they manage other users, or get the answers to questions they might have otherwise asked me for.

In one case, I had built a system that had a complex set of rules, basically if/then statements, and it was evolving rapidly. Every week I was being asked to make changes to the logic, and also asked to remind the client about what it was already doing. So, in a few days, I designed and developed a Domain-Specific Language (DSL) that allowed all of the logic to be captured in a single text file. It wasn't a programming language, because my client isn't a programmer. Rather, I designed it to be intuitive for him, so it would be easy for him to read, edit and publish changes to the logic in the system. Many years later, he is still actively working with this same DSL.

I have another client who is more technical, and has some experience with basic HTML and CSS. They wanted to make broad changes to the design of the site, and to the text that was hardcoded throughout. I gave them two options: either they could provide me with a long list of these changes, or I could bring them in to collaborate on the code. They had no experience with git, GitHub, Svelte, or even with using an IDE. I thought it was worth a try, so I sent them a long list of instructions for installing all the software they'd need. I sent them a few YouTube videos about using VS Code with Git, and had them create a GitHub account. I explained how the site was architected, and the basics of Svelte components.

Within a week, they were making changes to CSS and text and committing and pushing changes to GitHub! It was so exciting! Just looking at the long git diff, there were literally hundreds of changes. If they had tried to write out those changes in a Google doc, it would have required dozens of screenshots. It honestly would have been painful for me to carefully go through and implement all of the tiny changes. And chances are, I would have screwed up more than once, and they would have had to make new screenshots. They would've felt like a bother to ask me to increase the font size by 5%, or change a border to a different shade of grey. More than likely, they would have just accepted my poor attempt as "good enough" and said thanks.

Instead, they are now empowered to go in and make changes themselves whenever they want. As the site evolves, over the coming decade, they'll have the confidence to go in and make all the updates they need. They were even able to use AI to generate a snippet of Svelte code in order to add a second button to the page!

No, I'm not worried about my job going away. I'm happy to be focusing on the hard things, and empower my clients to do as much as they can on their own. They are delighted to not have to "bother me" for small changes when I'm working on bigger features for them. They're able to save money and time. It's truly a win-win.

Another client had a very complex system that was built by a third-party vendor and written in Python. They brought me in to help simplify the system. In this case, they actually did have developers on the team, but the developers didn't have much Python experience. I actually rewrote the entire system in TypeScript. It was a fantastic opportunity to clean things up and simplify. I wrote it in a way that it would be intuitive to them, so the training only took an hour or two. I was delighted to see the developers confidently making changes to the system themselves for the first time ever, and with ease.

A Chinese proverb says, "Give a man a fish, and you feed him for a day. Teach a man to fish, and you feed him for a lifetime." I say, "Make a change for a client, they'll be happy for a day. Empower your clients to make changes themselves, they'll be happy for a lifetime."

Published on December 10th, 2024. © Jesse Skinner

Staying off social media

Yesterday, I tried staying off social media and just read a book, watched a bit of MasterClass, and listened to music. It was a quieter day in my mind.

Normally, I would be scrolling through Mastodon or Instagram. I'd have a different emotional reaction every few seconds, from delight to disgust and everything in between. It's tiring, and I've been noticing the impact in my day-to-day life.

You may well be one to enjoy the occasional doomscroll, and I'm not judging you for it, or suggesting I'm better because I read a book. That's not what this post is about.

The point is that attention is a precious and highly valuable currency. It's called "The Attention Economy" after all. I'm suggesting that you be aware of how you're spending your attention, and what you're getting in return.

I know there's a cost to having my thoughts and emotions going along with these videos, or toots. To free myself from those costs, my awareness returns to my immediate surroundings. I start thinking about and putting energy into The Real World.

The downside is that I feel a disconnect from the rest of the world. There's a lot upsetting about the planet right now - genocide, ecocide, fascism, death, suffering, destruction. But right here, right now, it's a quiet Sunday and a perfect day for building a snowman with my son. We have a baby on the way, and family coming to visit, and Christmas coming up quickly. It's a lovely time in our lives.

So to add in stress and tragedy and worry and sadness, it doesn't feel right. My son doesn't need all of that energy coming into our home. There's absolutely nothing I can do about the world's problems.

Maybe I can write a Letter To The Editor, or to my member of parliament, about my feelings in regards to a war (or whatever). It's not going to make much of a dent.

Ok, maybe I can organise or join a protest. But then I have to be deliberate about my time and energy. But hey, an hour at a protest is surely more useful than an hour reading articles or watching the news.

If I just want to understand a geopolitical situation, I'm better off reading books about history. Chances are, I'm not actually that interested. I just feel emotionally drawn to look at videos of cities being destroyed, to feel my heart fill with outrage and sadness for these orphaned children.

There's a lot of news every day, but rarely is it of any significance. It's usually something mundane, and almost never about something important like the end of a war. And even when there is big international news, nothing changes for me. It's still a quiet Sunday perfect for building a snowman.

Most online content isn't at all relevant to me. It's outrage about one thing or another, politics from a country I don't live in, or something personal that happened to someone else, or cat videos. No disrespect to cat videos. Everyone loves cat videos. But they're forgettable. And when you spend hours consuming forgettable media, your life becomes forgettable.

There can be some discomfort in stopping - withdrawal symptoms - as my body craves the dopamine, adrenaline, ups and downs of this sort of content. To stop feels like boredom. But that's just it. Boredom is a returning to the mundane, the every day predictability of the here and now. This boredom is an energy in itself, a potentiality, a seeking that can be focused on the tangible instead of the ephemeral. I can go do the dishes while listening to music instead of scrolling. Or read a book. I can choose what to do with my attention instead of suckling at the teat of The Algorithm. I can write, or do my taxes, or go for a walk. Or build a snowman.

Published on December 8th, 2024. © Jesse Skinner