Category Archives: Uncategorized

Message Awards

Some thoughts about a new genre fiction award proposal in no particular order…

  1. If you are complaining about fiction that is overly politicized (especially so far as to call it “message fiction”) but fellate the weary corpse of Heinlein, I have to assume you’ve completely forgotten The Moon is a Harsh Mistress, Stranger in a Strange Land, Starship Troopers, Farnham’s Freehold, or pretty much his entire catalog! (And I say this as an enthusiast of Heinlein’s work; an enthusiast that owns nearly everything that he’s written—come on now!)
  2. If you complain about the burdensome message of horrible books that you’ve never read, I have less than no respect for your position. I managed to gut my way through some absolutely abhorrent tripe this Hugo season to be able to vote in an informed manner—it’s intellectually dishonest to make such claims from utter ignorance.
  3. At all costs, avoid following behind multiple years during which the Hugo awards were bombarded with claims of  nominations and votes governed by an empowered clique (without any evidence to support those fantastic claims) with an attempt to create a new award that will literally: have overlords in the form of a board of directors; have a rank of judges to disqualify works unilaterally based on perceived politics; and gate-keep nomination and voter membership by virtue of a trust web that can only be described as an algorithmic clique (unless you immediately acknowledge the almost-but-not-quite-funny irony of the proposal.)
  4. If you do the above and fail to call your award “The Cliquies,” you’re fucking dead to me.
  5. You cannot honestly and fairly make the claim that the only reason a convention would invite (for numerous years) a Hugo-winning, Nebula-winning, multiple other fucking award winning author is because of a shift to some kind of political correctness—especially in spite of NUMEROUS FUCKING EXAMPLES of honored guests of the opposite variety (and an equally ponderous amount to indicate that they’ve always invited “lefties”).1
  6. I will also accept, as a name for your award, “The Morissettes” (because it is, in fact, a little too ironic, dontcha think?)
  7. If you rail against “message fiction” because it replaces “good story” with “boring message,” then applaud the creation of a slate of replacements that includes “The Parliament of Beasts and Birds” and consider that to be completely reasonable behavior among adults, then not only do I hate you for clearly having failed to read Wright’s piece of shit, but I doubly hate you for forcing me to gut my way through that sack of message-laden drivel. Seriously, every fucking one of you that put that load of shit on the ballot should be ashamed of yourselves; that’s just fucking mean.2
  8. Another good name for your award is the “Message Awards” I’m not sure what the award would look like for this one, honestly, but I’m looking forward to seeing it.

On a more serious note; I am a huge fan of the idea of anybody who feels that their point of view (or their community’s point of view) is underrepresented by a given set of awards making their own awards. If nothing else, it stands a reasonable chance of encouraging more folks to read, and to read more widely. But don’t piss in my face and tell me it’s raining—if you want to make a symbolic middle-finger to the Hugos, own that shit. Pretending that you’re not creating a new clique to replace the clique from which you feel excluded while doing precisely that so transparently—well, it’s just insulting to all involved really.

 



1 I say this as Jer, a person who has been attending the convention in question for over a decade. My views are not those of Jer, member of the board of directors, nor do they in any way represent the views of Penguicon, the convention committee, or the board of directors.
2 I’m not kidding, I’ve read scriptures more compelling and Chick tracts with less blatant message.

Upgrading to Windows 10

I upgraded to Windows 10 this weekend on the only Windows system I use, my gaming system. I had it on good authority that the games that I’ve been playing occasionally were well supported (pretty much Guild Wars II) and that it was an improvement over Windows 8 (which, unfortunately, came on my system and I was too lazy to downgrade it).

Overall, I’m pretty happy with it. They got rid of the fullscreen start menu replacement in favor of a much more user friendly option that is a natural extension of what they had right in Windows 7. There are, however, some pretty significant privacy concerns, so right off the bat I did the following (most of which I document here in case it’s not exhaustive and for later reference):

  1. Privacy Settings
    1. General: Turned all off
    2. Location: Limited to only those apps that I want to see my location
    3. Camera: Limited to only those apps that I want to have camera access
    4. Speech, etc: Turn off “Getting to Know You”
    5. Contacts: Turn off “App connector”
    6. Calendar: Turn off “App connector”
    7. Feedback: Set to “Always” and “Basic”
    8. Background Apps: Turn off all but apps I actively use and want running in the background (Twitter, Dropbox, etc)
  2. Wifi
    1. Wifi Sense: Turn off “Suggested” and “Contact” connection
  3. Cortana
    1. Turn off Cortana
    2. Turn off search suggestions
    3. Turn off popular news
  4. Edge
    1. Save passwords: off
    2. Save form entries: off
    3. Do Not Track request: on
    4. Search suggestions: off
    5. Block all cookies
    6. Media licenses: off
    7. Page prediction: off
    8. Set Chrome or Firefox as default browser then never open Edge again

Building a Theocracy: Step 1

My social media is fairly bipolar. By any rational standards I’m fairly centrist in my views, which leaves me appearing fairly liberal in an America that keeps trying to skew itself radically to the right. By virtue of being a pretty mixed bag of liberal and conservative views (on a Nolan scale I tend to land fairly consistently near the center of the bottom edge of the north-east quadrant) the folks that I read and that I follow are all over the map. So when some ignorant bigot named Kim Davis has opted to “follow a higher law” than the SCOTUS and not give marriage licenses for religious reasons, it has made the divide amongst those I read even more apparent than usual.

This is troubling, because there are some pretty simple concepts at work here, but the most obvious one is stupidly simple: this is protecting you, you fucking religious nutbags!

