Monday, December 29, 2014

It's Not My Raid

Some people like to dress up in special clothes, get together with like-minded individuals, and then spend 90+ minutes running back and forth over a hundred-meter rectangle of grass. Others like to wear scarves and yell at the first people. I confess to not being fit enough to do the first thing nor dedicated enough to do the second, but as I said before, Some People Juggle Geese.

What I do for fun, a couple of times a week, is to sit at my computer and coordinate with between 15 and 20 other people for three hours trying to make certain pixels last longer than other pixels on the screen. This is called "World of Warcraft Raiding" and it is not terribly common as a pastime, but it's something that my partner and I enjoy doing together with a number of our friends across the world. My partner actually has her own raid group that she leads, and I'm lucky enough to have a spot on that team, but that group is currently on hiatus for various reasons, so we have been participating in another, different group doing what's known as "progression raiding", which mostly involves the very endgame, very hardest content of the World of Warcraft videogame. Of the ten million or so people who have active subscriptions to WoW, only about 1% have even attempted playing in the current raid content, which works out to around a hundred thousand or so people worldwide. I currently play regularly with 20 or so of them. 

One of the things that I've been doing besides trying to get better at my particular role in the raid is doing a lot of reading on how other raids and other raid leaders prioritize choices, make decisions, and in general just run raids, as a precursor to helping my partner bring her raid team back together. Now, believe it or not, raid leading is actually pretty hard: finding a group of people who are not just interested in hanging out together but are interested in hanging out together and doing something with a 99% failure rate as their idea of fun. And that's what progression raiding is: failing, over and over and over again, attempting to find strategies and methods that allow for successful coordination of a disparate group of people with distinct abilities and roles in order to overcome challenges and work together to become greater than the sum of their individual parts. 

This sounds a lot like team management, doesn't it? I see you've figured out my Bad Metaphor for the entry. Stick with me to the end, though. 

There are lots and lots (and lots) of blogs, articles, entries, and opinions on what makes a "successful" raid and how raid leadership "should" be done. But a big chunk of the advice and suggestions from these blogs, articles, and entries seem not just uninteresting or inapplicable to our current experience, but actively anathema to how I am interested in playing the game. 

BUT! Harkening back to the "Some People Juggle Geese" model of things, it's important to understand that, while that doesn't sound like fun to me, there are plenty of people out there who think it is fun to play that way. It's not my Raid, and consequently it's not my place to say or do something that could be construed as critical or otherwise negative. In fact, while my partner regularly asks for my input about the thinking, decisions, and standards and practices of their own raid team, asking for my input does not make me a co-leader, or even an officer of control; it makes me at best a consigliere, and more often a simple sounding board. It's Not My Raid, it's my partner's raid. I just play there. I don't have ownership

However, in another sense, it is my raid, in that it's the raid that I am participating in and working with to have fun and accomplish goals and hang out and tell jokes with and all of that other stuff that happens when two dozen adults get together to do something. I have input and identification in the raid (both the one I'm currently in and the one I'm hoping to be a part of). And part of that input and identification is the trust that if things are being done differently than I would do them, there are reasons for those different choices and that if I don't like or trust them, I shouldn't be hanging out with them, let alone doing something for fun with them. I am not the end-all and be-all of intelligence, resource management, personnel management, or strategic and tactical planning and execution. I'm part of a team. 

In Ops Life (see, I told you I'd get there), there's a difference between the team you're on and the team you lead. They're both Your Team, but often the former is much more common than the latter. That doesn't mean that thinking about the latter isn't fruitful, though. It's not wrong to disagree with the choices that other leaders make about how and why they lead. It is important to understand, however, that the hows and whys of any given decision may involve information to which you are not privy, and so disputing those decisions may not be the best way to keep your team from falling apart. Sometimes, you have to say "It's Not My Raid" and do your job the best you can, and let the team leaders handle the rest. 

Now, that's also not to say that you should always shut up and do what you're told; sometimes there's things that are obviously wrong, or objectionable, or things about which one feels strongly enough that it's imperative to stand up and say "hold on a second". And, of course, there's always the possibility that the direction a group, or a company, or a team is going diverges so much with your own positions that you have to say "that's enough" and go somewhere else. But much more often the solution to aggravation both in fun and in work is to say "It's Not My Raid", dig into the problem in front of you, and do the best you can. Sometimes, it's enough to get the team over the hump to success; sometimes, it's enough to highlight the path or process that's failing. Sometimes, you just have to be part of the team. And then you have to remember the lessons you're learning so that one day, when you're leading the team, you'll be able to fail in entirely different ways than before, and some other poor sucker will just have to remind themselves that It's Not Their Raid.

Thursday, December 18, 2014

Wash Speaks For Me

"Some People Juggle Geese."

If you don't know the reference, it's from Firefly, the Joss Whedon show back in the early Oughts that spawned some pretty hardcore fans. Wash, the series hero and my personal favourite character, is trying to explain to his wife and some of the other crewmembers of their spaceship that sometimes, people do things for fun that don't sound like fun to you. And that is OK.

It's become a shorthand for me, a reminder that my tastes are not universal and my idea of fun is not the ideal against which all others should be measured. And that is OK. It applies to a bunch of other things, too, things not about fictional entertainment modes in short-lived science fiction TV shows.

For instance, the iOS/Android divide? The particular tribalism that crops up in both camps that insists a position of superiority simply due to the brand and operating system of a pocket computer used? That's a position I don't understand. There are things about both ecologies that recommend themselves to certain people, and that's OK. I personally use an N5, but I've got friends who are committed to the iOS platform. That argument? "Some People Juggle Geese."

American Football is another one. I'm a football kinda guy, mostly MLS and UK Premier League, but I follow the World Cup, too. I love the game most americans call soccer. And I find american football (or "handegg") nearly unwatchable. BUT! "Some People Juggle Geese." I have many friends who wears player jerseys and watches games every Sunday, and that's OK.

Dungeons and Dragons has several different iterations, known as "editions", and there are virulent defenders of every version, some of whom have nothing but scorn for any other edition or anyone who plays that edition. "Some People Juggle Geese."

You can make this argument for a lot of things in the IT world, too. Python versus java? Agile versus Waterfall? DevOps versus Operations/Engineering? They all have positive and negative traits, and they all have significant backers and detractors. And that's OK. Remember: "Some People Juggle Geese."

"Some People Juggle Geese" is a reminder that the people you're working for and with have ideas and viewpoints that may be different from your own, but that doesn't make them inferior. It might even make them superior in their role and their work, even if their ideas don't work for you, and that's OK.

Make it a mantra. Or, don't, really; Some People Juggle Geese.

Monday, December 15, 2014

Do you know what today is?

Today is a Monday, and that means it's time to do something new.

Mondays get a lot of guff, much of it entirely reasonable guff; going back to work or starting a new week can often be difficult, especially if you're looking at another week of 'more of the same' of whatever it was that had you looking so longingly towards Friday last week. Mondays are when things seem to loom before you, when the work seems grindy and the leisure time seems very, very far away.

But Mondays are also a chance to shake things up; to plan the rest of the week and break everything down and divide and conquer. They're the strategy day, the day when you find out what happened last week while everyone was racing for Friday. Mondays are when stuff gets planned (and if you're doing your planning on Sundays, shame on you and more importantly shame on your boss, because it's hurting your productivity if you're working on weekends). Mondays are when teams can assess their load and distribution. Monday is the pre-flight checklist day of the week. Don't really expect to get anything done on Monday. Maybe you push the release that was doing automated testing over the weekend, or maybe there's a hotfix that you can push for something that dropped on Friday, but really, Monday is planning-and-strategy day. Mondays are the day when you get geared up for the rest of the week.

