Archive for the ‘People’ Category

Clarify user expectations to the minute to eliminate frustration and extra work

February 9, 2012

Vague timeframes like “ASAP” or “in a few days” are a sure way to get sorrow into your work day.  You’ll likely spend too much effort getting something earlier than the customer wanted, or later than he expected, leaving him frustrated.

Consider this simple request: “Can you get me the number of widgets we sold in 2011 ASAP?”  What exactly does “ASAP” mean?  Always ask for clarification.  “When exactly do you need this?  In ten minutes?”  You might get an answer of “Within half an hour. Jim has a conference call to London at 11:00.”  Or you might get an answer like “Oh, no, by the end of Tuesday is fine.”

This is also the same approach to take when someone asks “How long will it take for you to do X?”  She doesn’t really want to know how long it will take, but rather if you can do it in the timeframe she wants.  Therefore, don’t answer the question, but instead find out what the user actually wants by asking “When do you want it by?”

Make sure you always get time requirements down to the minute, not the day.  For instance, if a user says “Can you email me those numbers by Wednesday?” when exactly does that mean?  You might take that to mean “some time on Wednesday”, but she might mean “Wednesday at 8am because that’s when I come in and will want to incorporate them into a report.”  When 8am comes and no numbers are in her mailbox, you look like a chump.  If it’s the other way around and you get her numbers sooner than necessary, you’ve prioritized her work higher than other tasks that need to get done first.

There are all sorts of vague terms to clarify.  “End of business” usually means “I really want it the following morning”, and “by lunchtime” probably means “when I get back from lunch”.  In all cases, clarify to eliminate misunderstanding.

Finally, close the conversation by reiterating your commitment and include your understanding of the time frame.  “I’ll email you an Excel document with those numbers by 4pm tomorrow.”  This makes everything clear and gives one more chance for potential misunderstandings to be made explicit.

Open source is improv, so say “Yes and”

January 23, 2012

In her fantastic book Bossypants, Tina Fey has a sidebar about how improvisational comedy has changed her life, and given her a new worldview. We in open source would do well to adapt these ideas to how we conduct our projects as well.

Improv and open source share many characteristics. A group of people come together to create something without a plan, and the result is greater than any one person could have created on his own. Everyone has a wellspring of ideas, and adds to the work created by others. In improv, the people make a scene or a sketch. In open source, they make software, or a body of knowledge, or a community, or a gathering.

From her book:

The first rule of improvisation is AGREE. Always agree and SAY YES. When you’re improvising, this means you are required to agree with whatever your partner has created. So if we’re improvising and I say, “Freeze, I have a gun,” and you say, “That’s not a gun. It’s your finger. You’re pointing your finger at me,” our improvised scene has ground to a halt. But if I say, “Freeze, I have a gun!” and you say, “The gun I gave you for Christmas! You bastard!” then we have started a scene because we have AGREED that my finger is in fact a Christmas gun.

Now, obviously in real life you’re not always going to agree with everything everyone says. But the Rule of Agreement reminds you to “respect what your partner has created” and to at least start from an open-minded place. Start with a YES and see where that takes you.

As an improviser, I always find it jarring when I meet someone in real life whose first answer is no. “No, we can’t do that.” “No, that’s not in the budget.” “No, I will not hold your hand for a dollar.” What kind of way is that to live?

The second rule of improvisation is not only to say yes, but YES, AND. You are supposed to agree and then add something of your own. If I start a scene with “I can’t believe it’s so hot in here,” and you just say, “Yeah…” we’re kind of at a standstill. But if I say, “I can’t believe it’s so hot in here,” and you say, “What did you expect? We’re in hell.” Or if I say, “I can’t believe it’s so hot in here,” and you say, “Yes, this can’t be good for the wax figures.” Or if I say, “I can’t believe it’s so hot in here,” and you say, “I told you we shouldn’t have crawled into this dog’s mouth,” now we’re getting somewhere.

To me YES, AND means don’t be afraid to contribute. It’s your responsibility to contribute. Always make sure you’re adding something to the discussion. Your initiations are worthwhile.

Too often in open source, we do the opposite. We quickly say no, without regard to its effects. In improv, “no” kills a scene. In open source, it can drive away a contributor or kill an improvement to a project. It doesn’t need to be the word “no”, but any negativity towards a fresh idea.

Consider this exchange, all too common in mailing lists and IRC channels right now.