Freedom of religion not only doesn’t give anyone the freedom to foist their religious beliefs off on others, but it very specifically prevents the government (or officials acting on behalf of the government) to foist their beliefs off on patrons of the government’s services. Let’s think about it this way: would it be acceptable for a person of Muslim faith to deny liquor licenses for religious reasons? Or one of Jewish faith denying a business license to a restaurant serving bacon? Or one of Catholic faith denying a marriage license to a divorced person (*cough*)? Or one of Hindu faith denying a business license to a restaurant serving beef? These are also the purview of the same sort of government officials that you want to have the ability to not fulfill their duty on religious grounds.

So you, Christians who were so inattentive in grade-school social studies as to believe that our founding fathers—who fled religious persecution and who specifically separated church and state repeatedly throughout the formation of this republic—actually had the intention of making it a Christian nation, are being saved from having to kowtow to the whims of anyone with any other religious beliefs by the very law this woefully under-informed elected official is publicly flouting.

It is BECAUSE of our separation of church and state that the Sharia Law that conspiracy-theorists claim is poised to be shoved down our throats can’t take hold. If we weaken the separation of church and state—perhaps by allowing some braindead bigot to ignore it in favor of spreading her very Christian message of hate—then we are doing precisely what is necessary to allow for religious law, for some form of theocracy, to start to happen.

And let’s make no mistake, there are almost as many Muslims and Hindus in the world as Christians, and their numbers are growing far more rapidly than yours. I have little doubt that if religious zealots manage to wedge their beliefs into our legal system, it won’t be solely based on your mythology.

So, ignore the fact that the hatred you espouse is far from Christian. Forget, for a moment, that your Christian religion specifically indicates that you are to follow the laws of your land. You can even put aside the concept that you are cherry picking the pieces of your own book of rules that suit your views and ignoring those that do not. Instead, consider the consequences of continuing to flail about in ignorance and judgement—I suspect that your bigotry and hatred has perhaps made you act outside of your own best interests. Again.

Adopting the Proper Stance

Something like 20 years ago, I found myself in the position of standing in a wide open parking lot with my then-girlfriend attempting to hit me with her pickup truck. (Why I found myself in this position is not especially germane to the story. Suffice to say that I was not then a particularly good decision maker, and even by those standards that this was not a particularly good decision—but I digress.) So there I was, standing in a parking lot, faced with the certainty that I’m going to be hit by a pickup truck driven by somebody who is interested in doing me a tremendous amount of harm.

I did what I felt at the time was the only thing I could do. I charged toward the truck, rather than away from it. Immediately before getting hit, I leapt back in the direction the truck was traveling, I curled my body into a ball, and I tried to aim mostly non-soft and non-squishy bits toward the oncoming vehicle.

The net result was that I was bounced clear of the vehicle—very sore, pretty scraped up, and with a fairly badly injured right arm and shoulder—and took an opportunity to run to safety while she tried to turn the truck around.

Sometimes, you can’t avoid something terrible that’s going to happen; in fact, I think it’s fair to say that a LOT of the time you can’t avoid something terrible that is going to happen. What you CAN do is turn into it, take it head on, and meet it on your terms. Getting hit in the back by an oncoming truck driven by a lunatic could have been a pretty tragic moment for me. By setting at least some of the terms of the engagement, I turned tragedy into a pretty uncomfortable bone bruise and some scrapes and bruising.

When to Hit the Gas

In my last post, I alluded to a set of criteria that I use to determine whether or not it is reasonable to ask a team to work significant extra hours—such as going over 45-50 hours in a week or working a weekend at all. What I didn’t do was describe the composition of that criteria.

I typically am looking for three factors to be met; so when I’m determining if it is appropriate to ask for the additional work, I look for:

Is there a defined, specific, goal? This doesn’t mean “finish the project,” as that is the sort of down-the-rabbit-hole trap that ends up dragging teams to an early exit. This means “we have these clearly defined tasks with clearly defined success conditions that must be done.”

Is the goal possible? My criteria used to be 2-items in length, until I was at a job that delighted in giving clearly defined criteria that were clearly impossible. Nobody should be sent on a death march.

Is the duration and severity reasonable? Saying “we have a clear, specific goal of working 80h weeks for no more than 2 months to do these 100 items” might be sufficiently specific and plausible, but the duration and severity virtually guarantee that quality is going to be thrown out entirely.

These are not the only factors that I consider—length of time since last the developers involved have been asked to do this, how did we get in this predicament in the first place, is this a reasonable thing to ask to get us out of the predicament; these are all also considerations to varying degrees—but the above are the primary drivers of my decision making.

In practical terms, this is handled as a conversation. By way of example, on projects for my current employer, working considerable extra time was brought up in two distinct situations on two separate occasions. In both instances, I sat with our senior management team and walked through the above thought exercise.

In one instance, it was determined that while the scope of work was relatively well defined and possible, the duration of the overwork would be such that it was very likely to destroy quality. It was also likely to have a significant impact on the development team as a whole. In that instance, we decided together that it wasn’t worth the risk, and found a plan that would yield more reliable results.

In the other instance, while the same risks were very much present, the volume of work was more reasonable and we all felt comfortable in using over-work as a strategy.

In both cases, working together first with my management team then with my development team was an essential piece of the decision making process. It has been my experience that this criteria has both served as a gatekeeper for preventing burnout and low quality due to overwork, but it has also served as a educational opportunity for all involved every time it has come up.

Corporate Integrity

Today, I tweeted the following:

40htweet

It was brought to my attention that the last two tweets in my message were unfair to companies that are trying to do better in many ways, but are trapped by past performance and slow-moving internal politics.

I disagree, and I’ll explain now what I explained then…

Until recently, I did not have a good name for an element of my approach to the world in which I have long taken considerable pride. A friend pointed out that the name for it was “integrity,” in the sense that I reliably adhere to a code and to my values. In short, if I say it, I do it, to the best of my ability (and, of course, the converse is also true). I try to be a “man of his word,” even when doing so causes me significant difficulty.