Monday is your Plan. Monday is for something new. Look forward to Monday.

You should now feel free to throw your coffee mugs at me.

Tuesday, December 02, 2014


There's a really tough part to the grind of being unemployed: the waiting.

The UI department doesn't care that it's Thanksgiving. It doesn't care that I've had a couple of phone interviews with a place, or that I'm waiting on a callback. It doesn't care that my stomach is tied up in knots and I'm having trouble sleeping.

It only cares that I've looked for work, and that I haven't yet been hired.

In a way, it's been really good training for working on issues and getting myself used to the idea of managing my time better, and good practice at applying Kanban in places other than the workplace, and how organizing myself makes things easier (significantly easier, as I get older). I have had trouble in the past with writing things down, on the belief that I could just "remember" things, despite never, ever being able to remember anything at all. I once forgot my own name. So practicing the process is good.

The set goals and determined timeline also has been great practice for getting myself to think short-term, which is something I'm often terrible with. And hard deadlines are a balm to my procrastinator soul; I frequently do most of my work in a huge rush right before a deadline, and getting broken of that habit may be one of the best things that's come out of my stint as an unemployed person.

But, even then, it's the waiting.

Being on the hook for a really interesting, really engaging job at a really cool place is awful. Because I still have hope, but I've been in this place before, and been disappointed every time (if I hadn't, I wouldn't still be unemployed). And while rejection sucks, the not knowing is often stomach-churning.

So while I'm waiting for the results to come back from my latest venture, the customer UI doesn't care. So I do the work (which right now, is hunting for more work).

Obligatory Rocky Horror Picture Show Link

Tuesday, November 25, 2014

Comparative Lifelines

It's weird to think about the fact that, when my father was my age, his life was completely different from mine. Like, entirely different in nearly every way. 

When my dad was 39, he had four kids, one of them under 5.  He'd been married to my mom for more than 10 years. He had had a dozen jobs by this point, including a short-order cook and a shop steward for a long-haul trucking company repair depot. His jobs were transitory, though, because my dad had a career, and that career was union organization. Whatever job my dad had, he was always focused on improving things for the workers around him, via collective action and collective bargaining. I know it cost him at least one job. I know it also got him at least one job. I don't know if that constant fear of losing a job at the cost of his career was part of why he drank. From our (very sparse) conversations about it, my father drank because he was an alcoholic, just as his father was an alcoholic. By the time he was 50, my father had given up drinking, saved his marriage from dissolution, and reconnected with his family and his faith, all without ever losing his drive for collective action and collective bargaining. In many ways, I am envious of my father's life, even as I recognize that he lived it specifically so I wouldn't have to. 

When looked at in comparison, my life seems a litany of failures: two failed marriages, many failed relationships, always drifting from one IT job to another, never doing much manual labour, always concerned with myself first, never connecting much with others. Some friends, some business contacts, but never the kind of driven focus that was the centerpiece of my father's life.

But we remake ourselves, especially as we get older. I am a different person than I was even at 35. I have roots, and a comfortable life even as I'm trying to find more work for myself. I'm contemplating going back to school, to avoid the death-sentence that is a gap in the resumé. I socialize more now. I seek diverse voices. I seek diversity. I seek to support those who are not as fortunate as I am even while recognizing that in itself that seeking is a privilege. I am more aware of my privilege and more willing to talk about it and recognize it and call it out in myself and others than I was even a year ago (much of that is because of my now-wife, who is so compassionate as to sometimes make me weep). I'm much more interested and connected to the messages of collective action than I was when I was younger, and might've understood the drive that burned within my father, seems to burn even now, even in his frailty and greyness.  

My father remade himself, at an age not too far from where I am now. I hope that I can be as courageous, as present and active, in my remaking. 

We are all remaking ourselves, every day, whether we recognize it or not. The trick is, what are you remaking yourself into today? Tomorrow? 

Friday, November 21, 2014


Rejection sucks.

Here is a really interesting job. It sounds really cool and it feels like a great chance and a great fit. Except someone else doesn't think so, it turns out. And so you get an email (sometimes), and they've gone in another direction. All the cool stuff you thought about, all the nifty ideas you had, are going to have to go somewhere else. Sorry, try somewhere else.

