Sunday, September 28, 2014

Chapter 21 begun

To the Edge

Johnny ran to the bow and looked, but could see nothing.  “Where?” he called up to Roger.

Roger was sliding down the ladder (which was boatspeak for “short set of narrow, very steep stairs”) in that casual way she had: boots hooked around the outside edges, gloved hands gently resting on the inside edges, let gravity do the rest.  She could go from flying bridge to deck in about a second and a half.  “Submerged,” she said shortly, striding purposefully toward the wheel.  “But we’ll be changing course withal.”

Johnny naturally turned to Larissa.  ”‘Withal’?”

“Nevertheless,” she replied.

“Ah.”  He paused.  “Where’s Aidan?”

Aidan was right behind him, as it turned out.  “Yes, I heard.  Let me see if I can get a fix on it, at least.”  He leaned out over the railing, and began chanting his liquid chants while stretching his arms out as if to embrace something.

For a long time, nothing changed.  Then Aidan’s eyebrows turned downwards and somehow he managed to mutter under his breath without stopping the fluid chant.  “Shallédanu lei shonta ...”  His tone was one of disbelief.

“What?” Johnny asked.  When he got no answer, he turned a worried eye to Larissa.  “That didn’t sound good ...”

Suddenly Aidan straightened and called out “Hard to port!”  Bones screeched and flew-glided back to the stern.  Seconds later, The Slyph turned sharply ... at least, as sharply as her bulk would allow, which was still enough to make Johnny grasp frantically at the railing to keep his balance.

Welly appeared in one of the doorways to the deckhouse, blinking sleep out of his eyes.  “What in the name of Witt and Berg ... ?” he mumbled.

The boat was now listing hard enough to make the deck feel more like a steep hill, so Johnny didn’t have time to look at Larissa.  She started to answer anyway: “Bob Witt and Cy ...”  At that moment Roger did something which caused the back of the boat to hunch down in the water; The Sylph straightened, but now the deck was slanted aft to fore instead of port to starboard.  The flat-bottomed boat surged forward, like a draft ship cresting a wave, and then the world shuddered as they tipped in the other direction and hit the water with a jarring thud.  They were all immediately soaked as water crashed over the rails.  So Johnny never got to hear about Bob Witt and Cy, presumably Berg.  It was a safe bet they were old comedians, and Johnny figured he had more important things to worry about.

Larissa was briefly sliding towards the front of the ship, and Johnny felt a moment of panic for her before he realized he should save all his panic for himself.  The railings were parallel to the deck, with about 2 feet between the bars, so there was plenty of room for someone on their back to slide under the bottom rung.  Larissa was already in that position, and Johnny felt his ass hit the deck and knew he was almost there as well.  He flailed out with one hand and felt his fingers brush Aidan’s boot, which the water priest had apparently flung out for Johnny to grab.  Out of the corner of one eye he could see Welly clutching desperately at the doorframe.  But most of his field of vision was full of Larissa’s small body, spinning and sliding slowly towards the rail.

She didn’t seem concerned.  She flung out one hand behind her head and it seemed like a blue whip shot out and grabbed one of the crossbars of the railing.  A disoriented thought flashed across Johnny’s consciousness (was that the snake??) and then time seemed to slow down.  He knew he’d missed his opportunity to grab Aidan’s foot, but he felt his hand grasping at the air anyhow.  Ahead of him, Larissa’s arm pulled taut, and her legs swung down towards the nose of the ship, which was just now starting to come back up ... too late to stop the inevitable slide.  Suddenly a crate spun sideways across Larissa’s path.  She kicked it hard with her black and white sneakers, using its bulk to push herself back towards Johnny.  The crate changed course too and fetched up hard against the forward rail; it cracked with a sharp splintery noise, but didn’t come apart.  Johnny suddenly realized he was aimed right for it and managed to get his boots pointed in the right direction before he struck it.

By this point the ship was righted, if still a bit wobbly.  Johnny got to his hands and knees, huffing “lucky” under his breath, over and over.  Larissa sat up calmly; the little blue water snake uncoiled its head from the railing and resettled itself on her wrist.  Aidan, slumped against the railing a yard or so up the deck with one arm still hooked around a crossbar, stared at the snake with fascination, or perhaps disbelief.  Welly let out a long breath and said in a small, quavery voice: “If at first you don’t succeed ... so much for skydiving.”  Larissa looked at him, but refrained from supplying the attribution.