I think that we spend an awful lot of time at our jobs trying to explain away why our codes don’t apply in one circumstance or another; especially when we’re talking about our corporate values rather than our personal ones. Perhaps profits are down and we’re just trying to get through this one ugly time then we can practice our values again. Sometimes we just don’t have the political clout yet to enforce our values, but given some time, we’ll earn it. Most often, though, it’s just not time yet—but soon, soon it will be time!

I would argue that that is bullshit; a code that you only follow when it isn’t being tested isn’t a code. If I don’t steal because it’s too easy to get caught, my code of conduct isn’t “don’t steal,” it’s “don’t get caught stealing.” Likewise, if my dedication to quality is such that I forsake it when it would make me unprofitable, my value isn’t “deliver maximum quality,” it’s “deliver the best quality you can without hurting profits”—which is really just a long way of saying “deliver good enough.” I value my integrity BECAUSE of how difficult it is to maintain when it’s being tested, and as a customer, I value the integrity of companies that do the same for me.

So when I say “my team won’t work extended hours unless it meets a very particular set of criteria,” I mean PRECISELY that. It is too easy to have your values outshone by every exception and edge case that comes up—and it becomes increasingly easy each time that you do it. In practical terms, this means that I walk a very fine line at times between having my team made no-longer-my-team by virtue of a very abrupt demotion or termination; and I walk that line knowingly because I WILL follow a set of strictures that I know is correct and best for both my team and my business. If I lose my job or my team, I will do so knowing I did the right thing, and I will find an employer whose values are more similar to mine in the future. I have been lucky my nearly 20 year career that this has not actually happened—I suspect that this is at least partially because I actively select companies whose values are in alignment with my own, and I am very quick to leave if I find that no longer to be true.

It is also incumbent upon me, though, to assert my integrity—to honor my code if you will—in a way that makes it easiest for my company to help me follow my values. I spend tremendous amounts of energy in educational efforts in all organizational directions to PROVE the value of these points of view, and I spend even more energy in ensuring that my values benefit both team and company; there’s no point in making a stand that leaves us all the former employees of a former company at the end. Integrity, be it personal or corporate, is profoundly exhausting, challenging, and—as a result—rewarding.

So, do I think it is unfair to say that your actions when things are challenging convey your real values? Absolutely not—in fact, I’d turn the question back to you, if you think that it’s unfair. Is your integrity sufficiently important as to make your actions match your values? And if not, why not?

 

 

Website Redesign

Welcome to the new, improved JerLance.com! In addition to getting rid of the “felt clever at the time, but ultimately just annoyed me” Google theme, I’ve also ditched my custom CMS in exchange for an off the shelf solution (with some modest customizations).

Why go with an pre-built CMS? Back when I wanted to spend time tooling around with my blog, my custom-built thing was perfect. It was lightweight, easy for ME to use, and anytime I wanted it to do something different, I just wrote the code that made it so.

Now I have more projects than I will ever finish, so messing with my blog when I just want to be able to post things isn’t really achieving my objectives. Hopefully, now, I’ll finish some of my other projects and post more often.

But I wouldn’t hold my breath.

Strong Teams as Healthy Communities

This is a placeholder that I will almost certainly fail to update later; but I hope that this will one day be a blog post version of the talk I gave at Self.conference 2015.

Notable: I used slides for the first time in a while. It wasn’t the worst. It wasn’t my favorite way, but it wasn’t the worst :)

The slides in PDF format.

Addiction, Depression, and Suicide

I tell a great many stories about being a drug addict and an alcoholic—it’s easy to do with benefit of more than a decade free from actively pursuing those particular hobbies. What I talk about far less is the period immediately after I got clean—the years between my 9th month clean and my third year, during which I was no longer struggling with the compulsion to get high and found myself struggling with the fact that my own personal narrative was badly, badly flawed.

You see, one of the major benefits an addict derives from their drug abuse is deniability. “I’m not an asshole, I’m drunk”, became my battle cry, if a battle cry is something you shouted as you wandered away from the scene of your destruction. Months without drinking or drug abuse revealed to me that my battle cry should have been “I’m an asshole who happens to be drunk!” That’s a tough pill to swallow; finding out that you are actually a devastatingly toxic shithead who brings ruin to those close to him with or without drugs badly disrupted my view of self, and I became very erratic and depressed.

It was during this narrow window of my life that I found myself sitting in the bedroom that I rented from a friend holding the shotgun he kept beneath his bed and crying. It was a place I found myself in a lot around that time. Several times each week—sometimes several times in a single day—I would find myself sitting with that gun simply trying to work up the courage to use it. For weeks I kept returning to that familiar position, wanting so much to no longer be alive and being trapped in life by a fear of literally and figuratively pulling the trigger.

On this occasion, though, I was committed. So much so that I had written my note, had dressed in the clothes that I wanted to be found in, and had gone and sat in the bathtub with the shower curtain pulled closed—I certainly didn’t want to make my exit more of an imposition on anybody else than it needed to be, they’d already put up with so much.

I was saved by a friend who, possibly because of his own struggles with depression, recognized the dangerous place I’d gotten to emotionally and took it on himself to help. He literally banged on the bathroom window with a child’s toy rake until I agreed to drive him to get some lunch. “Lunch” turned into an extended coffee break, lots of driving around, talking and, ultimately, a considerable amount of therapy. Ironically, this friend died a few years ago (far too young), a victim of his self-medicating to avoid dealing with his issues. I’ll never be able to express to him my gratitude for saving my life.

This stuff I don’t talk about so much. The “fun” stories of my active addiction are borderline socially acceptable, especially when spoken about using the past tense. There is nothing socially acceptable about mental illness—people with depression are treated as liars, or whiners, or melodramatic; depression is perceived as a weakness of character and that perception is LITERALLY KILLING PEOPLE. I very nearly died because I felt too much shame about my mental state to seek help—I was willing to die rather than face the judgement and shame that is hurled at people that are mentally ill.

