essays on the processes of everything.
do not step out
apply within
28/Jan/2008 | 22:35

Hiring Smart People


You cannot hire amazing people with terrible job postings.

The project is in need of new blood and the bosses say they want to hire the best possible people to sate the team's needs. Some insightful soul (DELEGATOR) has decided you should be the one to take point on filling important open engineering positions (SLOG THROUGH SHITTY RESUMÉS), so you march off to the nearest recruiting site (BARREN WASTELAND) to get started.

S t o p right there. Do you just want to fill desks without concern for quality? Do you even know how to attract people who don't suck?

Intelligence Rises to Its Own Level

Let's get this out of the way right now:

If you aren't hiring the best people—if you're shooting for adequate or warm bodies—you're playing to fail. Just don't even fucking try. If the bosses don't carry this same concern, I can't help you. Dust off your resumé, because you'll probably need it in the next 18 months. They don't have the right outlook and aren't capable of hiring to stay relevant through the long-term.

Now, it's completely possible to hire a bright electron without understanding what it means to be one, but you won't be able to keep him (or her). If you're all on the same level, however, not only are you going to understand how to make sure he doesn't run off to Mountain View, but you'll be more likely to attract him in the first place.

That's the problem, isn't it? You want to hire smart motherfuckers, and you can't fool smart motherfuckers. Just as dooming as bullshitting smart hires is not showing them that your company is a good place for them to move—you gotta show that you understand them before you even talk to them.

They can smell incompetence, and if your job posting reeks of it, you're going to be stuck with a thousand resumés from that kid who dropped out of JavaSchool and can't design his way out of a paper bag.

Looking Like a Dumbass on $10 a Day

Think of the job posting you're about to write as a special kind of personals ad. In so many words, your task is to entice them into burning their time custom-tweaking their resumé to the position as well as your company, going through the devil phone screen, coming in for a round of interviews, and then possibly coming back for another round. You want them sitting by the phone in-between each date, waiting for that next callback. DO YOU LIKE ME? YES/NO/MAYBE.

There's a right way to do this, and a wrong way.

The following is a real job posting I came across today, reproduced in its entirety with no corrections or changes whatsoever. It's so thick with examples of the wrong way that you practically need a chainsaw to cut through the dumb:

Product Support Engineer

Financial software firm is looking to hire a product support engineer.

Details of the role:

Technical Skills

1.Computer science or software engineering degree from an accredited, 4-year program.
2.Knowledge of SQL, database admin
3.Proficiency with Microsoft Excel
4.Good grasp of scripting languages: ASP.NET,JSP,.Net, Java
5.Basic grasp of OS admin issues
6.Good knowledge and interest in financial markets a plus

Personal Skills

1. Self-starter, highly motivated
2. Good interpersonal skills as candidate will interact with end users and developers at client firms.
3. Ability to manage own time

I'll let that sink in.

The only question I have is . . . who the fuck is this supposed to fool? This was written during a lunch break. No effort at all. The bright future star you should be trying to hire will see right through this and move on to the next posting. You're going to get green candidates and mediocre candidates. Unless you were looking for green in the first place, you're going to file-13 those responses because they're FILLING UP YOUR INBOX, so you're just left with lackluster.


Product Support Engineer

So far, so good. A fairly normal title. I wonder what the job is.

Financial software firm is looking to hire a product support engineer.

Okay, financial applications. No mention of the company, but we're just getting started. Let's finish reading the job description.

Details of the role:

Technical Skills

Wait, what happened here? You haven't described the position, and you're already making demands of candidates?

To be honest, it really doesn't make a difference what comes beyond this point, because no one with the potential to do his boss's job in five years is going to apply for this ghost position. Let's pretend you didn't just nose dive off the high board into the cement and someone's still reading this wreck-in-progress, though, because otherwise I have no article.

1.Computer science or software engineering degree from an accredited, 4-year program.

Most of us realize that for most positions, the degree requirement can be swapped out for "equivalent experience", though it does make us feel better to see it written out in the requisition. It's a handshake of acceptance to those who didn't go the formal route and busted their asses solo to get where they are. IT'S JUST A NICE THING TO DO.




4-year program


Looks like there isn't a silent "equivalent experience" on the end of that after all. You have now cut your potential hiring pool. Bright is bright—don't discriminate.

2.Knowledge of SQL, database admin

I guess you aren't too picky. Whose SQL package? What's the administration scope? Next time, just put "database stuff" and take an extra-long smoke break. It'll be just as informative.

3.Proficiency with Microsoft Excel

It's a little-known fact that most accredited 4-year CS programs require you to take both the low-level and high-level Microsoft Office courses. This shouldn't even be on here.

4.Good grasp of scripting languages: ASP.NET,JSP,.Net, Java

