March 26, 2006

Tight coupling…of team members

Posted in Development, Software, Work at 9:36 pm by mj

For the last several weeks, I’ve been on a project where we’re all pretty tightly coupled. Any design purist will tell you that tight coupling is a bad, though sometimes useful, thing. Tight coupling means every participant needs to know practically everything about every other participant, and all participants need to be “in the same room” whenever work needs to be done.

(Mental image: passing a co-worker onto your call stack…by value.)

(Oh wait, that’s what meetings are. Too bad small conference rooms don’t throw stack overflow exceptions.)

Practically, what this means is we’re all pretty much working the same hours–including weekends. That’s not exactly news in the software world, but it is a different way of working for me. I can be more productive at 3am than I can at 3pm, but it’s hard to get everybody to agree to work those hours. (Maybe when I’m a manager. Bwaaahahahaha.)

Ordinarily, I resist for an entire project team to work together on a weekend. Partly, this is selfish. In cases where it seems to work (i.e., we meet our deadline), management will perceive that working weekends is the answer to tight schedules. The result? More weekends to work. We lovingly call this the death march, which studies have shown don’t work.

However, sometimes the work is partitioned in a way where not having everybody in a room together, even on a weekend, will cause bottlenecks. On a project with a far-off, or flexible, deadline, there’s time to reconsider partitioning of work after a week under less-than-ideal circumstances. But when you’re on a tight deadline, you suck it up, and hope everybody learns from the experience heading into the next project.

Luckily, rearchitecting how a team works is much easier than rearchitecting how a software system works.

If there’s an upshot to tight coupling, it’s that everybody gets a chance to mesh. We’ve expanded the team recently, which means we have a high proportion of new members. This is the first chance we’ve had to really work together as a coherent unit, and it’s been great. Maybe there’s a lesson here… everytime your team expands, you go through a little ritual hazing, i.e., working several weekends in a row on a project with a firm deadline.


March 9, 2006

Never Argue with a Doctor

Posted in Fun, Health at 10:10 pm by mj

Scott Adams on, among other things, arguing with doctors:

Now all I had to do was convince my doctor(s) that I wasn’t nuts and that I had a very rare condition. As you might imagine, when you tell a doctor that you think you have a very rare condition, that doctor will tell you that it’s very unlikely. Your first impulse might be to point out that “very rare? is a lot like “very unlikely,? but you don’t do that, because doctors have wide latitude in deciding which of your orifices they will use for various medical apparati. So you go with the protocol which involves systematically eliminating all the things that are more likely.

The next speech doctor had access to better technology than the first and determined that I almost certainly did not have the rare neurological disorder that both I and Google insisted I did. She based her opinion on how I sounded and the fact that it was very unlikely that I would have a very unlikely condition. But she did notice a facial tick that might indicate a brain tumor as the culprit.

I think I’ve noticed a pattern with doctors: when they’re stumped, they’ll suggest a brain tumor or some other vague brain thingy going on.

An optimist would say this is to fill you with relief and utter joy at eliminating the tumor, … or to scare you away if you’re a hypochondriac.

Me? I think it has something to do with the expensive MRI and CT equipment laying about waiting to be used. There’s nothing like a stumped doctor and a worried patient to stir up some business.

“Mister Jones, I’m afraid I don’t know exactly why your leg is turning dark blue. We could cut it off now, or… I know, how about an MRI? I’d just like to rule out a tumor.”

March 5, 2006

Getting Hired: Resumes and Interviewing

Posted in Interviewing, Recruiting at 9:35 pm by mj

A couple of weeks ago, Scott Mark blogged about resume writing. Among the follow-ups was an insightful entry by Robert McIlree. (The nice thing about this topic? It’s timeless.)

I’ll add (or expand on) a few, which are my personal pet peeves. (Disclosure: I’ve yet to be the person with the final go/no-go for a hiring decision, so my pet peeves are often counter-balanced by others with their own pet peeves. I consider this a good thing.)

Back up your skills with experience
My biggest pet peeve is people who list every possible technology that they might have ever touched in the course of their work…and then fail to back up (read: reference) half of those supposed skills in their list of projects. If you must list a skill that you haven’t used for at least a month professionally (um, why?), put it as an addendum at the end under “Additional Professional Interests” or something. Or work it into your short-term goal.

I experimented early on in my career with various resume formats. The ones that worked the best for me even then, as far as getting interviews with teams that fit what I was looking to do, were those that trimmed my skills list back to only those I was most competent in. And at this point in my career, I wouldn’t need to put anything I haven’t done professionally. Anybody who does, with more than 3-4 years experience, is probably not a good team player.

