Abstract dissent is not patriotism

I saw a bumper sticker today that said “Dissent is the highest form of patriotism.” The quote was attributed to Thomas Jefferson, which is apparently incorrect, but regardless, the sentiment betrays a rather delicious incoherence of thought. If mere dissent is the highest form of patriotism, then anarchy must be the highest form of government. The logical conclusion of consistent dissent is the dissolution of civil society as the true patriots find themselves continually warring against whatever faction happens to be in power.

Interestingly, I only seem to see these stickers pop up when some form of conservative government is in power. When a more liberal party reigns, I tend to see the “NOT MY PRESIDENT” stickers, which, though similarly false, at least stop short of proclaiming a self-defeating philosophy.

The 10×10 Hardcore Challenge

On January 2d of this year I committed myself (and, incidentally, those who are unfortunate enough to play board games with me) to a “10×10 hardcore challenge”. This was an idea I saw on BoardGameGeek, and as our gaming had waned somewhat, I thought it would be a good way to motivate us to make it more of a priority again. This proved true, and I successfully completed the challenge last Saturday on November 19th.

As a side note, gaming is like many other enjoyable things in that the more you do it, the more you want to do it. Once you are in the habit of doing a thing, it becomes much easier to continue doing it. There are likely useful life lessons to be drawn from this, but I will refrain from doing so here.

The games we played were:

One of the interesting things arising from the challenge is that prior to this, we would rarely play a game more than a few times in a row. Nothing about the challenge technically compelled us to play the same game all in a row, but in several cases (notably Wiz-War, Eclipse, XCOM, and Quantum) we did just that (over the course of weeks/months). This had the effect of revealing strategies in gameplay or even virtues of the game which would not otherwise have been apparent. In particular, I was not originally a fan of Quantum, but I recognized it had enough merit to make it worth trying out. It wasn’t until the sixth or seventh play that I discovered some additional strategic depth beyond that which was immediately apparent (to me, at least). I don’t think this means I’ll be inclined to give every game almost a dozen plays before passing judgement, but I certainly will be more open to diving into repeated plays of a game rather than sampling one of everything from the game closet buffet.

As the challenge progressed, we discussed whether each game was good enough to remain in the collection. A couple of games we had never (or hardly) played before the challenge – XCOM and Mage Knight. Quantum also only had a couple of plays before the challenge. Some I feared might fall apart after repeated play – such as Kingdom Builder.

Ultimately, only one board game definitely got booted from the collection following the challenge, and although I was firm enough in my resolve that I didn’t need any confirmation from my gaming colleagues, I think the decision was unanimous. But rather than simply spoil the surprise right here, I decided to take the effort to write a review of each of these games individually. Look for them in the coming posts!

As for whether I’ll do another challenge – I doubt it. Or at least, I won’t do another hardcore challenge where I pick all the games of the year ahead of time. I still think there’s some value to picking a game and saying “we’re going to commit to playing this X number of times unless we end up completely hating it”. Some games take some time to shine, and you may be surprised at the depth (or occasionally lack of depth) you discover if you play a game repeatedly within a short period of time.

Re-employed

If this blog is a record of my grand exploits, then it seems appropriate to note, in the interest of continuity, that about a month ago I accepted a job offer and am once more gainfully employed as a professional software developer. Assorted experiences of the past have taught me the prudence of maintaining the separation of work and blog, so that’s about all I shall express upon the topic, aside from praising God and rejoicing that I am again in a position to earn my keep from the comfort of my home office.

As I observed at the time, unemployment would be practically an ideal state of affairs if only one wasn’t continually feeling the pesky pangs of material want. After all, such a condition leaves one with plenty of time for the important pursuits, such as writing blog posts. However, life and sustenance being what they are, I am (on the whole) glad to once more have my daylight hours occupied in more fruitful pursuits.

That said, there are a few projects I have underway, and as the saying goes, though they proceedeth slowly, they are exceedingly fine.