Al: “I’m thinking about writing a tool to do X in language Y.”

Bob: “Language Y is a pain in the ass.”

In one quick bit of snark, Bob has taken a giant crap on Al’s idea, even though his only disagreement was in the implementation. Chances are Al will lose enthusiasm for the probject. In many cases, Al’s reaction might just be “Screw it, I don’t need this.”

Consider this alternative response from Bob:

Al: “I’m thinking about writing a tool to do X in language Y.”

Bob: “That sounds like a cool idea. I bet a lot of people could use X. I have some concerns about writing it in Y if you’re interested in hearing them.”

This is not “sugar coating the truth” or “being politically correct.” It’s being polite. It’s being a human who understands that other people have feelings, and that those feelings drive behavior.

I’m certain that some reading this will say “If Al gives up based on that, Al needs to toughen up. If someone doesn’t like something I’m doing, I’ll still do it anyway.” That’s great for you, Mr. Self-Esteem. Not everyone is as highly advanced as you are.

The “suck it up and take rude criticism” attitude might make sense if your project can be picky enough to only take contributions from those with your level of self-esteem. No project that I’m on is so overflowing with contributors and code that it makes sense to drive away those who want to help. It’s my job in my communities to help bring in more contributions, and I suggest it’s yours, too.

Open source is not standup comedy. It’s never one star on stage, doing it all himself. It’s a worldwide improv ensemble. Try saying “YES, AND” and see what can come out of it.

Mark Jason Dominus on the importance of giving fish

November 2, 2011

By Mark Jason Dominus, from a talk in 2003, reprinted here with permission. Sadly, it’s still relevant today.

The #perl IRC channel has a big problem. People come in asking questions, say, “How do I remove the first character from a string?” And the answer they get from the regulars on the channel is something like “perldoc perlre“.

This isn’t particularly helpful, since perlre is a very large reference manual, and even I have trouble reading it. It’s sort of like telling someone to read the Camel book when what they want to know is how to get the integer part of a number. Sure, the answer is in there somewhere, but it might take you a year to find it.

The channel regulars have this idiotic saying about how if you give a man a fish he can eat for one day, but if you teach him to fish, he can eat for his whole life. Apparently “perldoc perlre” is what passes for “teaching a man to fish” in this channel.