Is it personal? Did I talk too fast? Did I get my words mixed up? Did I answer something wrong? Do you feel like I'm a bad fit for some reason? No idea. There's no exit survey for job hunting, just a stream of "no" until hopefully you find a "yes" somewhere. It's a grinding, brutal, dehumanizing experience where the productivity and joy can be sucked out of you one sip at a time. The average unemployment period for someone in my industry is 9 months. The average unemployment period overall is 8.5 months. Two-thirds of a year of grinding, pulverizing rejection.

Rejection sucks.

So what do you do? I know what I do. I don't know if it will work for anyone else, though.

I vacuum the carpet (we have two dogs and a cat; the carpet always needs vacuuming, even when I've just finished vacuuming). I make a mug of tea. If it's after 5, I pour in a jigger of bourbon. I fiddle with my resume (again). I post another couple of applications, work on a couple of cover letters. If it's around noon, I take a nap (because naps are awesome and restorative and everyone should take them, as often as possible; there's a whole raft of studies about productivity boosts from naps, but this isn't that essay). I wash and dry and put away the clothes (because there's always dirty clothes; remember the dogs and the cat?), I try to learn a little something: Puppet, maybe some Python, a little javascript. I write a blog post.

I email friends, I let my partner know where I'm at. Because rejection sucks. But it's the thing you have to get through to get to acceptance. At the end of all the "no", there's a "yes". There has to be. I won't let it not be true.

Maybe I wasn't a good fit this time. But maybe next time, maybe at a different opening, maybe at a different place, I'll find a good fit.

That's how I feel today. Ask me tomorrow how I feel, and you'll probably get an essay on the cultural binding of worth and value and work, and how that makes me feel. But that's tomorrow. Today, I have to grind it out.

Monday, November 17, 2014

Self Care

Today I set up the burn board and powered through a bunch of chores around the house. I did this because another day of jobhunting seemed less appealing than scrubbing the stovetop and vacuuming the carpets (which in and of itself says something about jobhunting, I think). As a joke, a assigned points to my chore list based on how long I thought each thing would take, and then powered through them, marking them done as I went along. My partner asked how long my sprint was (one week, obviously), and at that point it became a running joke that we're now an Agile Household. Given that we both think this is hilarious, it's likely to go into the in-joke repertoire with "Stand Back Six Pack" around the house.

Today was a back-to-work day for both myself and my partner, as we had both basically taken the last week off to play videogames and just be present with each other. Which is important in a relationship. And then I promptly forgot about taking care of myself today.

