Archive

Archive for May, 2010

Incompetence

May 20th, 2010

I try to head on over to thedailywtf.com whenever time permits, having found it to be an invaluable resource in teaching by counterexample.  The articles, while sometimes painfully soul-crushing to read, can implant cautionary tales into the heads of developers who find they may be starting a journey down a WTF-y path.

But the articles at the The Daily WTF also highlight a problematic aspect of professional life: some how, some way, incompetent people work their way into key positions.  How they manage to get into these positions is not of key importance right now (although it would be good for a future post).  No, what I’m wondering, at the moment, is how to deal with incompetent people when you find you need to deal with them.

It’s a fairly complex question, I believe… lot’s of in’s… lot’s of out’s… some what have you’s.  There are psychological aspects to consider.  Do they inspire a dissonance within you that can only be described as mind-shattering?  There are issues of personal reputation and interpersonal dynamics at play, as well.  Do they incite a blind fury deep in your core at having to protect yourself from being associated with their sub-elemental understanding of their claimed expertise?  Are they, god forbid, in a position of power over you?

Perhaps there are productive ways to traverse these workplace hazards.

function encounterIncompetentPerson(event)
{
	self.patience -= self.senseOfMoralJustness * event.person.responsibility;

	if (self.patience < 0)
	{
		// Murder, self-lobotomize... whatever gets them out of your memory.
		delete(event.person);
	}
}

Initially, the prescribe encounterIncompetentPerson() method was much less elegant, but I realized things pretty much boil down to ones sense of moral justice and the extent of his or her patience. So if you wish to avoid more drastic means of dealing with incompetence, you’ll either have to lower your sense of moral justice (and presumably your own integrity) or Jesus out your patience. Alternatively, you could try to reduce the responsibility of said person, but that’s whole other subroutine…

Insanity

Employee Satisfaction

May 18th, 2010

A while back, I heard something on NPR.  Some study (I forget exactly where it came from) found that the three most important things behind employee satisfaction are, in order:

  1. Being proud of the work you are doing.
  2. Enjoying (or not hating, I suppose) the people you work with.
  3. Believing that upper management is doing the right thing.

Personally, I tend to agree with this—particularly with number 1.  I don’t know how big the initial data set was, but my subscription to the ideology is only based on a single bit of data—me.  So, by all means, give me your two cents.

Musings

Out of the bag

May 17th, 2010

How to program your way out of a paper bag:

function exitPaperBag()
{
    yourself.location = "outside the paper bag";
}

Obviously this is not the only way to do this–every language has it’s own paradigms to contend with.

A Coder's Guide to Life

Who are you?

May 12th, 2010

Who, who…who, who? I really wanna know…

Initially, this was going to be a post introducing myself.  If you’ve made it this far, you’re probably entitled to some kind of explanation.  I just have to refer you to my about page, which I will have hopefully created by the someone clicks that.  I guess the important things to know about me are:

  1. I am a “Silicon Valley” software engineer…a web developer, primarily.
  2. I have special interests in natural language processing, data visualization, and the seemingly requisite AI and computer graphics.
  3. I tend to enjoy “turning a phrase” or employing an esoteric word here and there, which is often interpreted as arrogant, though certainly not meant that way…  And I also ramble.

But this isn’t about me, it’s about you…oh gaping void that is my audience.  What is your job title?  What would you actually call yourself (on a business card)?

Rhetorical Question?

Hello World

May 11th, 2010

Yes, I’m quite mad… but looking beyond that for a sec… I’m also a developer.  The problem is, I don’t fully understand what that means.  “Well,” you might think, “that’s your problem.”  And since, in all likelihood, I’m talking to no one here but myself, here, your probably right.  I’ll have you know that I’m perfectly content to talk to nothingness, nothingness being a much better at listening than most people.

But just suppose, for a second, that rather than nothingness, you are a sentient entity…moreover…a developer as well.  I’d venture that you and most other developers find your identity equally nebulous.  Perhaps you fancy yourself a java developer, a perl developer, a front-end developer, a software engineer, a web developer, or an architect?  These are some of the many different hats a developer may wear, and the distinctions between them are not always abundantly clear.  The only constant through-out seems to be “developer” or “engineer” which is almost as ill defined as claiming you are a “creator” or a “wizard.”

I find that, with this lack of definition, it is not always clear how to improve.  Furthermore, development can be a way of being, much as an artist will not claim he or she “does” art, but rather, is an artist.  And so it is not even alway clear how a developer is to exist in the ill-defined/imbalanced world of ours.

So, like millions of other before me, I am starting a blog so that I can submit my thoughts and ideas for the world to ignore.  This is, among other things:

  • an attempt to chronicle a developer’s journey through a world that lacks the order and precision.
  • an attempt to lend order to the chaos of social, corporate, academic dynamics.
  • an attempt to discover how to become a better developer

But above all else, this is an attempt to find out how to use semi-colons properly. And so it is with way, WAY too much dramatic flair, that I say:

    System.out.println("hello world");

Insanity