Patience is waiting. Not passively waiting. That is laziness. But to keep going when the going is hard and slow — that is patience. The two most powerful warriors are patience and time.
—Leo Tolstoy (claimed, unverified)
I could have sworn the quote was different, and I've been misquoting Tolstoy for weeks, not that I'm sure Tolstoy ever said this. Maybe it doesn't matter. I prefer my own version, anyway:
Waiting is productive. Not passive waiting—that's laziness—but active waiting.
I do my thing and you do your thing. I am not in this world to live up to your expectations, and you are not in this world to live up to mine. You are you, and I am I, and if by chance we find each other, it's beautiful. If not, it can't be helped.
Managers and organizations want to know exactly when features, bug fixes, and other work will be done. Many have not been software engineers themselves, so they ask for exact dates. Sure, you can be off by a day or two—maybe!—but more than that, and it's a problem. After all, their boss needs to know what to promise customers. What's so hard about knowing when you'll be done?
Sadly, software cannot be estimated that way, and we need to stop pretending otherwise. It's a myth—a pervasive one—and perpetuating that myth only perpetuates its harm.
Image by ChatGPT
Sure, if a task is almost identical to some previous task, a precise and reliable estimate really can be communicated. Unfortunately, that almost never happens. If the work ahead were so similar, someone would have done it already using copy and paste. If it's similar and the engineering team wanted to set themselves up for success later, they'd refactor the system. That refactoring itself can be a hazy fog of unknowns. We've all been there many times.
In my fifteen years as a software engineer, I've worked in many different kinds of organizations, from a small non-profit research and development lab (the Open Publishing Lab at RIT), to a medium-sized, quasi-non-profit business with a deep and pervasive developer culture (the Mozilla Corporation), to a for-profit startup in the music industry (Inveniem), to a publicly-traded conglomerate with an estimated 100,000 employees (Honeywell). Although I have fond memories with all of my former employers, in my experience, not one was even remotely better or worse than any other at software estimation. Clearly, something more fundamental is wrong.
I think the problem is obvious. They all wanted to know the unknowable.
My friend, Rachel, who has much more experience with pets than I do, shared an excellent bit of wisdom after Kika died.
Death isn’t a failure of care.
On some level, it seems obvious enough. No one has ever beaten death. Your loved one was supposed to be the first? I don't think so.
Image by ChatGPT, based on a photo of Kika in her final days
On another level, I find the statement difficult to accept. There's always more that could have been done. I could have timed her medication better. I could have brushed her more to calm her and to express my love. I could have slept by her side those final days, on the floor of my office where she hid at night. I don't know why the idea only occurred to me later. Maybe she would have lived longer if I had. (To be fair to myself, I was pretty confused and exhausted in those final days. Perhaps I couldn't think clearly with her health declining.)
“Everybody wants to save the Earth; nobody wants to help Mom do the dishes.”
—P.J. O'Rourke
I love this quote, because I've been that guy. I've been the guy who thinks he can save the world but who literally doesn't help his mom with the dishes when he visits. Thankfully, I've dramatically softened in my activism (appropriately discussed ever so briefly in a recipe but nowhere else on this blog), if it can even be called activism any more, and I did help my mom with the dishes during my most recent visit, although I'm sure I could have done more.
I interpret the statement like this: riding a “high horse” can be fun, and there really are important societal problems that ordinary people can help improve. That said, there are always more ordinary problems that need attention, and sometimes fixing those things goes further than protesting in the streets.
It is really true what philosophy tells us, that life must be understood backwards. But with this, one forgets the second proposition, that it must be lived forwards. A proposition which, the more it is subjected to careful thought, the more it ends up concluding precisely that life at any given moment cannot really ever be fully understood; exactly because there is no single moment where time stops completely in order for me to take position [to do this]: going backwards.
This reminds me of what Steve Jobs said in his 2005 Stanford Commencement Address: “You can't connect the dots looking forward, you can only connect them looking backwards.” Based on the stories I've heard of Jobs, I wouldn't be surprised if he knew he was borrowing from Kierkegaard.
I heard this phrase recently, in a conversation where one person was trying to get through to another person who was being uncooperative. I think it's a great line, and I'm going to try to remember it for the future.
“I can explain it for you, but I can't understand it for you.”
The problem is, that's pretty curt. I don't think most people would be able to really hear that, and I think we have a responsibility to make sure our words are heard. If we know our words won't be heard, what's the point of speaking at all? Is it to feel better about ourselves? It shouldn't be, in my opinion. We have enough of that already.
For that reason, I might try something kinder first when talking with an ornery person. In the past, I've used the following, and people seem to take it well.
“I'm sorry that's not the answer you want, but that's my answer.”
Substitute the word “answer” for “request,” “advice,” or any other word as needed.