Some very predictable reflections and expressions of gratitude on turning sixty years of age.

First observation: I don’t feel that old. Quelle surprise, right?

I seem to be blessed with better health and fitness at this age than many of my peers, and I credit most of that to my active lifestyle, especially my cycling.

In my experience, happiness comes from surprisingly basic, mundane pleasures: wind and sunshine, being outside in nature, physical activities like cycling and kyūdō that keep me in my body, delicious food, the companionship of other people and pets, and the comfort and security of a stable home.

Despite having had my share of wealth, accomplishments, and experiences, I don’t think those are a reliable foundation for a satisfying life. They are pleasant ways to assuage the ego, but one’s ego is a completely untrustworthy guide. I’ve been most satisfied when I’ve been of service to others, whether I found that through nurturing aspiring writers, writing software to improve medical outcomes, raising money for cancer research, or helping others find the transformative insights that come with a productive meditation practice.

I’ve been very fortunate to enjoy a life that was mostly free of struggle, trauma, illness, and pain. So many things came easily to me. My life has been blessed, relatively easeful, successful, and enjoyable. I’ll retire with a heart absolutely overflowing with gratitude and treasured memories.

There’s very little I would change. I have surprisingly few regrets and little shame. I should have done a better job with dental hygiene and my dietary choices. But my only source of deep regret is my relationships. Relationships are hard, and I’ve caused more hurt through selfishness or unskillfulness than I would have liked. If you were on the receiving end of any of that, please accept my sincerest apologies.

For whatever role you have played in my life, thank you. I’m especially grateful to anyone who chose to keep me company for an extended duration of time. And my deepest thanks and recognition to Inna, my life companion for 25 years and counting.

Be well, all!

With the perspective that comes from thirty years in tech, I’ve gained quite an appreciation for the basic absurdity of developing software.

A quick look in the rear-view tells a revealing story.

Of the volumes of software I’ve written, perhaps a quarter of it was never even used. And nearly all of the code that did make it into production was gone and deleted within five years of its creation. Heck, half of the companies I worked for disappeared within eight years! And nearly every programming environment I ever learned was obsolete within ten.

While everyone talks about how rapidly technology evolves, it’s rare that anyone thinks through the implications. The software that I was quite well paid to craft has been astonishingly ephemeral, and the development tools that I’ve used have had a useful lifetime somewhat shorter than my last pair of socks.

Needless to say, this isn’t just my problem; everyone in our industry faces the same underlying challenge. Nothing lasts forever, but in tech, everything we learn, use, or create should come with a “use-by” date of fewer than 60 months.

When you were young, you probably got the impression that your career would be a linear journey from Point A (your first job) to Point B (a comfortable retirement).

In the tech field, it’s more like trying to steer a sailboat at sea. You can point yourself toward a destination, but the water’s hidden currents and tides will pull you in different directions. The wind, waves, and other people’s passage will also push you off course. Never mind that every employer and project asks you to use their own boat with completely different rigging! And sometimes, either by choice or necessity, your destination changes mid-stream. About the time you reach the middle your career, you realize that your industry and career trajectory are far more fluid than you foresaw when you first set out.

While all this change and dynamism makes it hard to make progress in any one direction for long, if you develop the insight and skills to respond to these changes wisely, you can still get to a happy destination, even if it might look nothing like what you imagined when you got your first offer letter.

What follows are a list of observations I’ve made over the course of my shifting career: some often-overlooked implications of trying to navigate my way through such a turbulent industry. I hope they are of value to you on your own journey.

First, let’s look at the implications the ephemeral nature of software has on companies as a whole.

As soon as a development team delivers a software system, companies and product managers need to immediately start planning for its replacement. These days, you have two options: either factor a perpetual enhancement and revision process into your product strategy, or plan to simply throw away and reinvent your system at great cost a little further down the road. The traditional concept of implementing a system once and then scaling back for a lengthy “maintenance phase” died about the same time as pay phones and busy signals. It’s a nice old-fashioned idea that will lead you directly toward your Chapter 7 filing.

Whether you are a product manager or a development lead, you must accept and somehow communicate to your development team that time to market is infinitely more important than the elegance or academic correctness of their code. Bug-free code does not exist, and companies are much more rigorous about following the old 80/20 rule. If you’re truly following the Agile model (rather than pretending, as so many companies do), your top priority is to ship the beta: get an initial offering with a minimal feature set out into the market, and then react rapidly to customer feedback. These days, software that is “good enough” is almost always good enough.

When I first became an engineer, my older brother offered me one of the most valuable insights of my entire career: never hire technical staff for the knowledge they already have; instead, evaluate candidates primarily on their ability to learn new skills quickly and effectively. Five years down the road, the knowledge they walked in the door with will have no value; their usefulness as employees will be determined by how easily and quickly they can become productive with new languages and tools. Furthermore, the optimal way to retain the best technical talent is to support their desire to keep up with current and emerging technologies.

Now let’s talk about a few things that apply both to individuals as well as companies.