The first such endeavor is a new WordPress theme for my wife’s blogs. This theme, which I believe the gracious call “minimalist”, is now live on her various and divers sites. She says she likes it and that it’s better than her previous themes (which I also authored). I’m not sure I agree, but if you do, it’s free for the taking.

The next project on the docket is an effort to sanitize the computer game World in Conflict of profanity so that my younger boys can play it. Happily, the developers were very mod-friendly and made a mod kit available in the day. Unhappily, that day was quite a while ago and it’s been a struggle just scraping together the tools from various corners of the Internet to make modding possible. However, I’ve now reached the point where I’m able to edit everything except cutscene movies, and it’s just a matter of doing the grunt work of finding the particular files which need editing and doing the editing itself. (By the way, I am here intentionally ignoring the debate about whether such “censorship” as this is worthwhile or a total waste of time. Assuming I get anywhere with the project, I’ll eventually be writing my thoughts on the matter in more detail.)

Third on the list is the construction of dice towers. Some years ago I invested in a number of Hirst Arts molds. Shortly after purchasing them, I cast a whole bunch of little plaster bricks and built a few neat things. And then they (along with a number of the bricks and some 70 pounds of Hydrostone) sat in my garage collecting dust. This really is quite inexcusable, but unfortunately it is the truth. I am now doing my best to atone for this neglect by pulling the various pieces out of storage and designing dice towers. Dice towers (of which I presently have an embarrassing shortage) are important to me right now because of the next project, which is…

Fourth: playing 100 board games over the course of 2016. I’ve signed up for a 10×10 challenge on BoardGameGeek, meaning that I intend to play 10 particular games 10 times each during the year. We didn’t play nearly enough board games in 2015, and I think this kind of challenge is just the sort of thing to change that. At a mere two games per week it doesn’t sound like much, but it’ll be a good deal more than before. Plus, although some of the games I chose (Dominion, Kingdom Builder) can easily be played a couple times in an evening, others (Eclipse, Mage Knight) are rather involved.

Of course, the final project on the list is blogging itself. I’m out of practice, and writing is a thing that wants continual exercise.

Speaking of continual exercise, I suppose that’s a sixth project. But I mean to say, really, you know, one wouldn’t want to be overwhelmed with projects.

On Usability and Folding Laundry

The importance of feeling the consequences of your own work can scarcely be overestimated.

I sometimes fold laundry in our household. Well, okay, I occasionally fold laundry in our household. That is to say, at least twice I have folded laundry in our household. And on one of these occasions, my long-suffering wife asked me a seemingly random question.

Wife:
How do you hang hand towels?
Me:
What?
Wife:
Hand towels. Like if you’re hanging a towel on the rack, how do you do it?
Me:
(picking up a towel I’d just folded) The normal way, threading the narrow end through the towel holder. I’d just unfold the towel once and…oh.

Turns out I was completely incompetent at folding hand towels, because I’d been folding them in the wrong direction. Thus, anytime someone wanted to use one of the towels I’d folded, they had to first unfold it all the way and then re-fold it.

Apart from making me feel like an imbecile, this little experience reminded me of a lesson I’ve seen in action many times. Had I been the one hanging hand towels in addition to the one folding them, the problem would have been immediately obvious. But unless we actually use the end result we’re producing (or have excellent user feedback mechanisms in place), we’re flying blind.

This is especially true in the software world. If you’re not using your own software, then I’ll take long odds that it’s got significant usability problems. I have worked with developers who blame everything on the user, vindicating their own blinkered view of their software product. “gah, these users. If they’d only use the software correctly then we wouldn’t have to make these silly changes.” I cringe every time this happens, and I’ve heard variations on it more than once in my career. If you’re blaming your users for problems they find in your software, it’s time to find another career. The whole point of software development is solving people’s problems. If you’re not interested in doing that, then what are you doing here?

The need for real-world feedback on software is one of the reasons “hallway usability testing” is so valuable. The idea is that it doesn’t take a special kind of user to find usability problems in your application. You can grab just about any random human being who is not the guy who wrote the program, sit him down in front of the computer, ask him to perform a task using your software, and immediately start discovering usability problems. This kind of usability testing is embarrassingly easy to perform, and the majority of development shops (and developers) don’t do it.