I don’t suffer from recurring depression, but I know many people that do. People I know and care about suffer from varying forms of depression-related mental illnesses. I cannot fathom what that must be like. For a thankfully brief period of my life I was legitimately depressed—not just down, not bummed out, but deep in a hole that robbed me of my energy, of my fight, and of any hope that things even COULD get better. I can only imagine the horror if I had to deal with that on a regular basis.

So when I see people talk about how “selfish” suicide is, or offer vague “help” that amounts to “just stop feeling so depressed”, it makes me extraordinarily angry. It’s a trite comparison now, but it is the equivalent asking a cancer patient struggling through chemotherapy if they’ve tried aspirin for their brain tumors because it once helped your headache. Stop treating depression, or any mental illness, like a personal failing—like it’s something that people just aren’t trying hard enough to avoid. Stop killing people.

If you are a recovering addict or alcoholic, especially if you are early in your recovery, know that depression and addiction often go hand in hand. It is a good idea to find a therapist you can talk to, even if only for a little while. There are numerous resources available to those recovering from addiction—and no matter what program of recovery you are following, there’s always room for therapy.

If you are suffering from depression, you have to know that you’re not alone. I realize that where you are feels tremendously hopeless and like there is no light at the end of the tunnel—but that is a lie that your ill mind is telling you. There is hope, there are better days, and it really does get better; you just have to make it there. Talk to somebody and get some help. Please.

The David Foster Wallace of Software Development

I was trying to describe to somebody what it is that I do in relatively specific terms—a task that proved to be immeasurably more difficult than it should be—and I was casting about trying to find some way to convey what it is that I actually accomplish. I know what I do, I’m there for pretty much all of it, why would it be so difficult to summarize in any meaningful way (or, more to the point I guess, in a way that is meaningful to people that don’t do the same thing). After a series of increasingly embarrassing false starts and fumbled trail-offs, I staggered into a description that I feel is pretty close.

I am a story teller.

When I teach, I teach through metaphor and anecdote. Facts are fun—I love them and they are necessary—but facts don’t teach, they inform. Building a connection to facts, that is how we learn. That is how everyone has always learned (give or take a few). So rather than spew a list of concepts, methods, or algorithms at my class, I teach by using stories to build those connections. I tell stories about how I used this function wrong and it yielded a comical result. I talk about how mis-application of some idea ended in tragedy. We, as a class, explore examples of certain algorithms in our daily lives. We weave stories in order to build context for the facts in our minds and so that we can retain them.

I’m no less a story teller when I develop software.

When developing software, I have to be a master storyteller if I want to do a great job. I can’t tell the story, I have to help the customer—the end user—tell their story. I have to elicit from them how they think they do work; then I have to dig deeper and get them to convey how they actually do work. Through anecdote and informal chatter, I draw out context for otherwise disjointed facts like “I want it to be busier” or “the old way was just too clustery.”

Once I’ve helped the user build their story, I build my complementary story. I take what they have taught me and spin it into my own tale using code and graphics and requirements documents. I deal it back to them like a serial novel—pieces at a time in a way that allows me to gauge their reaction and keep their interest engaged. By the time they have seen the story in total, there should be precious few surprises (and among those precious few, only good ones) but a great deal of satisfaction with the denouement.

This is why it pains me to see the artless, engineering way to do requirements analysis. I cannot do my best work as I slog through a checklist of context-less questions and categorized facts. I need connection, and so does the client. In my experience, we are all infinitely better off sitting down together and listening to one another’s story with a checklist as a backstop to ensure that all bases have been covered than to rigidly adhere to a few hours of discovery done in a conference room.

So I’m not a software developer. I’m not an educator, a father, a manager, or a leader. I’m a story teller; I suspect that your software developers are yearning to be one too. Do yourself a favor and help them get there.

A Dewdrop Full of Struggle

A world of dew,
and within every dewdrop
a world of struggle
—Issa

This month marks 11 continuous years without drugs or alcohol. For the vast majority of you, this probably doesn’t seem to be an exceptionally huge feat—most people can take or leave drinking, and I’d wager that a sizable percentage of adults in this country have gone years and years without partaking in drug use. For me, however, this 11 years constitutes the longest period of sustained change I have ever managed. At this point, the length of time during which I haven’t been pissing-all-over-myself drunk or hitting-on-the-mother-of-my-date high is rapidly approaching as long as the length of time during which such events were regular occurrences. It’s a pretty heady feeling, this knowing that I am profoundly unlikely to wake up in a puddle of my own vomit next to someone I don’t especially know in a state of undress that inadequately conveys the full extent of the previous day’s adventures.

For obvious reasons, each year the approach of my anniversary comes with ponderous thoughts about the merits, features, and nature of change. Among drug addicts I first heard the phrase “nothing changes until the pain of staying the same is greater than the pain of changing” and never in my life has something sounded so ludicrous and so obvious at the same time. Of course we wait to change until staying the same is worse…but why would we be so short-sighted and stupid so much of the time?! Madness. Drug addicts are not known for their ability to plan for the future.

As it turns out, the same is true in most organizations—in fact, I could probably write a fairly lengthy article wherein I compare organizational behavior to that of a multi-year junkie (note to self, that sounds like a fun article)—most organizations act just as irrationally when faced with the formidable task of instituting change. Allow me to paint you a picture from my own life experience:

I was young—early twenties roughly—and had recently moved to a new town with my wife and young children. I immediately found the people who party and started spending my evenings at bars and house parties around town rather than with my newly displaced family.

Needless to say, that didn’t last long before my beleaguered wife, who undoubtedly hoped that this change in venue would result in a change in my behavior, finally had to put her foot down and threaten Very Bad Things if my behavior were to continue.

To my credit, I immediately put an utter and complete halt to my misbehavior. I quit drinking, I stopped hanging out with people after work, and I spent my nights and weekends with my family at home.

For about two weeks.

