« Scott Nonnenberg


My 2016 Mantras

A few people have read my systems blog posts and then said to me “how do you do it? I could never do all that.” I understand - sometimes my monthly reviews seem overwhelming, even to me!

The answer? I didn’t put everything in place at once. Pieces came together, bit by bit, slowly evolving to the complexity you see today.

So, where do you start? May I suggest a set of mantras?

A Happy Project

It was late December 2008 when I first put together a set of mantras for myself. I had been reading Gretchen Rubin’s Happiness Project blog (which later became a book), and some of its ideas really resonated with me.

How could I hold on to them outside of frequently re-reading her blog posts? I needed something I could have with me, hold on to, have in my pocket or wallet. My first list was born!

Since then I generally tune them at the beginning of the year based on what I feel like I need. I find that I can usually identify a few tendencies I need to counteract. And so, I present to you, my 2016 mantras, in four categories…

Avoiding restlessness

“Be present”

“Appreciate the status quo and desire change”

“Contentment”

“Gratitude”

I’m not sure where it comes from, but my natural tendency is always to be thinking about the next thing. If I’m washing the dishes, I’m thinking about the next several tasks I’ll do after that. Thich Nhat Hanh’s Miracle of Mindfulness says to focus on just the dishes as you’re doing the dishes. Focus on the dishes, your breathing, and leave a half-smile on your face.

Similarly, I’ve noticed another negative mental shorthand I use: labeling everything as either acceptable or unacceptable. Looking through a codebase: either code is clean, DRY, SOLID, etc., or not. The problem is that there’s usually at least something wrong, which means that the whole codebase is now unacceptable. And then I feel uncomfortable until I can do something about it. I’ve been working on going beyond one or the other, holding two ideas in my head at once: fully accept the current situation as it is, and desire change.

Dealing with others

“Compassion and understanding”

“Kindness over being right”

“Be supportive, reinforce the positive”

“No good or bad, just consequences”

It’s easy to think of others as a nameless other, without their own potentially vastly different history and context. The classic scenario: that person who just cut you off was actually on their way to the hospital, bleeding profusely inside their car. Compassion leads us to understand others better, which leads to more compassion. It’s a powerful loop. Funny enough, Ender learns this in Ender’s Game: “In the moment when I truly understand my enemy, understand him well enough to defeat him, then in that very moment I also love him.”

That binary acceptable/unacceptable mindset, when applied to others, leads to bad things. The tech industry in particular prides itself on arguments leading to the correct solution. Having spent many years in the industry, I thought I could use a reminder that kindness was important. Similarly, because I’m always focused on what needs effort next, what is unacceptable, I don’t spend as much time as I should celebrating what has gone well.

The fourth mantra attempts to put guilt in its proper place. The last time I got a parking ticket, I felt really bad about it, as if I was a bad person. Chalk it up to my religious upbringing, I guess. It helps me to think only about the consequences (local and global) of the action.

Learning to be a little less regimented

“Relax”

“Take risks and fail”

“Plan for flexibility, enjoy the process”

“Fun and leisure are important”

There’s a reason I titled my 2013 talk Taking Javascript Seriously. I take things seriously. A little too seriously. It can result in good things (projects on time, high quality code, getting the details right), but it’s closely related to stress. I’m working on relaxing a little bit, taking risks and sometimes getting things wrong. It helps if I build these attitudes into my plans from the start, then the ‘failures’ can become ‘experiments.’

Leisure. This is an interesting one for small business owners of all kinds - what is personal time and what is time spent on the business? Especially those of us in the tech space. Not only is tech moving extremely fast, with new libraries and techniques appearing every day, playing with and learning tech is something I intrinsically enjoy. I’ve explicitly reserved time for pure hobbies - not programming.

Managing my time

“Define enough”

“Do fewer things better”

“80/20 means never complete, never perfect”

“Variety, in food and experience”

Without defining what ‘enough’ means to you, you will never be satisfied. Yes, you have high standards and big goals. But if you frequently end the day a little dissatisfied because you should have gotten more done, consider defining what ‘enough’ for the day will be. Maybe just start with one thing, since you want to focus on it and do it really well. At the same time, don’t pursue perfection. It’s a dynamic balance, between these first three.

Lastly, I tend to get into ruts. Rhythm is comfortable and often more efficient, but it’s not a good long-term plan. I explicitly plan to pursue new recipes, new restaurants, new events, new people, new books, new music, new ideas, new run routes, new exercises, etc.

A little bit of tech

That’s quite a few mantras! I make it more manageable for myself with some technology: every morning I use a little shell script to generate a random mantra for the day. It looks like this:

MANTRAS=mantras.txt
COUNT=`wc -l < ${MANTRAS}`  # use < to avoid filename in output
SELECTED=`expr ${RANDOM} % ${COUNT} + 1`
sed -n "${SELECTED}p" ${MANTRAS}

Once I’ve generated the mantra, I write a sentence or two inspired by it to ensure that I fully engage. I’ve noticed that without that step, I can end up just superficially scanning the words. I also keep the entire list in a note on my phone for a quick occasional full-list scan.

What are your mantras?

Maybe some of these mantras could apply to you, but hopefully I’ve got you thinking a little more creatively about some of your tendencies. I’d love to hear what you come up with for yourself!

I won't share your email with anyone. See previous emails.

It's me!
Hi, I'm Scott. I've written both server and client code in many languages for many employers and clients. I've also got a bit of an unusual perspective, since I've spent time in roles outside the pure 'software developer.'

NEXT:

Star Wars Cards! 2016 Mar 10

It might surprise you to hear that I was obsessed with Star Wars when I was young. But it’ll probably surprise you more that in 2015 I delved into the world of Ebay collectibles and rebuilt my... Read more »

PREVIOUS:

P for Postgres (NERP stack part 4) 2016 Feb 22

Welcome to the fourth and final installment in my series (Part 1, Part 2, Part 3) delving into a new friendly (not MEAN), and perhaps even dazzling (but not a LAMP) development stack: NERP. Today we... Read more »