The fact that this is true makes it all the more embarrassing that such vast quantities of software are so difficult to use. Take time tracking software, for instance. I have never worked for a company whose time tracking software was a pleasure to use. In all cases, it would have been easier to just enter time in an Excel spreadsheet. (Come to think of it, I believe the first company I worked for actually did track time this way.) I can think of no reason why this should be true, that all time tracking software stinks. There is nothing inherently difficult about writing software to record how much time you’ve worked. But developers, by and large, do not put a premium on software that’s eminently usable, so long as it can be made to work. “Does the software allow users to enter time and generate a report for managers? Great. Meets the requirements. Done.” In fairness, the blame does not land solely at developers’ feet; often companies are unwilling or unable to pay for the time required to really polish software. But although the law of diminishing returns is definitely in effect here, it does not take a huge investment to make some big gains in software usability.

As a developer, start by forcing yourself to use what you’re writing (and use it in unexpected or unusual ways). Also, put it in front of a disinterested party and make them use it. Watch (or record) – but don’t give them any hints. It will be painful, but it’s pain you need to feel. Take the results, pick the top three worst problems the user ran into, fix them, and do it again. Iterate.

As a user, start being willing to pay for software that’s elegant and easy to use. These attributes are admirable goals in and of themselves; we should be encouraging them to the extent we are able.

The Myth of the Unemployed Programmer

A software developer should never truly be “unemployed”. Many professions require a certain capital investment or infrastructure to perform work–for example, if I am a cabinetmaker, I require woodworking tools, wood, stains, finish, and probably a shop to store it all (plus the works-in-progress). On the other hand, a software developer in the modern world merely requires a computer and Internet connection–all the other tools can be had for free. Even deploying a web application requires very little capital investment in a world where $5/month servers exist.

I have mused upon this concept in the past, but never with the sense of immediacy engendered by the events of the past week. As of last Wednesday, I suddenly became an “unemployed” software developer when I was laid off. This, of course, prompted many non-software-related activities (my résumé needed a rewrite and my online presence–including this blog–was sadly neglected), but after the initial flurry settled down, I was faced with the decision universal to the unemployed: how shall I spend my time?

The options are not infinite (financial concerns for most of us preclude a spontaneous sailing trip to the Bahamas), but they are vast. I could implement one of the many software ideas which perpetually rattle about in a developer’s brain. I could write new themes for my wife’s blog, or her other one, or her other one. I could try to catch up with my wife in website count. I could delve into any number of modern developments in technology, most of which are fascinating and directly applicable to my career. I could write a book, because as my wife observes, once you exclude teen romance and vampires (and vampiric teen romance) there is a certain dearth of quality literature for the juvenile boy. (Though, if I did write a book, I’m not sure you’d ever know about it. On the one hand, I feel like a man ought to write under his own name and take responsibility for it, but on the other hand, I consider it merely common courtesy to preserve his friends and acquaintances from ever feeling obliged read whatever drivel he produces.) I could even finish that basement remodeling project I started eleven months ago, but let’s not get crazy here.

None of these (home improvement excepted) require anything significantly more substantial than time and sterling intellect, both of which I now have in abundance. What a strange thing!

Having dwelt upon the matter at intervals in the preceding days, I have resolved that three things shall happen:

  • This blog shall receive some sorely needed attention. (There is an argument to be made for “quality over quantity”, but 22 months between posts is pushing it.)
  • My WordPress theme development skills shall be enhanced in the furtherance of my wife’s online empire.
  • I shall enhance my professional skills by writing an amazing web application, guaranteed to please. More on that later, but as a hint to those who have known me long, it might improve morale. Or at least keep track of it.

The bottom line is that there is no such thing as true unemployment for the modern creative, and in my case, it is time for some housekeeping. (As an aside, if you’d like to hire me, that’s fine too. I won’t take it personally when you attempt to deprive me of all this glorious free time.)