A tinny voice came out of the closest brass speaker.  “Sorry, mates,” Roger called.  “I was just ..”  Her voice was cut off by a deafening crack, like the bullwhip of a giant.  A pale tentacle, white like the underbelly of a corpse, was waving in the air behind them, tall enough to be seen clearly over deckhouse and flying bridge.  Johnny felt his mouth gape open.  “Trying to avoid that,” Roger finished in a tight voice, and The Slyph shot forward as if someone had shoved a rocket into its rear.

section break

Sunday, September 21, 2014

Tourney prep

Today I’ve not found time for a normal post because I’ve been working on getting ready for National Heroscape Day.  If you need a refresher, you can read my thoughts on Heroscape itself, read about my involvement with the customs group known as C3V, or about our experiences with NHSD for the past two years.  Executive precis: Heroscape is a game that combines building battlefieds out pieces that interlock much like Legos, and then fielding genre blender armies that you compose yourself.  Thus, you see, the two major areas that require preparation are map construction, and army building.  So, this weekend I’ve done a little of both, in an attempt to be ready for the upcoming tourney (which will be held on October 18th this year).

First, the map.  For the longest time, I had this monstrosity up.  Oh, it’s pretty to look at, but not very practical to play on.  So, to get some reasonable practice in, we needed pick a couple of new maps, tear down the existing one, and build the new ones up.  I got all but the very last step of that done.  I picked two BoV1 maps: Quasatch Playground and Burial Marsh.  The Littles2 and I tore down the whole big map.  And we rather quickly slapped together Quasatch Playground.  The other map will have to wait for next weekend, or possibly Wednesday.

Secondly, the armies.  I’ve been experimenting with several ideas, most of them based around my favorites among the custom units that our group has come up with.  One of my current favorites is also one of our newest: the Crypt Guardian.  The main idea behind him is to help out one of the worst units in the official game, a sort of mummified medusa figure.  With her Stare of Stone power, she can kill just about anyone ... but only if she gets lucky: she has a 20% chance of killing a hero.  Now, true: she has a 70% chance of killing a squad figure (meaning one of the cannon-fodder guys).  But only one every turn.  If you’re facing a giant mass of, say, zombies, or maybe orcs, it’s going to take you around 10 turns to kill 2 squads’ worth.  And that’s assuming you don’t use anybody else.  That’s pretty terrible.  Plus her average defense combined with averge-low life means she ain’t gonna last that long.

So she needed some help, and we thought it probably ought to be another mummy that gave it to her.  But of course we didn’t want to create a unit that did nothing but prop up one bad unit.  So we gave our Crypt Guardian two powers: one which helps undead units with a d20 power (which Sudema is), and one that helps heroes which are either guards or queens (which Sudema is).  So it helps quite a variety of units, but there’s only one unit that can benefit from both powers, and it’s the one that needs the most help.  Sort of clever of our designers.3  One of the funnest things is that many of the other units that are helped out by the Crypt Guardian (specifically, the short list of guard heroes) are also units that don’t see a lot of play.  So you can take three or four units that normally people think of as easy pickin’s and forge them into an army with a decent shot.

One of my other favorite units is a sort of forest sprite type thing called the Eilan Sidhe.4  This is a bit of a harder unit to place into an army, as it doesn’t have any obvious synergies, so I’ve been playing with a few different ideas.  One odd but intriguing pairing would be with the bugbears.  The sidhe can use the trees on the map (if there are any) to get into great position, and then the bugbears can use their “Barge into Battle” power to swap places with them and lay the beat down on some folks.  Of course, on a map with no trees (or few trees, spaced too far apart), you’d be screwed.  Plus you’ll need some ranged support.  But it’s in interesting idea.