Whether you’re an individual managing your to-do list or a product manager specifying features and enhancements, you’re always going to have more tasks than time and resources to complete them. Therefore, always work on the highest value item. Constantly ask yourself whether you and your team are working on the most strategically valuable task. Always attach yourself to the tasks that truly have the most impact, and don’t waste your time on anything else.

Risk is uncomfortable. Risk is a threat to one’s company and one’s career. And yet risk is an inherent part of every single thing we do. While moving cautiously forward might seem like the most comfortable and risk-free approach, it really only defers that pain, because there is a huge hidden risk associated with not moving forward assertively enough. Both corporations and individuals must learn how to embrace risk, tolerate its associated discomfort, and recover from failures.

Software engineers and managers often have a grand dream of software reuse: the idea that if you’re building a program to handle Task A, you should invest some extra time into making it generic enough to handle anticipated future Tasks B and C. In the real world, B and C might never be needed, and their requirements are likely to change between now and then anyways. While it goes against our sensibilities, it is often quicker and easier to just duplicate and customize old code to handle new tasks. If the additional cost of maintaining multiple versions becomes sufficient, only then should you invest the resources to refactor it into a single generalized solution. That might sound like blasphemy, but in thirty years I’ve rarely seen a compelling example where software reuse saved money in the long run.

Finally, let’s talk about how we as individual employees should respond to the fact that our work has such a surprisingly short lifetime.

On a purely tactical level, as soon as you finish a project, save some screenshots and code samples for your portfolio. Six months later, those sites you built will have changed significantly, if they survive at all.

While everyone wants to be the best at what they do, building deep expertise in any tool or language no longer makes sense, because most languages are supplanted in a few short years. Rather than becoming an expert at one thing, a better strategy is to become the long-derided jack of all trades: someone who has a wide breadth of knowledge, an understanding of the general principles that apply to all environments, and the ability to adapt to changing business needs and a changing job market. Cultivate your passion for perpetually learning new tools, and your ability to be comfortable doing so under stress and time pressure.

In terms of getting your resume noticed, what you have done is not always as significant as who you worked for. Sites and projects are ephemeral, but major companies last longer and will catch the reader’s eye. Working with companies that are household names will—for the rest of your life—help you get that first phone screen.

My advice to all individuals is to focus on saving cash when you’re working, so that you can comfortably weather the inevitable downturns in the business cycle. Every time I’ve been laid off, I’ve been able to take a year or two off to decompress, have some fun, wait for the next upturn in hiring, and then be selective in my hunt for a new position. Layoffs and buy-outs weren’t personal emergencies because I had the cash on hand to weather any situation that arose. But if you take time off, devote some time to keeping your skills up to date and learning marketable new technologies.

Unlike the coding I’ve done, the one element of my career that has proven surprisingly durable over the long-term has been the relationships I’ve built with my coworkers. Despite everyone moving from project to project and job to job and often city to city, people remember you forever, and a robust contact list is immensely helpful in finding great places to work (and knowing which ones to avoid). It might sound crazy, but this has been one of the most important elements of my career success: put just as much effort into developing good relationships with your coworkers as you put into the software you write. Software doesn’t last, but people do.

Finally, one closing bit of advice about the long-term. If you want to be happy when you look back on your career, you must work for companies and projects that improve people’s lives, rather than just making a buck. Being a successful spammer or marketer might pay the bills, but money isn’t fulfillment. No matter how elegant, satisfaction will not come from the short-lived systems you build; real, lasting fulfillment comes from the impact your work had on real people’s lives. Life is too short to waste your time working on shit that doesn’t have any meaningful value, so make sure you’re contributing to a business you can really believe in.

And, of course, don’t be surprised or dismayed when the systems you worked so hard to build disappear overnight. It’s one of the facts of life as a software developer…

Among the books I got this Xmas were two with a common theme: bicycle racing. Having little else to do this week, I sat down and read them both on Saturday, and I found an interesting, if not totally unexpected, commonality.

First, I’d like to share a few citations with you. I’ve kept a larger part of the context, but I’ve bolded the particularly pertinent sections.

The first excerpt is from Tim Krabbé’s novel “The Rider”, his not-really-fictional telling of his participation in the 150k half-day Tour de Mont Aigoual race. It’s one of the few true classics of the genre:

In interviews with riders that I’ve read and in conversations I’ve had with them, the same thing always comes up: the best part was the suffering. […] How can that be: suffering is suffering, isn’t it? […] Because after the finish all the suffering turns to memories of pleasure, and the greater the suffering, the greater the pleasure. That is Nature’s payback to riders for the homage they pay her by suffering. Velvet pillows, safari parks, sunglasses: people have become woolly mice. They have bodies that can walk for five days and four nights through a desert of snow, without food, but they accept praise for having taken a one-hour bicycle ride. ‘Good for you.’ Instead of expressing their gratitude for the rain by getting wet, people walk around with umbrellas. Nature is an old lady with few suitors these days, and those who wish to make use of her charms she rewards passionately. That’s why there are riders. Suffering you need; literature is baloney.