I know people exaggerate, and try to skirt by keyword scanners. But it just always leaves a bad taste in my mouth. There have been times I’ve spent 45 minutes liking somebody, then found out that they included stuff they’ve never used professionally, and all my liking just faded in an instant.

List your specific role within the team/project
I (and my co-workers, actually) have wasted so many interviews over the years just trying to figure out what a candidate’s specific duties were in a project. Even the ones who have nothing at all to hide/exaggerate often fail to utter these four little magic words: “What I did was…”

How I wish that was part of every resume. Some people make a go at it, but it comes out so generic that I still have to ask again in the interview/phone screen.

Even if the most exciting, most successful project was led by someone else, that’s fine. Not that I am interviewing at the present time, but if I were, I would have no trouble at all giving credit to my co-workers for some of the projects I wish I had been more involved in. That’s actually a good sign, in my opinion. If you can talk about what you specifically did, and also give credit to others, it means we’re going to get along.

Be specific about your goal
Interviewing is expensive. Most teams interview when they have specific needs. Don’t be wishy-washy. If you’re the high-level team-lead/manager type who has no real interest in getting your hands dirty in the day-to-day mundane coding necessities…don’t pretend that that might interest you. There’s nothing wrong with thinking about problems at a very high level. Teams need those kinds of people. But it’s just a waste if you try to hide your intentions, and even worse if you try to pretend your coding skills are still fresh.

Learn to love HR
A good HR department is invaluable for screening applicants, because, unless your team is large and your workload light, nobody on your team has the time to screen everybody. I’m not saying they’re perfect, but there is not any perfect candidate screening. Even if you hire by referral only, you often get candidates who aren’t good fits for your needs.

I’ll say this: anybody who comes into an interview with an attitude (seen in the comments of those blogs) like “I make $75 per hour, and that idiot over in HR only makes $12 per hour, so why the hell should I have to answer to him?” is sooo not getting hired on my team. Technical people suffer enough from the “If I were King” syndrome, without allowing blatant economic elitism to run rampant.

So remember these points, too, Future Me, the next time you go looking for a job…

March 4, 2006

Harry Browne Dies; Marital Arrangements and Freedom

Posted in Death, Life, Love, Politics at 12:04 pm by mj

Reason has Former Libertarian Party Presidental Candidate Harry Browne’s obituary. (Also see the Wikipedia entry.)

Three days after his death is not really the time to go into my own opinions (I’ll say I voted for him twice, but the second time I was cynical about it), but I found this comment on Miss Passey’s blog quite interesting:

As I recall, he was against marriage; not only that, but he believed that if two people lived together, only one person should own the home and the furnishings. This, he felt, would cut down on quarrells about what kind of furniture to buy, etc. Having little to no experience with real-life romantic relationships, I mentioned this to my inamorata as a good idea. She was shocked and outraged. “If you owned the home and all the furniture belonged to you, how would I ever feel it was my home, too? I would feel like someone just staying over all the time. I would feel like your serf.” I thought she was being irrational. (Of course I envisioned me being the one who owned the house and everything in it.) Years later I would wind up in a situation where one person–and it wasn’t me–owned the home and all the furnishings . . . and I realized my (by then) ex-girlfriend had been right! I felt exactly the way she said she would feel! I was a serf living in the master’s manor without any real rights in the situation–and it wasn’t a pleasant feeling.

This reveals so much about how those who have no power formulate opinions on how to use the power they don’t have. Many of the LP’s proposals fall into exactly this camp. It’s very much like how humans develop from adolescence into adulthood. It’s as if the universe made us to develop wild-eyed opinions on how we should behave early in life when we are powerless, specifically so that it could find new and entertaining (not to mention humiliating) ways of proving us wrong as we acquire autonomy. Sorta like how some television writers develop their characters.

Of course, American culture is steeped in serfdom–the idea that one spouse owns everything, and the other is utterly dependent. It’s still that way in Chinese culture (even in the states). Even the INS (er, DHSCIS) pretty much assumes this kind of arrangement.

It makes me happy I’m not a woman, since it’s usually the case of a 20-something woman marrying a well-established 30-or-40-something guy, moving into his house with his furniture and doing his laundry, and calling that a marriage. How could anybody be free and happy in such a relationship? (I guess many women are, it’s just an alien concept to me.)

Given our long history with these arrangements, it’s beyond me how this could have seemed like a good idea to an adult writing a book on freedom. Even if I know well the attraction it holds to the just-past-adoloscent mind.

Still, How I Found Freedom in an Unfree World did turn me toward contemplation at the time (and helped spark a deep epistemological crisis within me a couple of years later), and mayhap is a large unacknowledged factor in why I’ve become increasingly apolitical.

(Not that I, uh, recall very much of the specifics these days except for the part about contracting instead of entering into an employee-employer relationship…)