I quickly found my new life boring, and over the course of the third week, I had backslid almost completely. In fact, in many ways it was worse, because I had convinced myself that I had to lie and sneak time with friends and I would often drink a great deal at work and then drive home very, very drunk so that I could hang out with my family without hearing about my drinking.

This sort of whiplash-inducing overcorrection is something I’ve observed myriad times in countless organizations. A Thing That We Do™ is just not working—and a grand, sweeping plan is devised and put into place. It seems to largely alleviate some of the problems (in the best case scenario) or doesn’t seem to be having sufficient impact (in the more common scenarios), but in either case the strain of maintaining persistent change of such enormity—of such utter completeness—for any length of time proves too great and the members of the organization collapse back into old behaviors and patterns.

Why is this? Are they lazy? Stupid? Lacking in ambition?

Change—that is to say lasting, significant change—is methodical and slow. It’s glacially paced. It is the turtle winning the race slowly and steadily while the rabbit wears itself out with too much too fast. I’ve achieved over a decade free from actively pursuing addiction because I didn’t try to change everything at once. I triaged my life and changed the most pressing thing, and I have continued to do so iteratively for nearly 11 years now.

I do the same when helping an organization to change. Often the first thing I have to do is devote time and energy to reigning in the change enthusiasts who find themselves in a cycle of changing everything, then changing everything differently until everyone is so confused and disheartened that even modest change sounds horrifying and impossible. Only once that destructive cycle is quelled can the job of triaging and planning begin.

When you feel like change is failing you, stop for a moment and look around you. If you cannot list on one hand the individual changes that are being enacted and fingers left over, your glacier has run away and needs to be halted and adjusted.

Remember, several inches of snowfall can cover my town overnight and it is a thing of beauty; that same quantity of snow in one fell swoop would be a natural disaster. Stop making natural disasters.

There’s No "U" In Women in Technology

As a regular reader of tech news and various forums, I am regularly witness to articles addressing women in technology—and let me begin by saying that I am profoundly grateful for that. It wasn’t terribly long ago that the very idea that a woman might participate in a STEM field was absolutely shocking. Even as recent as my time in high school some 20 years ago, home economics was for girls, shop was for boys, and computer class was for nerdy boys with poor hand-eye coordination. This shift, from then to now, only happens as a result of this ongoing conversation that happens in the media, on the web, and in our offices.

I am concerned, however, with the narrative that we follow in discussing the shortage of women in technology. We discuss (ad nauseam, some times) who these women are and what they do. We bicker about why they are insufficiently represented and about whether or not there is a pay disparity. We even discuss what women can do to address the gap—like they’re the only part of the equation. Here’s the thing, if we’re going to resolve this, there’s work that’s going to have to be done on both ends of the equation. Certainly, women are going to have to (continue) to do some heavy lifting to continue to stake out their place at the table—but shouldn’t the rest of us consider what we should be doing, too? So that’s what this is, this is the conversation we can have as men as to how we fix this gap…at least part of it.

The most important thing that we can do is to stop pretending that trying to fix this gender divide is a thing we are grudgingly having to do for “them.” I’ve worked around developers more of my life than not at this point, and there is no doubt that we are a supremely homogeneous group. Homogeneity stands firm between a team and progress. The more alike the membership of the group is to one another, the more the group becomes a feedback loop for itself; inflating the importance of its own ideas and confusing concensus with popular opinion.

It is in our best interests to fix this thing. We need our ranks to be filled with as diverse and broad a subset of the human experience as we can manage. Adding women to the mix is just one way, but it’s an important one, and the fix begins easily enough. We can cover serious ground by making one these two simple fixes:

Stop making your space an unsafe one

Imagine, for a moment, a person you do not want to have sex with. I don’t mean someone you find hideous or repellant, mind you, just someone that is completely physically unattractive to you. Perhaps you even enjoy the person’s company, but dating or sex? No way!

Stop picturing me, that’s uncalled for.

Now, imagine that they are participating in a development project with you. They are a member of your team and you see them in-person and online on a regular basis. You are in pretty close to daily contact. Oh…and he or she will not stop hitting on you. Now, I don’t mean that this person is aggressively forcing him or her self at you; that would almost be actionable. Instead you are subjected to all of the flirty behaviors you aren’t interested in. They make jokes-that-are-clearly-not-jokes, they sit too close, they check you out in obvious ways, they invite you on dates-that-aren’t-dates-that-really-are-dates; and they do all of this relentlessly. Take a second, actually picture it.

If you are like me, you are already a little bit uncomfortable, because almost all of us have been in this situation at one point or another and we know how awkward it is to be stuck here. This is not something you are comfortable calling harassment, but he or she won’t take a hint and there’s nothing you can do about it without coming away feeling like a heel.

Now, imagine one more thing for me…imagine that you weren’t even sure that you belonged on this project at all. Imagine that you already felt a little out of place, and THEN all of this happens. How long before you decide that this particular project just isn’t the place for you? How many of these places will you decide aren’t for you before you think that this entire industry just isn’t the place for you?

Listen, from a purely practical sense, it’s a simple concept: the only circumstance wherein you immediately and clumsily hitting on a female on your team is going to end *well* is if she is into you, is looking to be hit on, and doesn’t mind your ham-handed style of flirting. Only if all of these three are true does this end even close to well. In all other cases—if she’s not into you, if her intentions happen to be (*gasp*) focused on this project rather than your libido, or if she would just like to spend some time doing this without having everyone trying to climb into her pants—all you are doing is alienating her. That hostile environment that we just described, that’s what you are creating. The best of the likely outcomes is that she quietly puts up with all of this while tries to focus on this thing that she is actually here for, but the most realistic scenario tends to be that she just goes away.

Start making your space a safe one