I am not a big breakfast person (except Sunday Brunch, but that's a Thing here in Portland), so I usually force myself to have toast with peanut butter with my morning coffee or tea so I don't end up making bad choices later in the day. Not so today; today I realized suddenly at around 1 PM that not only had I not eaten anything for breakfast or lunch today, I also went light on dinner last night because of an upset stomach. I realized it because when I stood up to go and get clothes out of the washer I was suddenly light-headed and shaking, and nearly fell over.

I quickly heated up some soup and made a grilled cheese with salami slices, which seemed to even out my shakes, and then I went and took a nap. Because self-care is important, especially now that I'm no longer 20-something and able to eat anything on any schedule.

The IT industry often forgets about self-care, even at places that claim that "work-life balance" is important. The expectation is often that free snacks and beer and lunch on certain days will make up for the expectation of "crunch time" and deadlines, forgetting that even short stretches of long hours are fantastically detrimental to creativity, productivity, and long-term happiness.

The culture of IT is often a Young Male culture of Macho Bullshit, where staying up all night to do something is considered a bonus, when in fact it's likely to be a bad decision even if the person doing it is good at the work. For every hour over eight worked by the average human being, productivity drops by 30%. For every hour over 10, it's 80%. Also, it's bad for brains and brain chemistry to be taxed without breaks.

All of this is to say that self-care is fantastically important. It's better for the person, it's better for the employee, and it's better for the company, too. Well-rested, well-fed employees are going to be much better at finding and fixing issues, and avoiding them in the first place.

So now my burn board also includes 'toast and tea' and 'lunch' as items. Here's hoping I can keep up my velocity!

Friday, November 14, 2014

The Mistake of Hierarchy

I was having lunch with a friend the other day and they were selling me on applying for a position in their company, which I was totally up for and interested in and in fact had already done for a couple of other positions. And the point we kept coming back to was the idea that I was "overqualified" or that somehow putting in for this job would be "beneath" me. Now, this is a customer-facing position in a software company where the users are generally going to be relatively bright engineers or sysadmins, so it's not exactly a Comcast Helpdesk job, but there was still this stigma, this idea both in their head and in the culture in general that a customer-facing role, any customer-facing role, is somehow less than a job as, say, a developer, or a devops job, or something like that.

I worked in a technical support role for six years, the last three or so in a supervisory role (mostly because if I'd've taken the "manager" title, my salary would've gone down, given all the OT we were expected to do). It shaped the way I think about IT, about as-a-service solutions, and as an Operations professional, in some very fundamental ways, ways that often get overlooked in a technical interview or on my resume. Thinking about the customer as something other than a PEBKAC, thinking about the solutions being developed as a tool for others rather than just a clever new toy, is now a bedrock principle of my operational ideology. But that sort of work and that sort of thinking are often devalued in IT, for reasons that are not entirely clear, except for this false hierarchy that has been created by... someone? The culture, I guess.

The hierarchy I keep seeing goes something like this: there are all of the people who aren't IT people, and they exist basically as parasites: sales, customer engineering, HR, etc. We'll set aside for the moment that all of those roles are what make it possible for the rest of the people to have jobs, but just bear with me for a bit. Then, in the IT "approved" levels, there are at the bottom anyone who's customer-facing: account reps, technical support, etc. Often this level also includes anyone from Alphabet Row: the CTO, the CIO, the CEO, who used to be part of the elite and then decided they wanted to stop doing "real" work. Then, above them, are the "true" operations people: the sysadmins, the dbas, the SAN managers, network engineers, etc. Then, at the top, are the "real" coders, the engineers that write software and find clever ways to be clever.

If you're like me and came up in Ops, the last two layers are swapped, but that's tribalism for you. But this hierarchy is built on a model that looks almost nothing like today's IT industry. It hearkens back to the old Microsoft-in-the-90s shops where if you wanted a job in IT you got a phone-bank job in the back of the paper with no experience and were expected to either educate yourself or burn out and go back to flipping burgers. Nevermind that that model didn't even exist then, that was just the template for this image we have now.

The model for software has changed significantly in the last decade or so. There are no longer "ship dates", or "gold masters", or for that matter "boxes" in which physical media is shipped. If you're lucky, you're working in an Agile shop where you don't even have "patch days" or "releases" (though there's only a couple of places, like Twitter and Facebook, where that's actually true, and the lesson to be learned there is that a successful business model that relies not at all on the user base is the most valuable piece of Agile Methodology possible). If everyone in the organization doesn't understand at a fundamental level who the customer is and why they are important, the organization is likely to struggle in its growth plan and maybe even kill the company. 

So it turns out that having people talking to customers, people who know what they're doing and a have a strong understanding of the fundamentals as well as the product being sold, is vital to a healthy company and a good growth plan. It's seven times more expensive to get a new customer than it is to keep a current one. Good, responsive, intelligent technical support for a company is about as valuable as another round of startup funding. So disabusing not just the culture but the workers themselves of this false hierarchy is fantastically important. A good company needs to value TS and Helpdesk teams just as much as the rockstar developers working on the New Shiny Thing for the next release. And most importantly, there needs to be a clear career path for those folk, even if that means creating new roles in the TS framework. 

I liked my time in TS, and enjoyed both the customer-facing work and the emergency-response role. But it's wearing to be at the bottom of a pyramid with no clear way to move up, and very little reward either in kudos or cash for a lot of what is sometimes very hard work. I'd love to work at my friend's company, and not just because it would mean a job, but also because the environment and the people and the customers sound pretty awesome. So I hope they don't think of me as "overqualified" and I hope they don't think I see this as "a step down". That's the culture talking, not me.

Wednesday, November 12, 2014

What I Did For My Winter Vacation

(Or: the BlizzCon After Action Report)

Friday and Saturday my partner and I went to BlizzCon. I may have mentioned that. Here is what we did.

Thursday: Flew in early to LGB(T), a great little airport which happens to have a JetBlue direct flight from PDX. PDX is also a great little airport, which makes the experience of flying the PDX-LGB route one of the more pleasant experiences you can have while flying these days. Even the TSA people are unfailingly polite and positive. We then grabbed our rental car and got In-n-Out (because In-n-Out). We ran a couple more errands getting various electronica we'd managed to forget to pack, and then we were off to the Anaheim convention center to get our BlizzCon badges and goodie bags. Some folk had lined up for hours to be the first through the door at registration; we showed up at around noon, strolled straight through the line, and never stopped walking until we were back at the car, loot and ID in hand. This will be a theme for the whole con, actually: if you're not particularly invested in being first, there's really no reason to spend a lot of time in queues. Not that I didn't spend time in queues, but it was a much less daunting and painful experience when compared to other cons I've attended.

We hung out, checked out the loot, and then grabbed dinner at a fantastic hole-in-the-wall place which we'd discovered on our last trip to Disneyland, Lindo Michoacan. It was still there, and still delicious. As far as I can tell, there isn't really any great authentic mexican food here in PDX, so the chance to really tuck in (the menu is in Spanish and if you can't read it you have to ask for the gringo menu) was great. After a filling dinner, we went and picked up a fellow convention-goer from the airport, and then the three of us hit up the World of Podcasts preconvention party in the Hilton. Drinks and panels and art, oh my! We also met up with some friends we hadn't seen in ages, and two friends we'd never met in person before, and had a great time being terrible and disruptive.

Friday morning we headed over to the convention center, and tried to avoid the gigantic crowd of people waiting for the doors to open. Since the Opening Ceremony was being broadcast everywhere, and there were big screens everywhere, front-row seating wasn't really a priority. Instead, we wandered around avoiding the initial crush, then homed in on our more hardy friends who had scored some great seats and saved them for us. It pays to have dedicated friends.

Mike Morhaime delivered his usual earnest-but-incredibly-stiff speech (because while I'm sure he's a great person it's fantastically clear that being a public figure isn't really his forté), which included a condemnation of GamerGate. Then, of course, Chris Metzen took the stage, and there's a guy who's comfortable in front of crowds. That was when they announced the brand new IP that rose from the ashes of the TITAN project: Overwatch. A pretty impressive phoenix, too; a new IP in a new genre-space that Blizzard hasn't tried to compete in before, it's definitely got people talking. Then they officially kicked off the Con, and it was "wander around and find stuff to do" time. I mostly orbited the space, deciding that this or that line was too long for me, and checking out the cool cinematics, interesting art, and fantastic cosplay.

For lunch my partner and I hit up the carts lined up outside the convention center, and then dove back in for a while, me doing my random walking while others in the group pinned down what they wanted to do. We stood in a surprisingly short line to play the new Hearthstone expansion, Goblins vs. Gnomes, and then we went on to get creamed trying out the new Starcraft II expansion, Legacy of the Void.

Not wanting to hang around so much for the talent contest (though the MC this year was Chris Hardwick, a much better choice and a much more enthusiastic and positive guy all around), we bailed a little early and went for dinner, and then post-convention drinks at more parties.

Saturday was the second and final day of the con, and we got there rather early in a bid to get a good spot for the Live Raid. The Live Raid sounds pretty silly: two raid teams competing against each other to complete content in the least amount of time. It's not PvP (player versus player) (though there is a PvP Arena competition which is pretty cool), it's strictly PvE (Player versus Environment), so what's really on display is strategy and proficiency in managing a team and working as a team to overcome obstacles. I like team-based stuff, and I'm already in a raid, but I was shocked at how into watching (and rewatching) the Live Raid last year; this year, on the big screen with a room full of fans, it was brilliant. My partner mentioned that now she knew how football fans feel at a live football game, where everyone is watching and reacting and understands what certain things mean and why other certain things are good or bad or surprising. It's true that the crowd watching the raid, no matter which side they were rooting for, was very engaged and interested in the experience itself. If Blizzard decided to put on some sort of Live Raid competition every week, I would buy a season pass and watch it every damn week. I'd buy jerseys and foam fingers and everything. I would be so invested in a Raid League, it's not even funny.

After the Live Raid, which was awesome, we then went to catch the collection of various trailers, cinematics, and clips at the theatre they set up. They had rolled everything into one 30 minute presentation which included a teaser trailer and a screen test for the Warcraft Movie (due out in 2016) and that was very, very, good. I then snuck back to the hotel for a nap and a soak in the hot tub while my partner and some friends chain-queued for more demos. I joined up with them and tried out the Overwatch demo, and I have to say I was actually quite impressed.

Overwatch is a FPS battleground-model game right now, which means it's squared off to compete with games like Team Fortress 2 or Call of Duty, which is a risky and somewhat gutsy move on Blizzard's part. That said, what I saw and what I played, I liked. It's still early days; the beta isn't even going to be live until "sometime in 2015", but the build we demoed was pretty solid. The character models and gameplay felt good and tight, if not tuned perfectly, and the character designs and abilities were distinct and engaging enough that even though I don't usually play FPS games, I'll be interested to try this one out. Plus, Blizzard explicitly said "we want to do better with diversity and gender representation and here's our first try," which was five women, three PoCs, two robots, and a hyper-intelligent gorilla wearing glasses. Which is a pretty good first try considering TF2 has no female characters and Ubisoft keeps complaining that women are too hard to code.

The closing act for the con was Metallica, and I wasn't a Metallica fan even back when I didn't have hearing problems, so instead we played some more of the demos, then headed out for dinner and delicious, delicious sushi. After that we went back to our hotel and played Star Fluxx and drank until the bar closed.

And that was BlizzCon 2014! It was a lot of fun and assuming I'm working again soon, we'll try and go back next year. Seeing friends both old and new was great, and I am sad we didn't get to spend more time with everyone, and part of the hope in 2015 is to make that possible by getting a more centrally-located room with space to entertain with boardgames and drinks and whatnot.

The Limits of Human Endurance*

* - a very specific human, i.e., me.

This past weekend was BlizzCon, the gaming convention for all of those people out there (like my partner) who like to play videogames made by Blizzard with friends. I'm not as hardcore as some other players (like my partner), but as a "filthy casual" I did enjoy both the spectacle of going to BlizzCon and the chance to meet up in meatspace with folk who I've been friends with for a while. We had a fantastic time doing random stuff both at and not-at the convention, and it was, for the most part, quite enjoyable.

The trick is, I'm anxious in crowds. This didn't used to be a thing, but somewhere over the last ten years or so I've developed a pretty serious anxiety problem in groups of people; where there are crowds of any sort, I tend to not do terribly well, and when the crowds get loud and random, I get even less functional than normal. Thinking about it, when I was younger being up on stage in front of people would terrify me to no end, but being in the crowd was often quite freeing; now that I'm older, being in the crowd terrifies me but the idea of getting up on stage in front of them is if anything energizing. That's an interesting point to come back to some other time. Right now, I'm talking about my limits and crowds.

I had several moments during both days when I had to "check out", leave the convention center, and just sit and be still. Medication helped (I think without medication I couldn't have gone at all), but the ability to step away and just breathe was really important.

We also had a two-day visit to Disneyland planned, and the assumption was that Sunday would be busy but Monday (when everyone went back to school) would be OK. And Sunday wasn't bad at all; we had a very good time running around and taking rides and such with several of our friends, and I was even rather looking forward to the next day.

However, the thing we hadn't counted on was that it was Veteran's Day, and so all the schools were closed. Which meant that Disneyland on Monday was actually more crowded not just than I expected but more crowded than when we went on Sunday. This resulted in me damn near having a breakdown, saved only by the judicious application of supportive hugs from my partner and the decision to completely abandon the park for a second day. I still feel pretty bad about the wasted money, but it was either that or having a panic attack.

A point that my partner made later, which I hadn't thought about, is that crowd management (for me, at least) is obviously a finite resource (just like willpower, decision-making, and dozens of other resources that human brains use all the time), and we had manage to find my limit. Sometimes finding a limit like that is relatively easy, because a resource is ablative; other times, finding a limit is hard because it's a boolean setting. I was fine, until suddenly I wasn't. And at least part of that suddenly not being fine was the mismatch between my expectation of crowds and the reality of the crowds themselves. Sometimes that mismatch can work in my favour; if I'm expecting or remembering worse, and it's not as bad as I think, that's often a huge relief that allows me to deal with stuff better than I normally would.

Managing expectations and finding limits are both as important in the industry as they are for any human experience. Planning for failure modes isn't defeatist thinking in life any more than it's defeatist thinking to have a Disaster Recovery plan. Knowing when to say when and abandon the sunk costs is just as important as investing and committing to a plan or a technology.

Wednesday, November 05, 2014

Early to Rise

Tomorrow at 7 AM I board a Jetblue flight to Southern California for an extended-weekend vacation with my wife, who (by virtue of being gainfully employed) is financing all of this (along with some very generous friends). We're going to meet friends whom I've known for quite some time. Some of them I've met in-person before, and I'm looking forward to reconnecting. Some of them I've never met or seen, and I'm looking forward to putting a voice and a face to the personality I already know. Some of them I consider colleagues and heroes and I just want to give them whatever support and cheering I can.

It's odd, though, because as I get older and grayer, I get more interested in playing games and thinking about the games I play, and less interested in identifying as a "gamer" as a significant indicator of my personal identity. Honestly, I'm not sure I'd make the grade, as it were, as a gamer in most circles: I came to videogames pretty late in my life (like, late-20s late). It was my mother and my sister who were really into videogames when I was a kid. The Atari 2600 and the TRS-80 and the Commodore 64 that lived in our house weren't mine and I wasn't particularly engaged with them. Even when I was lobbying my parents to shell out the cash for a 56K modem, it wasn't to play games on BBSs, it was to make connections and share recipes and programs and stuff like that.

I've been playing tabletop games since I was eight or nine, and I started playing euro-style boardgames when I moved to San Francisco and got involved in that, but again, that was in my 20s; before that, I was mostly about rolling dice (though I didn't really engage with Dungeons and Dragons until 3rd Edition, and I know those words probably don't really mean much to most folk but trust me I just forfeited my "nerd" card with that statement).

I read a lot of genre fiction but that doesn't make me a "fictioner"; I've watched a lot of movies and TV but that doesn't make me a "movier" or a "TVier". I play games, but that doesn't really make me a gamer. And I've spent a non-trivial amount of time distancing myself from the "nerd" and "geek" subcultures because they are often fantastically toxic and frequently unwilling to even admit to the toxicity.

The thing is, though, I'm a male and I'm white and I work in IT, so I get a pass on a bunch of stuff by being emblematic of the norm in all of these subcultures. I wear glasses and t-shirts and jeans and I can quote Monty Python so my gaps or quirks are overlooked. No one challenges my right to engage in the conversation about Batman despite the fact that I've only read a handful of trade paperback collections by only a couple of authors that I really like, and none of the historical stuff. I can pass, so I get a seat at the table. I don't have to produce my bona-fides.

This got really dark and maudlin so I'll just finish up by saying that I'm really looking forward to seeing my friends. And I'm glad I get to make this trip with my wife, who loves and engages and invests in all of this and thereby makes me want to love and engage and invest in it, simply through her force of will. I'll be back next week with more musings, and probably a couple of days of cursing at python.

I promise I'll have fun storming the castle!

...Or I Will Replace You With A Very Small Shell Script

Once again I remain convinced that there is no problem that is insurmountable when a possible first-draft solution includes a hacked-together bash script.

I spent the better part of an hour trying to bang my head against Windows, gave up, and grabbed my Mac laptop, opened a terminal, and accomplished the end-goal in 10 minutes, which included writing my own hacky first-draft do_the_thing.bash file. More and more, my solutions (including production-ready solutions in some cases) start life as do_the_thing.bash, and eventually evolve into a proper script with error conditions, failure modes, self-checks to prevent multiple runs, etc. But mostly, they start as do_the_thing.bash, which I blame a developer friend for doing in front of me and thereby teaching me terrible habits.

My own personal goal, after I get back from my convention trip, is to throw away do_the_thing.bash and rewrite the entire process, soup to nuts, in python (including checking for ruby and installing it if needed, among other steps)(and yes, I know, but ruby is also a thing I should be learning, and I feel like this is a good test case for that). I'll be leaning heavily on my more advanced dev resources (aka, my friends Rachel and Matt), but this is the first project I feel really excited about trying on my own.

When I was just making the transition from Tech Support person to DBA, I was often convinced that it was faster and easier for me to just execute a given command directly, rather than building a tool that executed a command. But as I've grown and matured, I've been put in positions where the execution of a particular command isn't the issue; it's the repeated execution of some set of commands that must be automated, and so I've built up a repository of script fragments stolen researched and designed as a library. It happened in bash and SQL; it's starting to happen in python, and I imagine as I get more dev experience it'll happen more and more in other languages. Often the hardest part of learning is making the transition from reinventing the wheel to recognizing that it's not always necessary to reinvent the wheel. Wheel-inventing is an important step; that's the point where I'm learning the "why" of things, not just the "how".

For now, though, I'm all about do_the_thing.bash. Or, or do_the_thing.js, or whatever. First build a skateboard. Then build a bicycle. Then build a motorcycle. (As a life-long motorcycle rider, we can just stop there.)

Monday, November 03, 2014


Friday night I was very privileged to be able to hang out with my wife at her place of employment; it's a very cool, very forward-thinking place to be working and I'm extremely grateful that my wife gets to work there (not the least of which because it means that my night-terrors about being out of work aren't money-related). I've met a number of really nifty people who work there, but that night was special. That night, I was surrounded.

Specifically, I was surrounded by enormously talented, confident, intelligent women who work in development, engineering, and operations. It was not exactly brand-new to me; I've taken to trailing along to PyLadies with my partner and it's where I met some really fantastic people I'm very happy to know. But this was an environment where everyone knew one another; everyone was relaxed and open and laughing and having a good time and talking about nerdy stuff and the energy was just fantastic.

I tried very hard to be quiet. As a man, especially as a white man in IT, my voice is basically the default one; it's the voice that comes out of most of the CEOs and CTOs and CFOs and the rest of the alphabet-soup-level people not to mention most of the Dev and Ops people. So when I found myself in a situation where my voice wasn't the default, I tried very hard to listen more than I spoke.

I had a great time, but I was reminded again that there are amazing people here in Portland and amazing companies here in Portland and I want to be a part of that amazing stuff. And that listening is a skill that I need to work on.

Friday, October 31, 2014

Driving and Riding

I spent yesterday not going out.

This was deliberate, because I spent Wednesday with way too many people trying to kill me.

Now, normally, I like to keep the number of people trying to kill me as close to zero as possible, excluding my ex-wives, but sometimes you have to leave the house and run errands or whatever, and when I do that I do it on my motorcycle. I have a Suzuki Boulevard C50T, which I bought brand new a couple of years ago and really love riding. It's comfy enough for daily riding, it's big enough I'm not worried about taking it up hills or on the highway, it's nimble enough that I'm comfortable in traffic, and it's small enough that I get pretty good gas mileage (on the order of a VW TDI, and it's easier to park).

Riding a motorcycle is great, even in the rain; if you're geared properly, the rain isn't even that big a deal: just take a little more care, give yourself a little more space, and be aware of your temperature, and you're fine. I committed to riding my bike in the rain when I bought it because I wanted to get my money's worth from it. If I didn't ride in the rain, I'd probably get to ride it 70 or 80 days a year; if I am willing to ride in the rain I can ride for 300+ days a year (this past February on the anniversary of my bringing it home I ran the numbers and I rode 311 days last year).

Riding a motorcycle is pretty relaxing, too; it requires concentration and attention, and so there's a focusing effect that even a short ride can have that's salubrious to the soul and restorative to the mind. By connecting yourself with the bike and riding with your whole body, you disallow the rest of the world permission from taking over your thought processes, and you get to think about what you want to think about, whatever that may be. Hopefully, it's mostly about riding the motorcycle. But sometimes, what you're thinking about is all the people who are trying to kill you.

Because a bike isn't a car, there are a lot of drivers out there who just mentally edit them out of their mindscape. And because driving a car has become something that most people do while doing something else, it gets dangerous. And I don't think most drivers recognize how dangerous. Even in slow traffic on surface streets during busy times, the average driver is still whipping around a four thousand pound box of liquid explosives and flame at 30+ feet per second. If a car hits me going 25 miles an hour, it's basically like I fell off a second-story balcony onto the car: if I'm lucky, I'll break something unimportant.

Wednesday, it was raining, and that makes me more cautious. So I was able to avoid the three people who tried to change lanes into me. I was able to spot and avoid the SUV which nearly ran me over. I was able to get out of the way of the hot rod on the highway who couldn't stop in time. But really, the average ride for me is a crapshoot when it comes to other vehicles on the road.

I imagine it's much worse for bicyclists, since they don't even have the protection of an engine, but the sheer entitlement of some drivers makes me wonder how there aren't more fatalities every day from traffic accidents.

I probably should try to make this about something, probably something in tech, but that would be a pretty big stretch, but let's try this: if you're designing software or software processes, you need to think about the bike riders: the careful, dangerously exposed, invested users. Try and make sure you're not accidentally trying to kill them. Maybe even add special lanes where the normal users (car drivers) can't go, so they can do what they're trying to do safely and comfortably.

Nothing like a bad metaphor to end a blog post about boring personal shit!

Thursday, October 30, 2014

The #OpsLife In Action

I am currently, as they say, a "gentleman of leisure" in my career. That is, I am between gigs. Which is to say, I'm currently unemployed.

This is weird for me, honestly; I've been more-or-less continually employed in one sort of job or another since I was 14 and got my first job doing the breakfast shift in a Hardee's Drive Through. I did some time as a security guard for a while after high school, and then I read this amazing book: Microsurfs, by Douglas Coupland. I think for anyone who was inside the IT industry at the time, it's hard to understand the draw of this somewhat-cartoonish story, and for anyone outside the industry at the time, it's hard to understand the appeal of the industry in any way, but for me, a 20-year-old living in the bleak winter wastes of Kansas, the life described in the book was exactly, exactly, the life I wanted for myself.

So I packed all of my shit (and all of my wife's shit) into a rented U-Haul, abandoned everything, and drove to San Francisco. No job prospects, no contacts, nothing but the absolute conviction that there was a life in IT in San Francisco that I had to be a part of.

The reality of living in San Francisco in the late 90s and working in IT was, as one can guess (or knows, if one has any experience of that time), not exactly as portrayed. I did not become a computer programmer; instead, I went almost immediately into the Support branch of the Operations side of the house, and have spent basically my entire career there. Fielding end-user calls for legacy systems. Taking on more tasks and responsibilities, eventually managing a team handling the 24/7 support as first-line agents, and chairing High-Severity conference calls to discover and solve company-impacting service outages. Getting burnt out on that, and moving into the database administration end of the work, leveraging my "utility infielder" abilities to pick up the projects no one else wanted. Nurturing relationships developed during 3AM phone calls to solve problems before they got to the "outage" stage. Making friends and finding support among colleagues both inside and outside Operations, and developing a mindset that was focused on the customer as much as the environment.

Taking on a role slightly too big for me, as an exciting opportunity, and working and stretching and expanding to fill the role, and then seeing the role change as management changed, and suddenly being out of a role to fill. And contracting for the first time: parachuting into issues with a new eye and a fresh perspective and presenting solutions without any backup, and having them work, first time. Exciting times, different times, times not clearly imagined nearly half my life ago.

The Big New Thing in IT these days is the concept of DevOps. It's sort've been around for a while, and the definition of DevOps changes depending on who you ask about it, but mostly it's the idea of breaking down the barriers and conflicts between the guys building the tools and the guys responsible for managing and maintaining the tools. It's a cool idea, and it's something I wasn't honestly prepared for at this point in my career. It's meant I've had to do a lot of catching up in a short time: teaching myself python, taking classes for javascript, reading books about node.js and other development tools. Leaning heavily on my experience with Oracle and MySQL and Postgres and bash and perl to expand my horizons to find a new way of thinking about what I do, and a new way of looking at the world. Well, not totally new, but maybe the same way through a different lens.

I've met and made friends with some awesome people, many of whom I'd love to work with again if the opportunity permits. And learning to think about development outside of the "black boxes thrown over the wall" model of my OpsLife experience has been very interesting. Adding more tools to the toolbox, as my wife says.

At 20, I changed my entire life to work in IT as a career. At 40, it feels like I'm doing it again. It's pretty scary, but honestly? The life I have is better than the one I imagined. Or the one Douglas Coupland wrote about, for that matter.

Friday, October 24, 2014

Thoughts on Shootings (and the stuff that went down in Ottawa).

There's a scene in the pilot episode of Life (the TV series with Damian Lewis and Sarah Shahi) that I still remember as being the moment where I fell in love with the show. It was the moment that carried me through the really fantastically bad parts of season two (and there were some really fantastically bad parts in season two). 

It's a pretty normal moment for a police procedural: our detectives have tracked down the bad guy and are kicking in the door because that's what cops on TV do, and there's a shootout and the bad guy gets shot and dies, and we in the audience are all supposed to feel good about it because the bad guy was a bad guy and the cops are the good guys.

That's not the thing here, though. We've been told the bad guy is a bad guy. He's in an apartment with enough coke to get a good chunk of the LA Metro Area high, and it's pretty clear that the bad guy killed a 9 year old to show how much of a bad guy he was. But anyway, there's a shootout, because TV, and the bad guy gets shot by Sarah Shahi's character and falls down on the gross, dirty bed. And Damian Lewis' character runs over and kicks the bad guy's shotgun away, and leans down and puts his hand on the bad guy's forehead, and just holds it there. And he whispers "Shhh. It's all a dream. Go back to sleep, it's OK. It's all just a dream."

On one level, it's a comment on Damian Lewis' character and that character's somewhat off-kilter survival methodology, because as an oddly-shaped buddhist, he points out a number of times that life is really just mostly a dream (it's more complicated than that, even in the show, but just bear with me) so what he's saying is, at least to him, on some level, true.

But it's also this strange moment of comforting, where other cop shows would be all like "welp, nice job, well done, ignore the dead guy", there's this moment of bringing the humanity to a character that we-the-audience didn't even know existed two minutes ago, and will stop existing right there in front of us. It's humanizing on a number of levels, not just for the protagonist we're supposed to like, but for this obviously-bad-person who existed simply to be killed. It was a moment that said "look; even the bad people, even the really bad people, deserve comfort and love, at least a little bit, at least at the end."

I am profoundly moved at the article going around from the newspaper in Ottawa about the people who tried so hard to comfort and save the soldier who was killed. I'm glad that story is being told, and I think it's a great lesson to learn for all of us. 

But I also wonder: did anyone comfort the man who died when the Sergeant at Arms shot him to stop him from killing anyone else? 

"When you are dying, you need to be told how loved you are." That simple human moment is so, so important, not just for the person being comforted but for the person doing the comforting, but for we-as-the-audience, we-as-human-beings, because we are all, good and bad, angry and happy, sad and joyous, hurt and hurting, human beings together. And at the end, when we breathe our last, good or bad, hero or villain, it is important that we are reminded at that moment when we are present for each other in whatever way: "When you are dying, you need to be told how loved you are." We know that Michael Brown didn't get that comfort. We know that Trayvon Martin didn't get that comfort. 
Jaylen Fryberg didn't get that comfort.

I am sorry for the victims. I am sorry for the perpetrators. I am sorry for the RCMP veteran who had to kill someone to stop them. I am sorry for everyone who had to witness it, and for all of us who saw it and read about it and knows someone who knows someone who was there. I am sorry for all of us, all of us human beings, that it happened. But I do hope that we don't forget that those words, those brilliant, simple words, are as true of the most despotic villain as they are of the most virtuous hero.

"When you are dying, you need to be told how loved you are."

My wife would remind me now that we are all dying, every moment; that we are all one breath closer to the last one. We know that Michael Brown didn't get that comfort. We know that Trayvon Martin didn't get that comfort. 
Jaylen Fryberg didn't get that comfort.

You are loved. All of you. Every one of you, even the ones I don't like very much. You are loved. You are so, so loved.

Thursday, October 23, 2014


I was thinking about commenting in another thread on feminism but realized that given the question and the subject matter, my best bet and best method of being feminist was to shut the fuck up and get out of the way. There are places where my voice can be an important one, but this was not one of those places.

Mostly, as a white male feminist, my job is to listen. I must, must,must remember that. 

Tuesday, September 30, 2014

The Secret Service As A Service

Because I'm a white guy in America, I'm going to weigh in on something over which I have no control and about which I have strong opinions, because Privilege. In this case, it's about the Secret Service.

A couple of important things to remember right off the bat: first, the Presidential Protection Detail is a very small part of the duties of the Secret Service; mostly, the SS is involved in counterfeiting and other types of currency fraud. Whether they should be or not isn't the question at hand; the truth is that the PPD is just the most public face of the Secret Service, and the one getting kneecapped in the press and in Congress right now. Second, the PPD includes both the guys in sunglasses and cheap suits you see and a bunch of uniformed guards you mostly don't. The Uniformed Division of the PPD is made up mostly of ex-cops, some of whom have served in other parts of the Secret Service, some of whom were hired on special. Thirdly, all of them are on government salary, which generally means they could go damn near literally anywhere elseand make more money for less hours. If they haven't, there's a good chance there's a reason why. For some (arguably, most), the answer is "a chance to serve the President and the Country", but there's a non-zero chance the answer could be "because no one else will hire me". 

So here's the thing: government payroll has been destroyed under the current administration. I'm not blaming President Obama; it's Congress that has the job of determining when and where to spend money, and they've done a fantastically bad job at it over the last six years or so (The 80th Congress, from '47 to '49, was called the 'do nothing' Congress and they passed 906 bills; the current 113th Congress has passed less than 200). Coupled with the fact that the current President has received three times the number of threats as any previous president, Democratic or Republican, it means that you have a staff that is underpaid, overworked, and with no relief in sight. The White House itself has had all sorts of work, including safety and security work, deferred for budgetary reasons since the middle of the Previous Administration, so basically everything there is 15 years out of date (at least) to begin with.

So: an old, unmaintained workplace; an underpaid, overworked, underappreciated, demoralized workforce; and no hope or expectation of improvement for at least two years.

It's a truism with me that any question that begins with "why" can always be answered with "money". If Congress is really unhappy with the performance of the Secret Service PPD in recent history, the answer isn't more hearings, it's more money. And not even a lot; for a couple hundred million a year the PPD could bring staffing levels back up to pre-shutdown levels, at least (which is the absolute bare minimum it should be; arguably the PPD for President Obama should be much, much bigger given the threat assessment load).  The PPD right now isn't lazy; it's exhausted

Oh, and if you're thinking of saying something stupid, like "this isn't about race" or "government is too expensive" I invite you to rethink posting here. Our current tax rate is fantastically low anddepressingly unequal, and complaining about high taxes and too much spending is just going to end up with blocks, uncircles, and hard feelings. Our Federal government isn't spending enough; it's also spending in all the wrong places, but that's a whole 'nother rant.

Anyway, that's one of the things I'm angry about this morning. There are others, trust me.