I’m more likely to just answer the question (you use $string =~ s/.//s) and someone once asked me why. I had to think about that a while. Two easy reasons are that it’s helpful and kind, and if you’re not in the channel to be helpful and kind, then what’s the point of answering questions at all? It’s also easy to give the answer, so why not? I’ve seen people write long treatises on why the querent should be looking in the manual instead of asking on-channel, which it would have been a lot shorter to just answer the question. That’s a puzzle all right.

The channel regulars say that answering people’s questions will make them dependent on you for assistance, which I think is bullshit. Apparently they’re worried that the same people will come back and ask more and more and more questions. They seem to have forgotten that if that did happen (and I don’t think it does) they could stop answering; problem solved.

The channel regulars also have this fantasy that saying perldoc perlre is somehow more helpful than simply answering the question, which I also think is bullshit. Something they apparently haven’t figured out is that if you really want someone to look in the manual, saying perldoc perlre is not the way to do it. A much more effective way to get them to look in the manual is to answer the question first, and then, after they thank you, say “You could have found the answer to that in the such-and-so section of the manual.” People are a lot more willing to take your advice once you have established that you are a helpful person. Saying perldoc perlre seems to me to be most effective as a way to get people to decide that Perl programmers are assholes and to quit Perl for some other language.

After I wrote the slides for this talk I found an old Usenet discussion in which I expressed many of the same views. One of the Usenet regulars went so far as to say that he didn’t answer people’s questions because he didn’t want to insult their intelligence by suggesting that they would be unable to look in the documentation, and that if he came into a newsgroup with a question and received a straightforward answer to it, he would be offended. I told him that I thought if he really believed that he needed a vacation, because it was totally warped.

Mark Jason Dominus has been doing Perl forever. He is the author of Higher Order Perl which belongs on the shelf of every Perl programmer. Follow him on Twitter at @mjdominus.

You’re not a genius? Says who?

October 10, 2011

Who says you’re not a genius?  Who are any of us to say?  And why would anyone bother telling someone that?

In my last blog post, I talked about how it was unnecessary and counterproductive to justify your projects to your detractors. It only wastes time that could be spent doing something positive, and it’s not going to change anyone’s mind.  One of the commenters took issue with my premise, basing his disagreement on the glib comment “You ain’t Steve Jobs.”

Of course I’m not, but so what? How much of a genius do I have to be before I no longer have to justify myself to others? (Don’t answer that; it only encourages them.)

The unspoken corollary to comments like “You ain’t Steve Jobs” seems to be “Therefore, you must listen to how others want you to be.” Fortunately, even in the absence of a Jobs-level genius, we’re all able to stand on our own, to live and work as we see fit, without having to take mandatory guidance from others.

I wonder at the thought process that it takes to tell someone “You’re not as _____ as you think you are.”  Near as I can figure, comments like these have one or more of these subtexts:

  • “You need to be more like me.”
  • “I’m trying to save you wasting time or risking failure.”
  • “I have taken it upon myself to take you down a peg and put you in your place.”  (This one often appears with the phrase “I’m just saying…”)

Fortunately, none of these are valid, none of them need concern you.  You can, and should, ignore them.  Ignore them for your own sake, and for the sake of the awesome things you have in you to share with the world.

I wonder how many Jobs-level brains are out there but never flower because the person was told too many times that he (or more likely, she) isn’t as good as he thinks he is. Neil deGrasse Tyson makes a brilliant point about how we teach children, that parents spend the first years of a child’s life teaching him to walk and talk, and the rest of his life telling him to shut up and sit down, quashing their sense of wonder and thirst for knowledge. “You ain’t Steve Jobs” is the adult version of “shut up and sit down.”

Whatever your level of genius, one thing we can all share with Steve is his perseverance.  He kept working at what he believed in, despite public derision about his public failures.  Before the success of the Macintosh, Apple released the Lisa, and before the iPad, the Newton. How much poorer the world would be if Jobs had listened to his critics and packed it in!

I’m not saying that there isn’t value to be found in criticism, even unsolicited criticism, about your work.  I’m not suggesting that you shut out the world around you.  If you can take what you find useful and leave the rest, then do it.

I am suggesting that you shut out those who tell you you’re no good, or who want to put you in your place. When people tell you you’re not awesome, ignore them.  Who are they to say?  And why does it matter if they think you’re awesome or not?  Eventually, you’ll prove them wrong.

 

There’s only one useful way to handle your detractors

October 6, 2011

Here’s a Reddit/Slashdot/whatever thread that never happened:

Internet crank on Reddit: “Hey, Steve Jobs, I guess that new iPad looks cool, but I think iPad is a stupid name, it makes me think of sanitary napkins.”

Steve: “Yeah, well, here’s why we called it that. (Long explanation justifying his choices)”

Crank #2: “Well, why didn’t you call it the iTablet? I think that would have been a good name. What does everyone else think?”

Crank #3: “What does it have to be iAnything? I’m tired of the i- prefix.”

Steve: “We thought about that, but … (More explanation about his choices)”

Crank #1: “And really, isn’t it just a bigger iPod Touch? I would never carry that around with me. And come on, you’re just trying to redo the Newton anyway LOL”

Steve: “My logic behind the iPad is (vision, business plan, blah blah blah)”

Can you even  imagine Steve Jobs in this sort of time-wasting and emotionally draining tit-for-tat in a thread on Slashdot? On reddit? In some blog’s comment section? Of course not. Justification of his plans would take away from the amazing things that he needed to achieve.

Naysayers are part of every project. How many people do you think pissed on Jimmy Wales’ little project to aggregate knowledge? Nobody’s going to spend their time writing encyclopedia entries! And yet there it is.  On a personal level, if I listened to everyone who thought I was wasting my time improving on find + grep you’d never have ack.

We all have to persevere in the face of adversity to ideas, but there’s more than that.  We need to ignore our detractors. Despite how silly and time-wasting it is to argue your motivations and reasons for undertaking a project, many of us feel compelled to argue with everyone who disagrees with us.  I suggest you not waste your time.

On the Internet, the attitude is “Why wasn’t I consulted?” Every anti-social child (measured by calendar or maturity) with a keyboard thinks it’s his responsibility to piss on everything he doesn’t like. They’ll be there always. You can no more make them go away than you would by arguing with the rain.

What are you hoping to achieve by arguing with someone who doesn’t like your project? Do you expect that he’ll come around to your way of thinking? It won’t happen through words.

Not only does arguing with your critics waste your precious time, but it tells them, and every other crank reading, that you’re willing to engage in debate about what you’re doing. Don’t encourage them! Let them find a more receptive target.

I’m not saying that factual misstatements need to be ignored.  If something is provably incorrect, go ahead and counter it with facts.  However, most of the time these message thread pissing wars get down to “I would not be doing what you are doing, and therefore you are wrong for doing so.”

The only thing that has a chance of silencing your critics is success at what you do. Arguing with the naysayers doesn’t get you any closer to that.

Distracting examples ruin your presentation

July 26, 2011

At OSCON today, I went to a talk called “Why Know Algorithms” by Andrew Aksynoff. I was pleasantly surprised to see that the speaker was the author of Sphinx, a powerful full text indexing engine that I’m considering adopting for a project.

However, halfway through I was shocked, especially in light of all the problems with sexual harassment and sexist attitudes at conferences that have been brought to the fore lately, to see the example that Andrew used: Selecting women from a database, ranked by “hotness.”

Here’s the table layout he used (and I apologize for the blurriness):

CREATE TABLE usertest (
    id INTEGER PRIMARY KEY NULL,
    sex ENUM ('m','f'),
    age INTEGER NOT NULL,
    hotness INTEGER NOT NULL,
    name VARCHAR(255) NOT NULL,
    INDEX(sex,age,hotness)
)

His sample code revolved around ways to optimize this query:

SELECT *
FROM usertest
WHERE age >= 18 and age

The latter half of the talk discussed various ways of creating indexes to efficiently provide answers to that query, and which queries would run best with different indexes, in case you want to order by age instead of hotness, for example.

I was angry about two things. I’m specifically not going to address the crass sexism here. I know plenty of others can (and will) address it better than I can.

I was more upset about the effects of the sexism in the classroom. When I’m here at OSCON, I’m both teacher and student. When I’m a student at a session, I want to pay attention to the content, not wonder how the women in the audience feel about the instructor’s attitudes towards them. Are they offended, but afraid to leave? I saw no women leave, although plenty of men did.

Andrew clearly knew his material, and he explained it well. Strictly from a teaching perspective, Andrew’s problem was that the examples overshadowed the lessons to be taught. It’s the same frustration I had with Steven Feuerstein’s book from O’Reilly on Oracle 8 where his examples included a table of war criminals including Henry Kissinger.

When you’re teaching a class, don’t include anything that detracts from the message you’re trying to teach. A LOLcat slide is fine but include too many and that’s what people will remember rather than what you’re trying to teach. It should go without saying that examples that make the audience uncomfortable will also ruin your class.

Note: I will delete any comments that include personal attacks on anyone.

Andy’s jobs/work news roundup for 2011-02-21

February 21, 2011

These links are collected from my Twitter feed. If you have suggestions for news bits, please mail me at
andy@petdance.com.

  • Job boards no more “help” you find a job than a billboard “helps” you find a new pair of shoes. (codeanthem.com)
  • A few things every job-seeking programmer should know about project manager (stellman-greene.com)
  • What job qualifications can trump work experience? (askamanager.org)
  • Ten tips for submitting your resume (money.usnews.com)
  • Don’t call to schedule an interview (askamanager.org)
  • This is how salary negotiation should work (askamanager.org)
  • RT @mjdominus A recruiter asked me to rate my programming 1–10. I said 10, since nobody who asks that is qualified to dispute my answer.
  • From the daily @tom_peters email: If your failure rate is one in a million, what do you tell that one customer?
  • RT @AskAManager Be Cautious When Referring a Friend for a Job (bit.ly)
  • What to do when you think you might lose your job (thecynicalgirl.com)
  • Should you work for free? Probably not. This fine chart lays it out. (jhische.com)
  • The importance of being able to say “I don’t know” (chadfowler.com)
  • How to tailor a resume for an employer (bit.ly)
  • 57% of the Inc. 500 use social media to recruit (talentline411.com)
  • Quit whining and send a thank you note after an interview (xrl.us)
  • How to be a better coworker (mashable.com)
  • Ditch Starbucks and work at the library. (52tiger.net)
  • 8 things you should know about job references (from @AskAManager) (xrl.us)
  • Smokers need not apply (bnet.com)
  • Six reasons you shouldn’t quit without notice (bnet.com)

When was the last time you were thanked?

May 30, 2010

Seth Godin’s blog entry today sums up so much of my frustration with much of what I see on the Net:

Yes, I know you’re a master of the web, that you’ve visited every website written in English, that you’ve been going to SXSW for ten years, that you were one of the first bloggers, you used Foursquare before it was cool and you can code in HTML in your sleep. Yes, I know that you sit in the back of the room tweeting clever ripostes when speakers are up front failing on a panel and that you had a LOLcat published before they stopped being funny.

But what have you shipped?

What have you done with your connection skills that has been worthy of criticism, that moved the dial and that changed the world?

Go, do that.

Right on, Seth. To that list of “so you can…” I’d add

  • You’re a master debater on Slashdot and Reddit
  • You’re quick with a link to letmegooglethatforyou.com
  • You correct people in the ways in which they ask questions in IRC

The tough part is that most of the things that you do “with your connection skills that has been worthy of criticism, that moved the dial and that changed the world” require you to get off your ass and get out from behind a keyboard.

Ever given a talk at a user group meeting? Ever organized a conference? Or lined up a speaker for a user group meeting? Written an article or blog post where people say “That’s changed the way I look at things?” Or created software where people say “I don’t know how I lived without this?”

When Seth talks about “moved the dial and changed the world,” I’ll even set the bar a bit lower. When was the last time someone thanked you for downvoting someone on reddit, or being an oh-so-clever snark poster on Slashdot? Ever received appreciations for pointing out what you perceived as someone’s shortcomings in a flame war?

Which is more likely?

  • “Thanks for telling that guy your negative opinion of him.”
  • “Thanks for that presentation on Ruby modules.”
  • “Thanks for reaching level 75 on Farmville.”
  • “Thanks for putting together this group. I learned a lot.”

Get out there from behind your keyboard and do something that builds rather than tears down.

Geek conferences for families

July 13, 2009

Skud asked me a few weeks ago if I’d mention something here about support for women with children at geek conferences. Specifically, she asks for updates to the Geek Feminism wiki page on childcare and women-friendly events.

What jogged this in my mind was a geek conference of another kind. I went to the American Library Association’s annual conference on Saturday, and they were very family friendly. A big sign by registration pointed to the child care area, and there were plenty of amenities to help conference-goers with families:

Child Care and Camp ALA
Make this year’s annual meeting a family affair. Once again, ACCENT on Children’s Arrangements, Inc. has planned a great children’s activity center for ALA convention attendees’ children. ACCENT is a nationally recognized professional childcare company organized to provide quality on-site children’s activities in a nurturing, safe, educational environment. ACCENT’s counselors are fun-loving professionals with plenty of experience with children. With activities such as arts and crafts projects, active games, movies and much more, the children are sure to have a great time. The fun includes optional field trips for children ages 6 and older.

CAMP ALA welcomes children ages 6 months – 17 years, and is available Friday, July 10-Tuesday, July 14. The cost for the camp is $80 per child per day. Parents pay $48 per child per day for the center and ALA funds $32 per child per day. An optional $15 lunch is available, or children can bring their lunch. If you prefer, you can register your child for a field trip day instead (children ages 6 years and older only), which includes lunch. The cost for each child with a field trip is $90 per day. Parents pay $58 per child for the field trip day and ALA funds $32 per child per day. A $10 Non-refundable registration fee per child is also required. Download a Children’s Program and Registration Form.

Children’s Policy
Strollers are permitted on the exhibit floor but only if there is a child in them at all times. Unescorted children are not permitted on the exhibit floor. Children under the age of five must be restrained at all times (stroller, back pack, etc.). Any child over the age of five must have an exhibits only badge to be admitted to the exhibit floor. These badges are available at onsite registration for $25. An adult must accompany all children under the age of 16.

New Mother’s Room
The New Mother’s Room is located in the First Aid Room, Level 1, near the Concierges, McCormick Place West.

Can you imagine a computer conference like this? Maybe they’re out there and I’ve just never been to one.

The wags out there will likely point out that librarian conferences skew female far more than techie conferences, and that’s true. But is that cause or effect?

Beautiful Teams

March 8, 2009

beautiful-teams.gifBeautiful Teams from O’Reilly is going to the printer next week, and I’ve been reading the draft. It’s chock full of interviews and stories and opinions about development teams and what makes them work. If you’re a reader of this blog, then it should be on your list to pick up.