The fact of the matter is, even if you stop hitting on all of the women as they arrive in your group, your fellow men in technology are probably still doing it. The next step is to make your work spaces safe, inviting ones for everyone that you wish to attend, including women. It is easy to put together rules and regulations that legislate spaces into safe and inviting ones—and when the space is a place of employment, you almost certainly should do so—but merely putting rules together isn’t enough. The sort of off-putting behaviors that legitimately sends women the message that they don’t belong is notoriously difficult to pin down with any degree of specificity in real life situations.

Social pressure, however, is an amazing thing. Let’s face it; this sort of behavior is truly embarassing to be caught doing. Relentlessly pestering a woman for a date—or doing all of the show-off, plumage-flaring behaviors meant to draw the attention of one’s desired mate—these are humiliating things to be called out on. Use that fact. When you see someone singling out the female in a group for attention, call attention to it.

It doesn’t have to be overt or in front of an entire group of people. In one of my classrooms a year or so ago, I had a very attractive student in a web programming class, one of perhaps 2 female students in a class of nearly 20. She was very good—if not top of the class, then very near it—but that didn’t stop one male student from offering outside-of-class help. After observing a few such offers, I finally had to intervene…

Me (directly to the student): Hey, are you offering additional help?

Student: Yeah…

M (to the class): Hey gang, S is offering to help those of you who are struggling. It’s really cool of him to offer, so, take him up on it.

At the end of class, alone…

S: Hey, I didn’t mean that for the entire class

M: Oh, I’m sorry, I just figured that since offering to help just her is sort of creepy and stalker-y, you must have been making it kinda a general offer.

At this point, the student and I had a brief discussion as to why it is frowned upon to do what he did, why it might be creepy, and why it wouldn’t be allowed in my classroom. Who knows if this ‘teachable moment’ had a lasting impact on him, but at the very least he ceased hitting on this young lady in my classroom. She had one safe space to learn, at least.

Now, there are probably dozens of other things we can do—right off the top of my head, I suggest not letting our impostor syndromes manifest as uber-aggressive know-it-all posturing, for example—but this is a start. Simply recognize how essential it is for all of us that we fix this, then start fixing it by trying not to be a douchebag and pointing out to your friends and co-workers when they are being douchebags. Perhaps we can end this boy’s club that someone created for us. I know I, for one, don’t want it anymore.

Weak Data Typing is Weak

When I’m teaching PHP or Perl, a conversation invariably springs up early in class related to loose data typing. The format is almost always the same…a student with some moderate amount of programming experience in a strongly typed language (C or C++ generally) is elated to find they can just stuff anything into a variable. When I opine that this is a terrible and dangerous flaw in the languages, the argument proceeds down the lines of “it’s so much easier” or how “archaic” my point of view is.

Listen, weak data typing is not easier; it’s sloppier, which is not the same thing. In fact, that sloppiness often makes things harder! This weekend, for instance, I whipped a quick little script together for a friend that would parse an automatically generated XML file and make a series of corrections for him. In mid stream, however, I was stymied by a troubling little bug…one of the fields would occasionally cause a crash.

As it turns out, XML::Simple was reading a blank tag (that the program generating the XML erroneously output as <tag></tag> rather than <tag />, but I digress) and rather than storing it as a null string, it opened up a new, empty hash.

Of course, it is stupid of the initial app to output the XML in that format…and yes, XML::Simple was being idiotic for not noting that edge case…but these are the exact sorts of real-world situations that strong data-typing would have prevented (or, at least illustrated earlier).

I spend an enormous amount of time looking at other people’s code whether it be working for my ‘day job’, for a consulting contract, on open source projects, or examining the work of my students—an a single, unifying theme in loose data typing is that it is a gotcha that is often terribly difficult to track down.

So instead of adopting the burden of explicitly casting your data from type to type, you adopt the burden of searching for edge cases to prevent…to my mind, not easier.

2012: A Year In Review

A couple of years ago, a friend of mine started including me on an annual email blast wherein he reviewed the year and talked about the upcoming one. I loved the idea, but each time I tried to start my own—as I glanced at my blog(s) to create such a recap—I was struck by how gratuitous it would be. Back then, I was blogging and posting on social media with such ridiculous regularity that to send such an update felt like overkill.

This year, looking at how infrequently I have forced my thoughts into the unsuspecting eyeballs of others, it seems almost a necessity. Still, I struggled with the idea; as much as I enjoy getting Luke’s email, I have spent too much time telling people “if you don’t like what I have to say, don’t come and read it” to shove my writing into their inbox. So…my happy medium: I shall steal Luke’s idea for my own, but instead of email, I’ll just post it here.

I seriously overthink everything.

Review

There are a few constants in my life: I am always stupidly busy, I am always just around the corner from a break, and I am always puzzled when the ‘break’ around the corner is just being more stupidly busy. Constants—a situtation or state that does not change.

Keep that in mind when I say that this year, I was STUPIDLY busy. I mean that however busy you have seen me in the past…I was definitely busier. Way, way busier. Remember the year that I helped wrestle three conventions into existence, worked two jobs, and went to school full time while being the single father to two children? Yeah…busier.

I’m pretty confident that things will be better really soon though. :)

2012 was the year of change for me. Stepping back from convention work to devote myself to other aspects of my life seemed like a huge adjustment, but it was nothing when compared to the changes that followed. It wasn’t until I had to step out of employment talks with the big G that I realized how much I missed coding on massive projects with a great team. I was provided with what appeared to be a chance to do the sort of development I want to do as a part of the exact sort of team with which I would like to be doing it—so I lept back into ‘corporate’ programming. It has been everything that I had hoped it could be so far. That change, however, precipited another change; I had to step back from school for a bit.

If going back to programming for others was the scariest change of 2012, certainly taking a break from grad school was the hardest. As it came down to mid-November, it became apparent that I was doing a disservice to family, work, AND school. For years, I knew that there was a theoretical limit to the amount of burden that I could shoulder for even brief periods of time, but that limit remained just that—theory. This year, I found that limit. So, with only one class and a mostly done project left to go, I withdrew from grad school until the summer. Instead of graduating in December of 2012, I will graduate in the summer of 2013. Hopefully.