The next two excepts are from Lance Armstrong’s new/second book, “Every Second Counts”:

I’d suffered more in winning the Tour a second time […] But in a way, suffering made it more gratifying. Suffering, I was beginning to think, was essential to a good life, and as inextricable from such a life as bliss. It’s a great enhancer. It might last a minute, or a month, but eventually it subsides, and when it does, something else takes its place, and maybe that thing is a greater space. For happiness. Each time I encountered suffering, I believed that I grew, and further defined my capacities—not just my physical ones, but my interior ones as well, for contentment, friendship, or any other human experience.

And he goes on to say:

The experience of suffering is like the experience of exploring, of finding something unexpected and revelatory. When you find the outermost thresholds of pain, or fear, or uncertainty, what you experience is an expansive feeling, a widening of your capabilities. Pain is good because it teaches your body and soul to improve.

Here’s one final example, from Paul Fournel’s Oulipo avant-garde classic “Need for the Bike”, wherein he talks about bonking, which he calls “blowing up”:

Why not give up the bike after a blowup? Because the blowup is a journey, and the cyclist is first and foremost a traveler. Then because, after a blowup, your organism is altered. There’s a kind of purification in falling flat, an impression of fasting. A threshold is crossed …

I find it interesting that suffering is such a universal thread in writing about cycling. The discussions go far beyond the more familiar “no pain, no gain” mantra and describe suffering as necessary, integral to happiness, and even transformational. The texts, especially Krabbé and Fournel, wax poetic when talking about the suffering of cyclists, reading more like Zen Buddhism or Existential philosophy than a description of riding a bike. Here’s more of Fournel’s treatise on bonking. Note the eloquence and panache that he uses to describe this most humbling of experiences.

There are warning signs of a blowup, but they aren’t appreciably different from from the signs of normal tiredness. Now that I think about it, metaphysical anxiety might be one hint. Riding is absurd—climbing to descend, going in circles, behind this mountain there’s another, why hurry? … Riding is absurd like peeling vegetables, skiing, thinking deeply, or living. The moment these questions come up, while you’re riding, you should take note. That’s when your quads are demanding more oxygen from your heart than your lungs can provide. That’s when it gets foggy. If you’re on a friend’s wheel, he’ll pull away by two bike-lengths without accelerating. You come back, dancing on your pedals, but then you lose the two lengths again. You do this rubber-band trick ten or so times, and then you let him go, telling yourself you’ll catch up soon. In fact, the next time you see him is when he turns around and comes back, worried, to find out what happened. At that point you won’t recognize him, or, better yet, you’ll recognize him, but only as someone who might buy your disgusting bike.

Well, if drugs make for more interesting novelists, and tortured lives make for better painters and composers, why shouldn’t the kind of cycling-induced mental impairment I talk about in this previous post (Defining the Natural High, 6/11/03) produce better philosophers? It does, however, make me wonder about my recent enquiries into Existentialism and Buddhism, though!

Sorry this one’s late. That’s material for a subsequent post…

What do you most want to be remembered for?
I’d like to be remembered for founding an online community that successfully encouraged and nurtured hundreds of aspiring amateur writers. I’d like to be remembered by everyone associated with that community for my wisdom and leadership in running that group.
 
What quotation best fits your outlook on life?
Honestly, I don’t think there’s any one quote, but there have been plenty of good examples among the philosophical treatises I’ve posted here (friends-only) over the past 18 months.
 
What single achievement are you most proud of in the past year?
I don’t know as there’s one single one. I’m pleased with how I ran the 2003 Dargon Writers’ Summit. I’m naturally pleased with my cycling, which included climbing Evans Notch and doing the 200-mile PMC ride, which also included my fundraising for the Jimmy Fund. I’m also particularly proud of how well I’ve done in graphic design school. But in addition, I’m also pleased with my philosophical investigations and exploration of Zen, my participation in Boston’s war protests, my Web work for Onyx, and my administration of DargonZine’s advertising campaign on Google. And I’m especially pleased when I look back at how successful my social life has been over the past year.
 
What about the past ten years?
Well, again, there’s several things. Ten years is a long time. It would be impossible to overemphasize my return as editor and my leadership of DargonZine. There’s also my work for Sapient, which in addition to being very lucrative, offered me the opportunity to work on some of the most prestigious Web projects on the planet, such as National Geographic’s Web site, online banking, online brokerages, and much more. There’s my move into Boston and then my subsequent condo purchase. There’s my evolution as a person and the gradual increase in “healthiness” of my relationships, which is a particular point of pride.
 
If you were asked to give a child a single piece of advice to guide them through life, what would you say?
I think the most important thing is to be aware that you’re responsible for your own life and your own happiness. Don’t do anything just because other people expect it of you; do it because you know it’s going to make you happier. Enjoy each day, rather than always live for a tomorrow that never comes because there are always more tomorrows to worry about. Make all your decisions based on the criteria of having absolutely nothing to regret when you’re on your deathbed looking back at your life.

Frequent topics