Whoever wrote this has no idea what .NET and Java are, which tells the reader that your company may not have its crap together. If a team manager wrote this part, this is true. If a recruiter wrote this and it went unchecked . . . well, the company may not have its crap together. Someone's letting HR play dice with buzzwords or there's a communication problem that a bright candidate might not want to deal with.

There's no reason to be lazy here. Don't talk out of your ass.

6.Good knowledge and interest in financial markets a plus

Love that this is under "Technical Skills" and not in the barren job description. (NERDS ARE PEDANTS. DON'T DO STUPID SHIT LIKE THIS.)

Personal Skills

2. Good interpersonal skills as candidate will interact with end users and developers at client firms.


Smart People 101: If they're smart, they probably don't enjoy talking to people who aren't smart. Which means they probably aren't good at it. This position is labeled "support engineer", which implies people interaction, but we're again shot in the face by the empty description and have no idea whom we're interacting with and under what circumstances.

I don't mean to imply that you should hire some rude rock star nerd—or that no bright engineer has any social interaction ability—but when you have an entire section devoted to personal skills, make sure you keep in mind that you're still looking for a nerd. This person probably has spent more time indoors than you ever will. Heck, if you're not in HR, you're probably a big nerd too, just not as much ever since you became MR AWESOME MANAGER. You've got to define what kinds of interactions you want from your future nerd better than this.

It's the Little Things (That Bug Me)

If some of this sounds obsessive-compulsive, you're right. There are some major mistakes and some minor ones. The idea is that if you're paying enough attention to what your team needs and what appeals to smart people, you won't want to make any mistakes.

We still don't know what company is trying to hire us. That means good people can't research us and discover they want to work there before applying. The secret here is that good people are busy trying to get awesome jobs, and their time is finite. If you want to find yourself on their radar, you'd better give them a reason to put you on it.

Bright candidates can tell how much effort you put into the posting when you don't construct meaningful sentences, when you're feeding them buzzwords you don't understand, or when you think you know what knowledge base you want when you really have no clue. They even will take note of really minor stuff like inconsistent, haphazard formatting and comma-delimited lists without FREAKING SPACES AFTER THE COMMAS MY GOD I'VE BEEN WAITING HOURS TO TYPE THAT OUT.

It all boils down to effort. If you can't put real effort into your hiring process, what does that say about the process that drives your team to their goals?

link to: apply within

file under: method | comments (0)

looking around
30/Aug/2006 | 11:30

The Glance: Smart Mailboxes Rock Your Shit

In Mail.app right now, I have three Smart Mailboxes:

Additionally, all Smart Folders—er, Mailboxes—pull from all account inboxes.

"What does that tell you?" asks Rands.

It tells me what's been important very recently. It solves THE GLANCE for me.

I have a ton of mail spread across two inboxes, and my screen real estate is finite. Also, scrolling sucks. Yes, it may be easy with today's newfangled whatsits and whosits, but in the end, scrolling means I have more information than I can see. In this case, I can't just glance and see what's going on.


If the amount of information I can absorb over a period X is greater than the amount of information I can see during period X, there's a bottleneck somewhere. In the case of my inbox, it means I'm spending time:

Look around your office for a second. Look and listen for a moment, then look back at the screen. Now answer a question:


The Glance, if done right, can tell me the answer.

A Clever Tom Jones Reference

A quick look around the room will give you an indication of what's going on, right? There's no big science there, no massive revelation in thinking, because, uh, it's common freaking sense. If you have a BIG room, or a room that you can't see all at once, you might have to get up and walk around. Ask someone else, maybe. I don't know, it's your office.

Your inbox is the same way. If it's too big, you spend time dealing with said bigness. I HAVE TEN THOUSAND MESSAGES IN THIS BOX HOW CAN ANYONE SORT THROUGH THIS SHIT?

So maybe you're not sorting through ten thousand messages all at once. But the finite nature of your screen means you're scrolling. Scrolling FEELS like a natural action, but every time you CLICK, you're STOPPING TO THINK, if even for a split-second. It's visual sorting, sifting, scrolling . . . it gets in my way, at the least. It's not fluid.

How many messages will you get today? Ten? Fifty? One hundred? Surely it's easier to sift through that than ten thousand,right? Over the next week, according to my completely made-up math, you might see one, two, or five hundred messages. That's still easier to whip a scroll wheel through.

But that's not the whole story. (Literally.) By making my Smart Mailboxes pull from all folders and inboxes, suddenly I can see what's important TODAY and VERY RECENTLY across a wide scope. It's like being able to glance around your office and the office next to you at the same time.

And, of course, if there's something you don't want to see because it's going to get in the way, exclusion is trivial. I exclude mailing lists, because I don't really want to wade through all fifty messages that get posted to cocoa-dev today. I've got more important shit to read right now.

Oh, check it out, I can have a longer-lasting orgasm. I'll save that e-mail for later.

Waving Your Arms Like an Idiot

A shortened scope is great for browsing and getting a quick handle on what's prescient, but it doesn't tell me priority—it only suggests nascence. To signal HOT SHIT, I use flagging. But how do we view flagged items? Well, I guess you can resort the list, but I HATE RESORTING because that means I have to RE-RESORT. It also suggests that what I was doing somehow doesn't work well. Right?

My "Semaphore" Smart Folder—argh, dammit, Mailbox—is a quick way to see all flagged messages from everywhere with one quick glance. If it NEEDS TO STAY ON MY PLATE, it can be found here. It works. Well. And while it seems really, painfully, ridiculously obvious, I find that nine out of ten people to whom I describe it, well, they'd never thought about doing it before. We're just used to folders and sorting rules, I suppose, after decades of using e-mail. Dynamic is good.

Have You Seen This Child?

CLEARLY I AM A FAN OF SMART MAILBOXES (DON'T CALL THEM FOLDERS). Which means I want the system to be even better than it is. After all, the more you like something, the more you use it, and thus the more things you see that you'd like to have. To close, here's a short list of criteria that don't exist in Smart Mailboxes, but should:

In the end, you can't avoid scrolling unless no one likes you. But you can decrease its impact on your inbox.

Time to inquire about those longer orgasms. Hope I can find that message in all of this junk.

link to: looking around

file under: method | comments (0)

get staged
14/Sep/2005 | 05:17

There's More to Thought Than Just Thinking

The self-help aisle in the bookstore really bothers me. Here, you have rows and rows of best-selling books on how to reorganize your life, how to get things done, how to be a better partner, and perhaps the best subject of all: how to think.

The purpose of this article is not to tell you how to think, but to get you thinking about how you already think. Let's start with a poll. People like polls.

I polled Merv, Rands, Profanity, Pickles, and Hip with the following:

Give three things the mind can be expressed as in an analagous sense; figurative descriptors for how the mind works.

I got the following replies:

Factory, computer, blender, toaster, tofu knife, file cabinet, library, mud pit, weapon, shelter, tree, and mission control.

And the last response, which I think is perfect, provides a segue:

"Ninja magic, because I have no clue how the fuck it works."

Yes, I know the list doesn't add up to fifteen. Not the point. Yet.


Self-help books are inexorably flawed because they attempt to tell you how to think in one way or another. To some people, the brain is a finely tuned implement of thinking. To others, it's a complex assembly line of stages and mechanisms. How to Be a Better Thinker, by Some Guy, Ph.D., is going to try to get you to change how you think completely, when it should really be showing you how you already think and getting you to improve on that.

It's not that we don't know how the brain works—though we really don't—it's that most people don't pay attention to how the brain CAPTURES, TRIAGES, CRUNCHES, and RETURNS information. It "just works", and that's a good thing.

There's no better example of this than a flood.

The Flood

The biggest breakdown of communication in any given company inevitably comes when everyone's screwed. It happens because there's a lot of information out there, but no one has all the information they need. Ever. Instead, you inevitably have this in every other office:

"What's going on with the server behind the firewall? I thought those ports were blocked. Are we okay?"

"I'm not sure. Let me shoot Mr Admin an e-mail."

Of course, the first problem is that three questions got asked of someone who wasn't involved in the problem, and then that person decided he was the new point of contact for the questions. Telephone game.

The flood happens when several people each need to know several things that require you knowing even more things. Think about this for a second. For every question someone asks you, you need to know at least one piece of information, right? One piece of input, one piece of output—minimum. What happens when five people ask you three questions a pop? CAN ANYONE SEE THE MATH PROBLEM HERE?

This is "information resonance", and it's a river: the sheer amount of information dictates that the detrital noise is potentially overwhelming. You're about to get hit with a flood of it, too, because if those guys down the hall are curious as to what's going on, surely your managers and your managers' managers are, too. You need to know how to deal with the incoming deluge.

Yes, I Heard You

Absorbing all of the information in a flood is like trying to intercept a stream from a fire hose. It's hard because, well, that much information can be downright painful, and it's easy because all you really have to do is sit back and let the water hit you in the face. Enough with the H2O analogies.

This is the Capture stage, the first and easiest of the four stages of information processing. It's easy because it requires practically no energy or work on your part. We're talking auto-pilot, here. If you've ever wondered why people can sit in front of the television all day and not get tired, but get run down by half a morning of meetings, this is why. PEOPLE ARE LAZY, and it doesn't require any significant effort to watch information coming in constantly. Meetings are WORK, and WORK IS HARD.

To recap:



On to stage two.

Involuntary Muscle Reactions

The real work in absorbing floods of information—or any amount of information, really—actually comes second. See, it's a two-part operation:

1. Intake data (T.V. time)

2. Assess priority and relevance (What? You want me to do the dishes now?)

The second part is the Triage stage, and it's the stage that makes or breaks your ability to Get Things Done. Screwing up here has the potential to derail any project, assignment, or flood control because tanking Triage will inevitably lead you in the wrong direction. Think of any project you've worked on that went wrong: someone, at some point, misprioritized something important and things suffered because of it. The wrong bugs were sent to the top of the triage list, work started before everyone had a clear direction, or your team got URGENT requests sent to their inboxes every five minutes. This is often seen with extreme cases of micromanagement.

To make matters worse, without direction in the first place, you have no way to prioritize information. See why most people screw this up? They fail Triage because it's easy to fail it. Learning what's important, and how important it is, takes lots of mental practice—and lots of failures.

Eventually, if you work at it enough, it becomes second-nature and can actually be pretty awe-inspiring. You know that geek down the hall everyone calls "The Sponge"? The guy who seems to absorb everything and trucks through pools of information like puddles. His secret is his ability to sift through all of the stuff that comes at him while it's coming at him. He doesn't retain everything, he simply knows what's actually important and how important it is; he knows what you're going to ask him about later, and that stuff gets shifted to the top. If he deems something will never be relevant, it drops off the list entirely.

A good example of Triage is how you handled the list of analogies at the beginning of the article. If your first thought was that I polled five people for three responses and only ended up with thirteen list items, YOU FAILED TRIAGE. THANKS FOR PLAYING. Instead of asking about the missing items, you should have been asking where I was going with the list itself. You did, right? Good.

while (isUnsolved($problem)) { }

This is the part where I talk about how people think, and then at the end, I tell you to disregard it all because everyone thinks differently. Grok? Okay.

(Diversion: Grok? This link is for you, Pickles.)

A diversion, that's kinda like a footnote, right?[1]


Did you read that all the way through to this sentence? Did you click the link and read on? Did you scroll down and read the footnote before continuing?

Some of us are linear thinkers (factory). Others take everything and try to process it all at once (blender). Some of us are procedural, if-then thinkers (tree, computer). Then there's ninja magic again, where you put data in, awesome forces deal with it, and out comes an answer. If only because it invites an intriguing mystery to the function of how we think, I like the ninja magic version.

This is Crunch. It can be a bit of a mess. You might not even subscribe to only one analogy. Or any.

So how do I tell you to think? Of course, the answer is that I don't. Even if I were a mission control thinker and you were a mission control thinker, the arrogance required for me to tell you how to think dwarfs even the amount that I possess. It's a lot. Trust me.

You've CAPTURED, TRIAGED, and CRUNCHED information, and now you have a completed Thought Product. Enter Return. (Laugh, it's funny.) Sometimes, you produce more information to communicate to others, and sometimes you're just preparing another piece of data to crunch. As Merv puts it, "Often there is no return. Some results are intermediary."

Here are a few things to keep in mind:

Keep track of your progress. If you find that you're solving things, but not getting anywhere, go back and triage again. You've probably misprioritized something and don't know it. WHAT DO YOU MEAN "IS THIS BUG IMPORTANT?" YES THAT BUG IS IMPORTANT, WEREN'T YOU LISTENING?

Capture is easy, but it's not a free ride. Don't get lazy. If you can't remember everything I say to you 95% of the time, you aren't paying enough attention. Draw pictures in your head if you need to. No one will make fun of you.

Once you give it, you can't take it away. Practice mumbling when it comes time to relay your Thought Product to others. Remember what we said about information resonance, and carefully gauge exactly how much information needs to be fed back into the system. Too little information, and no one knows what's going on; too much information, and people are wasting time sifting through the clutter.

We'll be back after these messages.

[1] Yes, it is a bit like a footnote, but more distracting.

link to: get staged

file under: method | comments (1)

start something
23/Jun/2005 | 06:03

Everyone Needs a Big Project

Whenever I've been unemployed, I've done whatever I could to trick my brain into thinking that it's being productive. Designed Web sites, done AppleScript work—heck, I even wrote a book once.

Now, as much as I've accomplished through work—and I've done some pretty big things in my few short years as a Contributing Professional—I've never, ever felt as productive as I've felt during some of my downtime.

How is that possible, Mikey-San?!

It's because of The Big Project™. What is The Big Project? Simply put, it's that BIG THING you've got cooking on your burner at any given moment. It gets interrupted by life, becomes your complete obssession, and can either engage or annoy your friends and loved ones.

The Big Project, nothing can stop you from thinking about it. I'm going to tell you how to spot it, why you should have one, and why it's the worst thing that can ever happen to you.

Sneaking Up on Creativity

Your mother always told you that you had a big imagination. You played for hours underneath the bushes outside with your action figures, making epic battles and drama until you couldn't ignore your parents' cries for dinnertime any longer. Twenty years later, you started jotting down little story ideas in a text file at work, and before you knew it, you had a bunch of really great ideas.

A couple of months later, you realized that a few of those ideas fit together pretty nicely, and you wrote a few pages about them. They weren't very good, not good enough to show your friends, so you put them away for a couple of weeks.

Then you read that book. Saw that movie. Heard that story on the news. You got some heavy, sharp inspiration from somewhere, and before you knew it, you were distilling those seven core ideas into three solid jewels. Right after that, you looked up and knew you had a killer story.

And now you're right at the beginning of your Big Project. Don't fight it—the only way to stop it is to finish it.

You might not realize you're in the middle of your Big Project until you're halfway through it. Most people consider their "big projects" something they're stuck in at work. Shipping that new app or redesigning the inventory system. The Big Project doesn't have anything to do with anyone's business plan; this is a personal mission, sometimes (but not always) a statement of having been alive by leaving something behind.

Big Projects are usually ambitious, long-term projects. Finishing your first novel, restoring that 1970 Chevy Nova your dad left you, or—to risk contradicting myself—writing that program you've been thinking about for the last month. They tend to be largely solitary work whose greatest reward comes only from the person who completes it: You.

I Just Want to Come Home and Vegetate (And Other Bullshit Excuses)

A friend of mine just bought a house. He spent a ridiculous amount of money on it (WOO HOO SILICON VALLEY), and he's very proud of it. The fact he bought a house, not how much it cost him. We're straying here.

The nature of his work requires that his brain is in a state of constant movement. The second he becomes vegetative, he's going to have problems doing his daily work, and that threatens his shiny new mortgage. Raise your hand if you've ever wanted to come home and just "veg out" in front of the television or a button-masher video game for a few hours. I feel your pain, guys. As I say often, WORK IS HARD, and PEOPLE ARE LAZY. By our very nature, more work after busting our asses for eight or more hours a day just sounds ridiculous to our tired brains.

But the brain is a muscle. Work it out often enough, and it can do better work for you when you require it. (Clichés are clichés because there's a kernel of truth in them. Moving on again.)

My friend is one of the most productive thinkers I've ever met. He also juggles a lot of projects at once: a high-pressure job at a Large Silicon Valley Company with lots of required thinking; a popular blog with well-written essays; and even a forthcoming book, his first. On top of this, he has a family.

WHOA. How can someone keep that up? What's the thread keeping it all flowing? Right now, his Big Project is his first book. Or maybe it's this new site he's working on. The Big Project is something you can look down the line toward, something you can use to track the passage of time. Your family certainly gives you reason to live life, but Big Projects give you all something to talk about over dinner.

"How's the book coming, sweetie?"

"That last chapter was pretty easy-going, but I'm having a heck of a time with this one."

"Oh? What's holding you up?"

You're accomplishing something and your wife is having a conversation with you. This is what we call WIN/WIN.

Your day job is simply not enough to wake up to in the morning. You need a Big Project or you're just another drone who crunches numbers or designs cogs, drives an hour home on the turnpike, and cracks open a can of whatever in front of the television for the rest of the night; without a Big Project, you contribute nothing, and are, in a sense, Not Doing Anything.

This is why you need a Big Project. Work can't—and shouldn't be—the center of all of your accomplishments in life.

Coming to Terms with the Loss of a Close Friend

So you've spent nine months working on this Big Project, and now you're starting to see the end of the tunnel. Storylines are getting tied up, you've just got to lay that last coat of paint, you're in late beta stages. You're about to finish this Big Project and (hopefully) look for another one.

Hold on there, soldier. Not so fast. You've actually got to finish this one first.

At the end of the 1960s, the Swiss psychiatrist Elizabeth Kubler-Ross described what she believed to be the five stages of grief when dealing with death. In order: denial and isolation, anger, bargaining, depression, and acceptance. You may experience any of these, in varying orders, while approaching the end of your Big Project. A close friend is about to die, and you know it has to happen.

Back to writing a book as an example for a moment. Writing a book is, usually, a solitary exercise. It takes a ridiculous amount of creative energy and time to complete a book, and you've got to take all of the stresses that come with it all by yourself. Bobby down the hall doesn't have your back on this deadline. There is no deadline.

Most Big Projects don't have deadlines. You simply know that one day, you will finish, and you'll be able to look back and reflect on what you've accomplished while looking forward to what you're going to accomplish. Working alone, hard, without a deadline—this is HARD WORK.

The only friend that's been there this whole time has been your Big Project. The book, the muscle car, the computer program. You've had help from time to time, but it's really just been you and your Big Project, for the last several months. And you're about to finish. That means no more late nights working hard with your friend. When you're stressed out and need to get away from people for a little while, to whom will you turn?

Finishing your Big Project means losing a close friend, and that's hard to do, even if you know you'll end up starting a new one as soon as you recover from this one. Because of all this, there's a new stage in death and dying:


You don't want to finish, because you don't want to give up that symbiotic feeling that's given you such a great sense of accomplishment since you started. Go ahead and think that it's just because you can't figure out the ending. I'll wait here until you come to your senses.

Really, the resistance stage is just the denial stage under a different name. Deny that your Big Project is going to end long enough, and it just might never end. Let me tell you from experience that if you let your Big Project sit unfinished, you will never, ever be able to strike it from the front of your mind. The only way to stop is to finish. You owe it to yourself, your Big Project, and everyone around you who's been supportive of you since you started.

Everyone goes through resistance. Hopefully, by the time you get here, you'll be able to recognize the resistance stage when you see it.

After all, you have to start that Next Big Project soon, right?

link to: start something

file under: method | comments (0)

preview button
21/May/2005 | 11:57

Understanding Why Your Users Matter

I was all prepared to write an article that kicked and spat on this guy for writing a STUPID WEBLOG POST on how Apple's customer support is SO TERRIBLE. The article was going to take his argument apart sentence by sentence, reducing him to a mere Interweb troll at the foot of My Awesome Knowledge of Everything.

I was going to do the same thing I was prepared to accuse him of doing: I was about to see only what I could see right at that moment.

Remember the Alamo

Eric's article asserts that because the logic board on his iBook has failed no fewer than five times, and Apple has not replaced his iBook for the headaches it's caused him, Apple's customer support sucks.

Do I agree with Eric that Apple's support sucks because they won't replace his computer? While it's unfortunate that he's had to suffer as a result of the iBook logic board REA, it might not be realistic to replace his computer instead of continuing to repair it. This problem affects a massive amount of people who are out of warranty, and if his computer is replaced because of it, Apple would have to replace all of the out-of-warranty computers affected by the defect. Replacement costs to Apple for in-warranty are offset by AppleCare Protection Plan purchases, but there may simply be too many out-of-warranty computers to justify whole unit replacement instead of repair.

Apple keeps fixing his computer, for free, while he complains. At first, that bothered me, so I started to write that crabby article I mentioned. But then something else happened:

I read the rest of his site.

Users Are People, Too

Your users have, and always will have, certain expectations. Sometimes, they're expectations of disposability—buying kitchen utensils or a garden rake. Other times, they spend twenty grand on a new car and expect it to last for several years.

Well, what happens when those expectations are perceived—and this is the key—as not having been met? It happens. You're going to design that piece of software or build that product, it'll get into the hands of users, and something will go wrong. I'll be a logic board failure, a bad UI redesign, or a random font corruption bug, and it'll land just at the wrong time for a handful of people. You're going to have angry, frustrated, annoyed users looking for resolution.

And you're not going to care.

You're smarter than your users, right? You know what they should think instead of what they're yelling to the Interweb about. Nothing's perfect, and you're fixing the problem for free, so they should stop whining about dead computers. They just don't understand the UI. Font files are easily corrupted, and you can only be but so tolerable of them, so the users should just keep good backups of the typefaces they paid for anyway. Right?

Wrong. Dead damn wrong.

Just as much as your feelings might be hurt by Mary User bitching about your mistake, Mary User is the one who actually has to deal with your mistake. Guess where the responsibility lies.

You see, I browsed the rest of Eric's site and realized that he wasn't just some gimme-gimme-gimme user with a computer problem. Users are people, evident from their frustrations alone, and your product is useless without them. Paperweights just don't sell, and even if you're right about the situation, you still have to understand that you are having an impact on this person's life, whether you like it or not.

So, do I agree with Eric? That's a tough call. Perhaps it isn't financially reasonable on Apple's end. Perhaps it shouldn't matter at this point. I do think that repair should almost always be attempted before replacement, but to paraphrase Merv on the matter, five repairs is too many—the number should be closer to N-2 repairs.

Your users have emotions because they're people, and it's often very difficult to understand their frustrations because intrinsically, you're not one of them. Sometimes it takes a great deal of effort to appreciate their individual cumulative experiences.

Thank you for making me think about that for a moment, Eric.

link to: preview button

file under: method | comments (10)

on elegance
28/Apr/2005 | 15:25

Emergent Design

Outside my office window, there is a pond with some ducks to whom I say hello frequently. The more I stare at the surface of the water, the more I see things I didn't before: the ripples follow simple rules, said ripples are fairly predictable, and the surface turbulence keeps the pollen from becoming too stagnant. Now, math geeks are shouting about how complex waves are, and yes, complex maths can be constructed to describe the mechanics behind what, in reality, is an amazingly simple concept that I prefer to sum up as:

When I do this, nothing inelegant will happen.

The waves are very natural, and even with a healthy amount of chaos theory thrown in, are easy to follow. They—gasp—scale! Fluid dynamics majors can write proofs all day long, and I can imagine it happening just as long, without any real math background. I can even picture what a splash is going to look like, even though it won't be exact.

The trick here is what AI engineers call "emergent behaviour": a simple set of rules that when walked through create complex but natural motions. It's become popular in video game design in the past several years as a means to creating complex processes without impossible amounts of scripting. Define a simple set of rules and allow the scenarios to evolve from there.

I believe all good design is emergent.

Interfaces Are Waves

The deeper I get into design work for My Company's App, the more I see three things in the world around me:

Nothing in the world cannot be made less complex.

Everything is more complex than you think.

The only true elegance is in simplicity, and the only true simplicity comes from nature.

When you're starting something of scale, you'll either create that brilliant design right out of the gate, or you'll put something together that you think is good, but later realize something very important, and often overlooked: "I could have done this ten times better." And you'll do it again, better, just like you said. If you're in the former scenario, congratulations. You've skipped Darwin entirely. It will never happen again.


You've just been assigned to a new app that no one's used before, and you don't have two years to develop the look and feel. You've got to get things up and running, so you build that first dialog box without wasting lots of time. You don't rush it, but you can't sit and mess with every pixel for hours. Done with Dialog Box X, you move on and don't look back. You're an interface god!

A month or two pass, and you load up that old dialog box. Hmm. That line of text isn't formatted like the others you're using now. Spacing's a bit off. You've made some strides in icon placement since that dialog, too. Time to do some updating.

In a whirlwind of design mastery, you go back and redesign Dialog Box X. And Y. And Z. Next thing you know, you've found lots of things to improve. You step back and admire your work. You thought you had 1.0 before, but really, you were just beta-testing UIs. You've worked with your clay for a while, and developed it to the point where you've got a virtual style guide floating around in your head. You might even write it down at some point.

What you begin to realize after months of arranging buttons and text is that there is power in simplicity that cannot be achieved by any other means. Eons of planetary evolution have proven this fact. Things you don't need never stick around for too many generations. Lots of little buttons and "oh-and-we-could-put-this-here" features just get in the way of an otherwise clean design, you realize, and now you're getting closer to the elegance your app has been crying for from the start.

What Kind of Animal Are You?

Picture this non-existant Dialog Box X for a moment. Are you saying, "Okay, the buttons are there, and the menus are there. They really just need to go somewhere," or are you saying to yourself, "Where does this dialog start and where does it flow?" If you answered something like the latter, you're not a user, you're a designer. Problem is, it's difficult, if not impossible, to be both a user and a designer at once.

Back out at the pond, I see the turbulence deforming the reflections of scenery around the pond, and I see the motion of the pollen and leaves floating on top, all because of a few simple rules. Everyone around me sees water. Guess which one I am.

Perhaps, I think, the water was designed perfectly—the users just see the water as a whole, and the designers see everything in between.

link to: on elegance

file under: method | comments (1)

simply dashing
11/Apr/2005 | 10:30

You don't know it yet, but Dashboard has the potential to make your life very, very happy.

Still, with power comes the ability to fail. The demos on the Apple site are indeed impressive, for starters. The on-the-fly language translation widget is something that makes most people look twice, and it's nice to have a useful app like Stickies right there at your fingertips. But what else? Most of the widgets Apple has demoed to this point have been bits from Sherlock or little desktop accessories. Calculator. iTunes controller. Weather modules.

In short, there's no killer app for Dashboard. Yet.

I won't pretend to know what that killer app is going to be, but I can think of five things that Dashboard is screaming to have. So here, I give you the five best Dashboard widgets that haven't been written yet:

1. RSS feeds are neither new nor are their reader apps that special anymore, so no one's going to run out to play with Dashboard just because it has an RSS aggregator. But what prompted me to say, "You know, Dashboard needs an RSS widget," was a friend saying that typical RSS reader apps suck up too much screen space. I thought, if your reader flew down when you hit your Dashboard key, wouldn't that solve the problem entirely? Sure, you could just command-h your copy of NetNewsWire, but that still leaves the NNW icon in the Dock, and somehow it simply doesn't feel as fast as a widget would feel.

With that one out of the way, let's start talking about the types of widgets that would make people content with spending $130 on an OS upgrade.

2. Quick, tell me everything you know about Ayn Rand. The Manhattan Project. Baking powder. Time's up. If you had a Dashboard widget that was a Wikipedia search and results display panel, you would be on top of the freaking world right now. Ken Jennings wouldn't stand a chance against you, with the vast and ever-evolving knowledge of Wikipedia at the slightest tap of your F12 key. Dashboard widgets can take streams of information from the Interweb, Wikipedia is published under a GNU Free Documentation License—put them together, already.

3. VoIP services like Skype are here to stay, whether the telcos like it or not. Imagine activating the Dashboard and a dial pad flies down onto the screen. Dial your number, hit enter or click the "send" button, and wait for the call to connect. Hell, why are we remembering phone numbers anymore? Address Book has all that information for me already. Dial pad descends onto the screen, I click the "people" icon on the side of the window, and a list of my contacts appears—name, picture, and phone number. This may not be possible with Skype, but surely this will be possible somehow, at some point.

4. Whiteboards are great for visualizing information, and can make meetings much smoother (or wreck them entirely, but that's beyond the scope of this article). Why not add a whiteboard to the Dashboard? Quartz has vector art capability as well as beautiful and flexible text capabilities. Tie it to the Postscript system and give the whiteboard widget the ability to save whatever's on the whiteboard as a PDF. Give it layers with adjustable opacity. QuickTime movie exporting to create a transitioning slideshow for importing into your Keynote presentation. Hell, make it Rendezvous-enabled and collaborate across the building or in a single conference room.

5. People bemoan the lack of apps that utilize the microphone built into many Macs. What we need is a "pocket recorder" widget that allows you to record, save, and play back audio snippets. The digital age version of carrying a minicassette recorder to class. Next time you're sitting at your desk and that GREAT IDEA hits you like a freight train, but you're too busy to stop and attend to it, drop the Dashboard, click RECORD, and let the idea fly. Save it and go right back to work. (Of course, if you think better writing by hand or typing, I guess it's Stickies or a fountain pen, but for others . . .)

That's just five off the top of my head. How many more could there be?

What I'm afraid we're going to see is a huge influx of extraordinarily useless stuff—more iTunes controllers, duplications of existing desk-accessory-eqsue apps, more clocks, and random quote generators. Dashboard is a usability solution for lots of ideas, but it's likely to get cluttered with useless trinkets and toys.

These five ideas are free for use for any developer who wants to tackle them, and I don't ask credit, because I think they are, for the most part, fairly obvious ideas. I'd like to encourage anyone reading this, as well, to think up one idea and post it to the comments under the same free use ideal.

Have at it.

link to: simply dashing

file under: analysis, method | comments (20)

well, mumble
24/Mar/2005 | 14:06

"Well, the reason you can't get to the page is probably because the result of the SQL query isn't being stored as a variable, but I think it might be an if-statement problem, because if I'm actually pulling the data into that variable I was using, it would be outside that if-statement--"

Okay, stop. What you meant to say was this:

"Well, mumble, there may or may not be a database problem, and it's being worked on. I'll have a status for you shortly."

Substitute "shortly" for "whatever timetable you think you might be able to make and get away with".

To understand where "mumble" comes from, you have to picture how much information you, your co-workers, and your manager(s) process on a minute-to-minute basis. The equation looks like this:


If the amount of INFORMATION exceeds the TODAY value, there's no time to listen to what you have to say. If the other person has some time, but halfway through your explanation of why such-and-such is the way it is, you're going to lose the person's attention as you crawl deeper into the negatives.

What "mumble" does for you is give the person looking for an incentive to listen to every word you've said. After all, if I don't have enough attention span/time/patience to listen to your 1,000-word essay on the problem, you run the risk of me dropping the really important sentences without realizing it.

"Mumble"--no, you don't actually say it out loud, it's just a thought process--is your trick to boxing up the things-that-might-be-this-way-or-that-way and give the person exactly what you wanted them to understand and remember in the first place. In the example at the beginning of this article, you had lots of details about the situation, and walking away from the first version, you're saying to yourself, "I hope he remembers that we're not sure what the problem is just yet, but we're close, and we're going to be able to fix it soon." The problem, however, is that every set of commas you add to the answer just increases the amount of things people can pick and choose from to remember.

You said everything, but how much was actually absorbed?

Remember, in the English language, commas are delimiters for dependent clauses, and as such, a person can still construct entire sentences by removing some parts of sentences between commas, even if things turn out non-sensical.


Remember, commas are delimiters for dependent clauses, even if things turn out non-sensical.

Reduce what you mean down to what you mean, and that's exactly what the person to whom you're talking will take away.

Well, mumble, or something like that.

link to: well, mumble

file under: method | comments (0)