Even though I know it is for the best, it still tastes bitterly like a form of personal failure. Failure, however, isn’t the end of the world.

Failure can actually feel pretty good. The past month I have spent more time interacting with my family in a focused, relaxing way than I have at any point in the past five years (ten years?). No more doing things in the same room with them while I work or do homework, I have spent literally HOURS of continuous time playing videogames with my wife and children. I have relaxed at a family dinner and not immediately jumped up to finish writing code. I have done absolutely nothing at all for an entire day. Nothing…at…all…

Sure, that probably doesn’t sound like much, but it’s a pretty big deal to me.

Finally, it has been a year of upheaval for family and friends. It’s no big secret that Ger has been going through a lot, but if there is a silver lining to everything that has happened, it is that we were able to find people that were selflessly there for support and love; and that our marriage has been made stronger through our dealing with difficulties both inside and outside of the family. It is true that amidst pressure and heat one finds diamonds—those of you that have been there for us just to chat, lend a hand, or to be a shoulder to cry on—you are those diamonds.

That was needlessly overwrought.

Goals

I am a creature of goals. I have a constant supply of them, both lofty and realistic, floating about in my head at all times. Some that I had for 2012 include:

  • Finish grad school
  • Transition into teaching more, consulting less
  • Do more personal programming projects
  • Spend more time with my family
  • Take on less convention responsibility
  • Write more

Clearly, I’ve had mixed success. Some goals had to be sacrificed in order to pursue others. Teaching is still something I really, really want to do…and after a break from it, the desire is no less strong…but some opportunities are of the here-and-now sort. The chance to work for one of my dream companies was one, and the opportunity I’m enjoying now is another. Neither allow for more teaching time at the moment, however.

Similarly, I have never worked LESS on personal programming projects and writing than I have this year. However, failing these goals coupled with stepping back from convention planning has meant that I have had significantly more time for family and self. I call that a win.

So this year’s goals won’t resemble the goals of the last few years very much, but insomuch as that feels like growth, I won’t lament the change too much. For 2013, my goals include:

  1. Spend hours each week exclusively with family and friends – not solely while working on any projects or half-way being there
  2. Make time for hobbies – not just programming projects, it’s time to get back into cycling, kayaking, hiking, reading, etc
  3. Two days of complete relaxation per month – no trips, no plans, nothing on the schedule…just do NOTHING at all
  4. Become a great employee – I’m really, really good at what I do (and humble)…I want to be really, really good at what my company does too
  5. Continue to learn – dig in and research new things whether they be tech related or not…I love doing it, there is ample opportunity, I need to make time for it
  6. Write – I love doing it, and I am terribly rusty…maybe stick to a blogging schedule or work on book(s)
  7. Finish grad school – at a reasonable pace, not insanely paced

Note well that the second list is ordered, because the order matters. It seems that when I simply list goals, I find it easy for the relative importance of those goals to become murky throughout the year. At year’s end, I am almost never happy with the specifics of which goals I chose to hit and which I chose to miss. Hopefully, the sequence of this list will be a reminder that the order matters, and that the hierarchy I invariably choose in the heat of the moment is always, always wrong.

If I accomplish the first several, and fail almost entirely at the last few, that is far preferable than to only succeed at two in the middle and blow numbers one and two. One goal that is not enumerated above, but stands as a constant in my life is simply keep taking chances. Nothing positive has ever happened in my life while playing it safe, so, it is important that I don’t stop taking chances now. Don’t turn down opportunities and don’t stick to the path.

If you have made it to the bottom here, well, congratulations. I owe you a coffee or something. There are a lot of words up above, and since they’re mostly about my favorite subject (me), that would be a lot to get through. Well done. Know that I love you best, and you…yes, you specifically…are my favorite.

Thank you all for being a part of my adventure this year, and I look forward to you all being even more a part of my adventures in the year to come. Here’s to a great 2013.

This was a really, really long post #2013isRuined

A Visit from the Busy-ness Blackhole

Apparently, I’m now going to be going a LONG time between updates.

I’m in a pretty good place, which feels like it’s the right place to be when one is a middle-class desk worker with a job he/she loves, a loving family, great friends, a fridge full of food, and precious little of any legitimacy to complain about.

This and last week has been a mixed bag. My boss has been out, so I’ve been helping out in a more ‘leadership’ role…I forgot how much I love stepping in and helping guide the work flow, running interference for the team, and making sure things are prioritized correctly and getting done. I wish this was an actual job I could be paid to do; why isn’t there a job somewhere that would allow me to be hands-on in the code while giving me the opportunity to apply my project management experience to process development and work-flow management that doesn’t automatically come with the baggage of being client-facing and managerial.

I want to write code and manage projects, I don’t want to assuage clients and manage people.

So this week was awesome in that respect: I got to do a thing I do pretty well, in managing a formidable workload. Unfortunately, much of that workload management was because we were short several key players…it was the equivalent of being told that I can coach this world champion team, but several of the stars won’t be allowed to play.

Thankfully, this team is full of stars.

On a down note, I think I’m going to have to delay finishing grad school by a semester. I just don’t feel like I can do a good job of work, school, and family by cramming everything into this last month of school. Hell, I’m not convinced that I can do a passable job of even ONE of those if I try to do them all. It stings to admit it, but I can’t do it all.

It’s been so long since I’ve posted, I feel like I should post more…but I am flat out exhausted. A side effect of this week’s massive work load was that I finished my 3-day work-week with just over 50-hours…and that’s a long week to wedge into 3 days.

Until next time (which could be a crazy long time)

RE: The New Job

