I realize this is Advogato, so you're expecting me to say something about coding. But as I am quickly realizing, poetry is much more relevant to a programmer's life than you might normally assume. So I'm going to just pass along the cheesy poetry people send me; it's really the least I can do. The least. Really.

-- Easter Dinner --

Will poetry cause Nitix sales to grow?
Quite likely, not worth a damn,
But what your mother wants to know,
Is do you want turkey or ham.

Just so you know, the above shows a slight misunderstanding of my overall marketing strategy. Come on, poetry doesn't make people buy stuff; that would be ridiculous! Poetry just gets their attention. It's the photos of cute fluffy bunnies that will make them buy stuff.

Why would two software developers risk annoying their respective supervisors by skipping their normal daily (civilized) work and volunteer instead to spend hours stuffing envelopes for my advertising campaign? And after getting caught and dragged back to programming, why did they come back, unbidden, after hours to finish the job?

Some days, I actually like human nature.

(Thanks also to dwiseman, who volunteered for the same reasons, but has a cover-up excuse: she works for me.)

pphaneuf talks about being happy and how it's more important for him to make himself happy than to dilute all his energy trying to make everyone else happy... and yet, how he just wouldn't be happy if everyone else was unhappy, and other people being happy leads back to him being happy.

This is a classic compromise situation. The correct solution is not simply to sacrifice your own happiness for others' happiness, or vice versa, or to alternate randomly between them, but to find a way for one to lead to the other.

That's not actually very hard to do, in concept, at least. You have to find the root cause of the unhappiness and then fix it. Looking at it from such a high level automatically handles confusing issues like "Should I have some temporary unhappiness now for greater happiness later?" or "Should I be a little less unhappy now so that this person can be happy now so I can be happy later?" The underlying strategy - solving the root cause - can guide all your specific actions.

I've written several posts now about non-compromise solutions to problems. A non-compromise solution is definitely the best one. But suppose you can't find a non-compromise solution, or you have found one, but it's too hard or will take too long to implement?

Here's one example that's very hard to solve in a fully non-compromise way.

Introversion/Extroversion

People who are introverted find social interaction tiring. People who are extroverted find social interaction energizing. And for sitting by yourself, the situation is exactly reversed. That's the simplest, most informative way of explaining the two personality types that I've ever heard. It avoids the faulty assumption that, say, introverts can't deal well with people. Not true. They can, they just quickly get tired of it. Conversely, some people are extroverted and annoying.

Here's the problem: it seems that introversion/extroversion is hardwired into your personality, and introverts are better at some things while extroverts are better at other things, and virtually nobody is energized both by being alone and by socializing.

Some problems require sitting and thinking. Some problems require socializing. If you're trying to improve yourself to be the very best at solving any particular kind of problem, you will have to choose at some point: are you an introvert or an extrovert? From there, you can choose the things you will and will not be great at.

But the hardest problems require a little bit of each. A compromise solution like this might entirely prevent you from being able to solve such problems.

What can you do about it? I see two possibilities: first, if you're an introvert, you can find one or more extroverts to work with. The compromise here: now you have to trust people before they've earned it, because you don't have the skills yourself. I've recently become intimately familiar with the results of this compromise.

Second, you can develop a split personality and switch between the two. Hey, humans are flexible. This compromise can have fairly obvious sanity-related consequences, but might be plausible in the short term to prepare for a switch (safely, this time) to solution 1.

Once upon a time, noise cancelling headphones were prohibitively expensive. Now you can get cheap ones with decent noise cancellation. Unfortunately, the reason they're cheap is that the non-noise sound quality is crap.

They were fun to buy, though. And because of Fry's's (??) liberal return policy, they should also be fun to return.

Well, it does, but it only says good things about the judgement of Microsoft's developers in general. In fact, the smartest teams at Microsoft have never used VSS at all. Last I heard, many projects were using a modified version of Perforce. At the time my spies last reported, several teams didn't even use Visual Studio, preferring vi and make instead. But that was a few years ago now.