The Smaller Animal is interested in trying out or newest dragon, affectionately referred to as “Big Blue.”  She’s a beast all right, but also a unit that doesn’t have too many obvious synergies.  We could bond her with the lizard men, of course, but they’re on our restricted list,5 and I’ve personally made the argument that Big Blue should be on the restricted list as well, which would mean they couldn’t be paired.  You can also bond her with giant spiders, but quite frankly they’re not that exciting.  So we’re still working on that.

So that’s how my weekend has been going.  And I see that, despite my initial pronouncement of not writing a real post this week, this one is nearly as long as a normal post anyway.  So count yourself lucky.  Unless you really don’t give a crap about Heroscape, in which case I suppose you’d best count yourself unlucky.  But then again, in that case, I’m sure you didn’t read this far, so I’m not really talking to you anyway.  As always, refer complaints to the masthead.

1 “BoV” stands for “Battlefields of Valhalla,” and it means maps specifically designed for tourney play.

2 This is a term invented by our Sister Family to mean the kids below age ten.  We each have 2 in that category; ours are 8 and 2, currently.

3 Full disclosure: I’m not one of our designers.  I’m an editor.

4 Note that “sidhe” is a Celtic word pronounced “shee.”  For instance, the proper Irish spelling of “banshee” is actually “bean sidhe.”

5 Many Heroscape tournaments maintain a “restricted list,” which is a list of units that most people consider a little too good in a competitive setting.  Each army is allowed only one unit off the restricted list.

Sunday, September 14, 2014

Worth Striving For

A few days ago I was talking to the CEO of my company about why I love this job so much.  I found it hard to put into words ... the best I could come up with was that I had finally found a job where I was allowed—even encouraged—to fix things.  At my last job (and at many of the companies I’ve worked for, both as employee and contractor), if you wanted to fix something that was broken or ugly, you had to have meetings about it, and you had to present business cases for it, and you had to prove to someone that it was going to make money (or save money) in some way.  At the new job, if something’s broken (or ugly), we just say: fix it.  And no one tells you how to fix it.  They just trust that you will do it the best way you know how.

Trust, you may recall, is one of the three cornerstones of what employees want, according to the Barefoot Philosophy.  So that’s a big part of the attraction, certainly.  But this is a bigger issue, touching on the concept of craftmanship that I brought up before, but only scratched the surface of.  I’ve also made a business case for why crap needs to be fixed, but this is a different side of that coin.  And I wanted to expand on this topic, partially because it would be nice to tie all those disparate thoughts together, but mainly because I was frustrated by my inability to capture the gestalt of this idea in that extemporaneous discussion with my chief executive.  But of course I’m not good at speaking off the cuff.

Then again, that’s why I have a blog.

Perhaps the easiest way to explain it is with an extended analogy.  Imagine software developement as being like building a house.  Now, there are different aspects of home construction.  Obviously the most important aspect is functionality: you need working plumbing, a sound electrical system, structural integrity, and so forth.  But never discount æsthetics.  Nobody wants to live in an ugly-ass house.

Of course, the vast majority of the coding that we programmers do is not building a new house—it’s renovating.  The house is already there when we show up; the owner just needs some repairs, or perhaps a new bathroom, or maybe even a whole new wing added on one side.  It’s often said (even by programmers) that programmers prefer writing new code to maintaining old code.  There’s some truth to that, of course.  But not as much as it seems on the surface.  There’s nothing wrong with working to maintain a beautifully built, solidly constructed old house.  Sure, you can’t go crazy and go all Frank Lloyd Wright or John Lautner on it.  The basic layout is there, and there’s only so much you can do to it.  But the popularity of home improvement shows—from modern reality TV shows like Extreme Makeover: Home Edition to the public television classic This Old House, which is still on the air after 35 years—shows us that fixing up an existing structure can be interesting, challenging, intellectually stimulating ... all the things you could ask of a construction project.  I’ve worked on a few old codebases that were still a lot of fun and gave me plenty of opportunity to exercise my creativity and leave my mark, including the one I’m working on now.

But most of them aren’t like that.  Most of them are a kind of horror show train wreck.  Which is something we all end up slowing down to watch, with a guilty sort of fascination, but it’s quite another thing to be inside it while it’s happening.  Is it any wonder that most of us are desperately trying to rewrite parts of—if not the entirety of—our old codebases?  And the reason most of them are so awful is because of this very issue that I’m trying to explain.