So I’m rapidly coming up on the end of my first quarter at the new job, and I’ve been planning to post my thoughts for nearly two months now. As it turns out, the past several years of being busy doing full-time school, teaching, consulting, convention planning, and raising a family was merely a warm-up for being really busy. Writing has, as usual, suffered.

So how am I liking the new gig? I am in love with this job. I was decidedly nervous at the prospect of making a return to so many things I hated in the past. I hate having a rigid work schedule—for me, programming is a creative activity, and I need to write code when I’m feeling creative. I hate writing code for other people—the last six or seven years have afforded me the ability to be selective about which clients and jobs I would take. I dislike working with project management teams—most project managers are not terribly good at the ‘managing projects’ part of the job. Finally, programming professionally is terribly time-invasive—employers have always demanded ridiculous hours and I’ve exhausted tremendous quantities of energy fighting on behalf of me and the teams I’ve lead for the right to sub-60-hour work-weeks and vacation time that involves actual vacation. While the interview process left me comforted, I was still pretty concerned about the possibility that I was walking back into the same situation again.

I needn’t have worried. In (almost) all respects, this couldn’t be more different.

In the first phone interview I took leadership roles off the table, choosing to focus on developer positions. While being “only” a developer meant a sizable cut to my salary, it still represented a comfortable paycheck; more importantly, managing a team of developers always came at the cost of being able to write code. (It turns out that the organization is flat enough that the leadership role probably wouldn’t have been bad either, but I still think that my decision was correct.)

The Company

The schedule is exactly what I need. Extremely flexible hours with a generous attitude toward working from not-at-my-desk. Provided I am reachable, make my meetings, and get my share of the work-pie done, the when and where aren’t all that important. For me, that means that I can go in very early and knock off a bit earlier as well. I can work and have time for family to boot! Madness!

I do not avail myself much of the opportunity to work remotely, though, because I genuinely enjoy the culture at work. I am used to seeing work cliques: the managers are upstairs, the project managers in that section, the creative folks all over there, front-end folks on one side of the office, back-end on the other…minimal interaction. It was like several companies working in the same building throwing work at each other.

It’s going to sound a bit cheesey, but here we really are just a single, big team. I really love the producers (which I still keep calling PMs) in my division. They are, by and large, the best group of them I’ve worked with. Working closely with the front-end folks has really boosted the quality of the work I put out, and the work that we generate as a team.

Even amongst the software engineers, the culture is more to my liking. I despise being on teams where everyone is working super hard to make sure that nobody thinks that there is something that they don’t know. It is needlessly stressful and makes for worse code. This is…whatever the opposite of that back-biting, paranoid place is…that’s what this is. Everyone is quick to answer questions; and they’re quick to ask questions too. As a developer, that sort of environment—the sort where a group of programmers will get together and all try to figure out some pesky quirk or weird behavior—is precisely the sort that I thrive in.

The best example I can think of to describe the culture here: early in my second month, my supervisor was on vacation for a week. We all put in some significant hours that week. Early one morning the VP of my group was walking by and just stopped and asked how I was holding up. He had seen that I had a posted some pretty big numbers to client work that week, and just wanted to make sure I was holding up okay.

Just like that…”Hey, how’re you holding up?“

And that’s the rule, not the exception. My whole supervisory chain is amazing. They communicate, they listen, they go out of their way to ensure that everyone knows that their contributions are appreciated. They are all genuinely concerned with people as well as product.

The Work

Frankly, I really enjoy the work. I hate working on a single project *FOREVER*. It gets SO BORING. Here, I have around 10 projects on my plate at a time in various stages of completion requiring different amounts of attention; and they’re all different beasts. Right this second I have a few projects preparing to launch, a few more that have launched in the last week or so, a few that are just beginning to gear up, two that I’m doing recurring maintenance on, and a smattering of small things that are currently in other hands and I’m working support on.

I am constantly engaged in programming that makes me think, in problem solving that keeps me interested, and in writing code that is honing an edge back on to some rusty Perl skills. The work was the part that I was most certain I would just be tolerating…I couldn’t be happier to be wrong.

That said, the one downside at the moment is that there is a LOT of work. I mean, a lot. Like, given my history of busy-ness, believe me when I say that this is the most busy that I’ve been in many years. We are short staffed, and while we’re trying to hire, they are pretty strict about making sure that those they hire are going to be a good fit for us. In the interim, it has made for some long, long weeks. It should be an indicator of how happy I am here, though, that I’m throwing out some 70+ hour weeks (while going to school) and still in love with this place. I end each week exhausted, but happy.

And there’s light at the end of the tunnel…help is on the way, and hopefully more help beyond that too.

Wow, I just skimmed what I wrote so far…could I be giving this place more of a hand-job? I’m going to stop now, so I can get back to work. I’ll try to get something less stream-of-conciousness posted at some point. Just know that I’m very happy with my choice. I feel useful, engaged, and appreciated.

And tired…lots of tired too. :)

Making my Transition

“It’s hard to take responsibility for your own transition…”
—Tina Fey in a Nerdist podcast interview

Today I left a job that I really love—a safe, comfortable job teaching at a local community college—to embark on a risky journey as a software engineer at a local firm. I am truly ridiculously excited about the new gig; the culture is comfortable, the people I met are bright and engaging, and the work sounds like a fun challenge that is right in line with my interests and strengths. It’s scary…the last time I did ‘corporate’ development, I was miserable for a host of reasons (most no longer applicable) …but I am really geeked about this.

It is bittersweet though. I love the school, teaching, and my colleagues, and today when I left, I was actually a bit emotional. I have worked there in various capacities for 6 years; I have never worked anywhere uninterrupted for so long. The choice to leave was a hard one to make, because there is momentum in sitting still where you are happy and comfortable. In the end, two things made the decision for me: first, everything great in my life has been the result of risks, so it would be foolish not to take chances now. Second, I will continue teaching my evening course in the winter semester.

In all, it’s an exciting time for me, and Monday starts an adventure that will surely be even more so…