Tuesday, December 27, 2005

Current Read....

Currently reading the all time classic "Think and Grow Rich" by Napolean Hill. Well seems pretty interesting so far. You knew most of the stuff already but it's nice to see someone put these into words. Would highly recommend to all you go-getters out there.

Friday, December 02, 2005

Dating Rules For Software

Dating Rules For Software

Look your best
You don't have to be the Brad Pitt of apps, but you should still make the effort to be pleasant looking. At the least, you should be clean. That whole "it's what's inside that counts" thing? It's true, but chemistry matters too, and we're genetically programmed to be attracted to attractive things. If nothing else, wearing your good shirt and combing your hair sends the signal that you care. That you bothered to take a shower before you showed up at our door, says something meaningful.

Be clean, be simple, keep the bling to an absolute minimum, and don't forget your mom's advice--"you never get a second chance to make a first impression."

Be fun. Don't be negative. Be the one others want to be around.
How do people feel when they're around you? Do they light up a little? Or do they feel inexplicably darker and less energetic when they spend time with you...

Hint: make a list of the apps, products, APIs, frameworks, etc. that make YOU happy. The ones that make you think, "this is awesome." Or better yet, the ones where you never think about them at all... because you're too busy being awesome doing the thing that led you to that tool in the first place.
Focus your energy on putting yourself on someone else's "makes me happy" list.


Be trustworthy and consistent.
There's a time and place for spontaneity, but we need to know we can count on you, no matter what. Make sure we can trust that when we click button A, thing B will happen. Every... single... time. And that it doesn't matter when we push it, or what you did before. Please, no unpredictable mood (or mode) swings.

If you use a particular pair of methods in your API, and then reuse those same names in another part of the API, make certain that they all behave in exactly the same way -- or at least exactly as you'd expect in that different context (terrible API violation of this: the ejbCreate() and ejbRemove() methods for entity vs. session beans in EJB).


Don't be fake.
Don't pretend to be something you're not. If part of your interface looks like it should do X, but does only Y (or worse, does X plus the recklessly dangerous Z), we may never trust you again. Don't try to be more than you are, and don't trick us into thinking you do one thing, when you actually do something completely different. Being simple and clean and real is far better than being a flashy fake.


Be polite, be helpful.
Don't dash off in the middle of dinner to run an errand, but if you must, at LEAST tell us how long you expect to be gone, so we'll have some idea of when to become concerned. An application that doesn't tell you what's going on is just rude. It's OK to offer tips... if we don't speak French, then by all means help us interpret the menu at that French restaurant.


Be forgiving.
We're not perfect. Sometimes we say or do stupid, wrong, or even dangerous things. Make it easy for us to recover and "save face", and we'll love you all the more. And the more you assume it was your fault, the better. Chances are, it was.


Be sensitive, be a good listener.
But not over-sensitive. Pay close attention to the subtle things; don't make us have to yell at you in order to get a reaction. Try to anticipate our needs, but don't make assumptions! We never said this would be easy... and yes, we're a bit high-maintenance, but worth it ; )


Don't assume I'm an expert.
You wouldn't expect that everyone you date will have studied human psychology, so you shouldn't expect a user to have read your manual cover to cover. Don't take us extreme helicopter skiing on our first date.


Be fun.
Not funny. Be fun in the way that a great game of chess is fun (but not funny). Life is too short (or too damn long? I can never remember which way that works) to spend time doing boring, tedious, frustrating work. The best dates of all are with those who can make even the most trivial, mundane things seem... engaging and interesting. Find out what part of this experience really can be interesting, and enhance that.


Don't assume there's no competition.
"There are plenty of fish in the sea" our mothers tell us when we're heartbroken at 15. NEVER take the attention you're getting now for granted. Even if you think you have a vendor-lock. Even if you think they'll stay with you simply because the cost of switching to someone else is too great... There is always someone potentially better, and real loyalty can't be bought. "Frequent Buyer" points might make it look like we're loyal, but underneath we're just waiting for the right opportunity to dump you. Don't mistake current participation for long-term loyalty.


Check your ego with the valet parking attendant.
You might be the best at what you do... for now (reread the previous tip)... but that's no excuse for treating those you date like idiots. And we really don't appreciate hearing you diss the competition, either. A little humility goes a very long way.


Married people really DO have more sex.
No matter how fun the one-night stands appear, they're ultimately empty and unsatisfying. Go for the long-term commitment. Be in this for a lasting relationship. If you really really care, we'll know, and we'll be willing to forgive you when you screw up--as you always will.


Any other dating tips for software or other product developers? Or examples of those who'd score on a second date as opposed to... those who'll never get that second date? If products were a potential mate, which one would you give your phone number to? Me? I'd sleep with Adobe InDesign in a heartbeat.