See, working at my last job (and, as I say, for many of my previous employers) was a bit like doing a renovation for a homeowner who tells you “Just make sure the toilets flush, and the lights come on when you hit the switch, and the walls don’t fall over.  We don’t really care if it looks pretty or not.”  Which doesn’t sound so bad until you start getting into the details of it.  “Just patch the pipes with duct tape,” they tell you.  “Yeah, we know it’s not waterproof, but a few little puddles here and there are no big deal, and actually replacing the bad plumbing would take too long and be too expensive.”  And then they say, “You know what? just leave those exposed wires there.  We’ll put up some signs warning people not to touch them.  Actually patching the drywall is too much trouble, and we’ve got other stuff for you to work on.”  And then it gets to the point where they’re trying to convince you to prop up the walls with old two-by-fours from the backyard that still have rusty nails sticking out of them.  You can probably imagine how scary it is to walk into a job like this.  But what many people forget about is how utterly depressing it is to be the guy who let things get this bad.  Not by choice, of course.  But, if no one will let you fix anything ...

Part of the reason this is so frustrating is that some of this shit is actually dangerous.  Show me a programmer who hasn’t been told to ignore a bug that they knew was screwing over customers and I’ll show you a programmer at the start of their career.  Every business makes that choice, and I will even admit that it’s not always the wrong choice.  A bug that only affects a few customers but will cost many engineer-weeks to fix is not a sane thing to tackle.  But it’s one thing to make that call one time, and quite another to make it over and over again.  And let’s not dismiss the soul-crushing anguish of the raw ugliness of it all: you’re embarrassed to admit you were a part of the crew, and you’re constantly apologizing for your part in the mess.  Hell, it doesn’t even stop when you quit: at my most recent conference, I was still apologizing to employees that had been hired by my ex-employer after I left.  “We tried to make it better,” I would say, eyes downcast.  “But we just didn’t have the political capital.”  That’s a polite way of saying “our bosses wouldn’t let us fix anything.”

So it may sound a little weak to say “I really love my job because they let me fix things,” but try to understand it from the opposite point of view: I really hate a job where they won’t let me fix things.  It’s depressing to have to work in that environment day after day.  And, if there are any businesspeople out there reading this, let me try to put this into terms you can appreciate: this is a question of retention.  When you refuse to let people fix things, you make them miserable.  Oh, I can tell you that there are direct fiduciary benefits to a culture of improvement (and that’s true, although they’re notoriously hard to measure), but the real gain is that you keep your best, most productive employees happy, and you make it easier to hire more of the same, and if you can’t see how that is going to help your bottom line, then there’s nothing more I can say.  Here’s a great quote attributed to Hosea Ballou:

No one has a greater asset for his business than a man’s pride in his work.

I suspect this is how my CEO views it.  I don’t know for sure, because he hasn’t told me, but I’m guessing that he thinks to himself, well, my tech team always delivers when I ask them to, and sometimes even when I don’t, so if they want to go off and fix things I didn’t ask them to, and that makes them happy, then, more power to ’em.  As long as we keep doing the things that make him happy, and make the company money, he’s happy enough to let us take a little pride in our work.

And that’s what it comes down to, in the end.  I consider myself a craftsman, as I said—perhaps I should go even farther, as did web designer Richard Glover, and call myself an artisan.  I take great pride in what I produce, and I need to be producing things I can be proud of.  Give me a job that allows that—nay, encourages it—and I’m all yours.

Sunday, September 7, 2014

To Vegas, Baby

You almost got a post this weekend.  I actually started a post ... I was this close to finishing it up and posting it.*  Unfortunately, we’ve got a lot of preparations to do this weekend.  We’re heading off to Vegas for a family vacation tomorrow.  The Eldest is turning 16, and that nets you more than a birthday weekend—you get a whole birthday week.  And I’ve never personally been to Vegas, so it should be fun.

Perhaps there’ll be time to finish this post during the week and you’ll get to see it next week.  If you’re lucky.

* I know you can’t actually see my thumb and forefinger, but trust me: they’re only millimeters apart.