I’ve been collecting a few common-sense rules that I wish the whole world followed. See what you think.
Software
– When you take user input, allow as much leeway as possible. Let people do things like add spaces or other whitespace to the beginning or ending of their input. Or if you’re expecting a domain name, allow users to type in a url; just extract the domain from the url.
– If you have output files with dates, you should name things in the order YYYY-MM-DD, not MM-DD-YYYY. That way, whenever you sort a list of filenames, they’ll be in chronological order.
– If you think you’ve found an issue or bug, when you tell someone about it, give them enough info to recreate the problem.
– If you get bitten by a bug or an issue, fix the immediate problem. Then ask yourself “How could I keep this bug or problem from ever happening again?” Maybe it’s as simple as adding monitoring so that things don’t fail silently. Maybe a poor UI causes bad input. Maybe your code needs to do more safety checks or stricter input checking. Don’t just fix a problem–try to go to the root cause and make it impossible for that problem to reappear.
– When you’re sending out an email that several people are reading, don’t use pronouns. “He should be able to tackle this afterwards” may make a ton of sense to you, but don’t assume other people will know who “he” is, what “this” is, and what “afterwards” refers to.
– If you’ve got a file you want to show that’s less than 100,000 lines or so, put it into a web directory and just send out the url. Then people can access the raw file if they want, or look at the file in their browser.
– If you email many people and ask for someone to do something, no one’s responsible. It’s better to ask one specific person to take the action.
– If you’re sending out an email with links in it, check your links by clicking on them before you send that email.
– As soon as you type “I’m cc’ing (someone)” in an email, go up and cc them right then. You look silly when you say you’re cc’ing someone and then you don’t.
– Try to keep hyperlinks short enough so that they don’t wrap around or get cut off by someone’s mail program.
Misc
– It can be difficult to keep a secret on the web. If you are working on some innovative, amazing product that no one has ever seen before, strip your referrers. Also, sanitize any PowerPoint you make available. You probably shouldn’t change how you handle new subdomains or urls either. Remember, if a url is supposed to be private but anyone can access it on the web by visiting the url, someone will stumble across the url; use an .htaccess file to provide password protection on Apache servers. Because if people are interested enough, they will dig through your source code, monitor your robots.txt, and study which domains you buy, even if you buy them through another company. Plan according to how much scrutiny you expect. Update: Some people are even willing to go through the internal text files that you provide for translation/localization.
– When doing any messy task like cleaning out your cat’s litter, do it with your mouth closed.
– If you ask 100 people to do something, only about 25 will do it. If you threaten death and dismemberment, about 60 people will do it.
– When you’re in a conversation about something that you want, and you’ve gotten approval: stop talking and leave.
What rules of thumb would you suggest?
I like those….
A note in the software section for checking input: Regular Expressions for those not familiar with the technique. This is my favorite site for it: http://regexlib.com/default.aspx
For email attachments: I wouldn’t recommend doing it at all. I always post the file online in a secure location.
If you have to send attachements, zip and password protect, then rename the extension of the zip to something like .zipp so most e-mail programs don’t block them.
Incorrect, if you close your nose and leave you mouth open there is no smell, but I hear what you are sayin’ homie. 😉
If you’re going to launch a great new service, make sure the servers involved can handle the signups (Especially if Matt decides to announce it on his blog).
If you don’t have a solution in mind already, don’t call a meeting to discuss it.
If you have to ask “is this ethical/allowed/legal/proper/” it’s probably not something you should be doing.
Don’t ask for information you already know.. I hate this.. lead in forms that ask for zipcode, only to ask for your state on the next page… or buttons that say “do x” that take you to a confirmation page where “do x” isn’t already selected.
Don’t make me type it if I don’t have to…
Dont’ ask for information unless you need it.. If you want me to create an account, ask me AFTER I complete my sale. Asking me beforehand is just one more reason for me not to finish the sale.
Don’t mess with expected behaviors.. (that new scroll bar on MSN live that doesn’t really scroll) Scroll bars should scroll, buttons should click, links should be underlined and take me somewhere else.
Ok so alot of these are e-commerce / UI specifc, but still good.
Always get things in writing. It’s not a matter of trust. It’s a matter of failing memory. Either by convenience or accident.
>>When you take user input, allow as much leeway as possible.
– Why make a data input field an IQ test? – If you require input, make it obvious.
– Check yur spelling before you send an email or post a comment on a blog.
“Incorrect, if you close your nose and leave you mouth open there is no smell, but I hear what you are sayin’ homie.”
That still doesn’t stop things from getting in your mouth.
> When you take user input, allow as much leeway as possible
Just to say that this one should be taken with a pinch of salt.. horrible mistakes can happen when you assume what people mean. Sometimes there’s no alternative to verifying the data and asking the user to try again. You can always ask “Is this what you meant?” to make things a bit easier.
There are three rules that I live by: never get less than twelve hours sleep; never play cards with a guy who has the same first name as a city; and never get involved with a woman with a tattoo of a dagger on her body. Now you stick to that, and everything else is cream cheese.
Oh…and…
-Never forward an e-mail without reading it completely.
-Never volunteer for anything on a crab boat.
Matt:
I dont just close my mouth when I clean out the litterbox, I crack the window and let some fresh air in.
I tried one of those automated litterboxes but the sound of the box cleaning freaked my cats out and they started eliminating all over the house.. that was their way of telling me to get that noisy thing outa here.. I guess we can’t teach old cats new tricks.
Always call your Mother on Mother’s Day
When you find yourself in an argument with your spouse, remember that the most important thing isn’t winning.
If you think Google made a mistake with your site it’s probably your fault.
You can never have too much room when you fly commercial.
There are such things as bad customers or clients.
While on the phone, don’t put someone on hold to take another phone call. When people do this to me, I almost always hang up unless it’s something very important. When doing this you’re telling someone they’re not as important as another caller.
Never ask: ‘Can I ask you a question?’
Don’t send emails without a SUBJECT. I know many people who simply delete them.
When having a conversation, don’t cut someone off three or four times in a row then hastily ask them why they are not ‘contributing’ later in the conversation.
Don’t be on the phone while checking out at the store, in the movie theater or when you get pulled over by the police. (you wouldn’t believe it if I told you)
Don’t, under any circumstance, dig through your ‘purse’ for 97 CENTS to pay for a $80.97 bill at Wal-Mart. Especially don’t do this when you have a dollar bill (to cover the 97 cents) in your hand and there are 10 people waiting in line behind you!!!!!
Aaron, that last one sounded heart-felt. 🙂
>If you ask 100 people to do something, only about 25 will do it. If you threaten death and dismemberment, about 60 people will do it.
You all will link to me from your blogs now or the graywolf-bot 2.0 will inflict severe bodily harm to you about the head and body 😉
My rules of thumb are:
If you don’t know what you’re talking about, stop talking. It may be awkward but at least you won’t embarrass yourself.
You won’t know the answer if you don’t ask the question. Do the experiment, don’t guess.
and from my experience in woodworking and system design:
I’m not rich enough to afford cheap tools. Buy good tools and use them hard, they will be worth it over the long run.
– Be prepared to discount any user’s description of a problem, since the reality is almost never what the initial perception is.
– Never be afraid to have a viewpoint that differs from popular opinion, as long as you can back it up logically.
Sorry Matt, but here’s where my software advice differs from yours:
– Allow users as little opportunity to enter data that could potentially cause coding errors as possible. Use selector fields for things such as dates/times and other information where a limited number of options should be made available.
– If you ask 100 people to do something, 90 of them will whine, snivel and complain or just say “go to hell”, 5 will feign interest and then not do it anyway, 3 will come down with a mysterious 24-hour flu or similar ailment, 2 will give your issue some thought, and one of those two might just do it.
My rule…
If your work IM service has co workers and friends on the contact list. Make sure you double check who your sending the nudie link to and it’s not going to Sue from Accounting or Sarah from IT.
A good way to do this is to place them into groups!, I know from experience 🙂
😀 1- Learn One MAJOR Career-Related Fact Each Day…
😀 2- Learn One MAJOR “Life” fact Each Day…
😀 3- Immediately ARCHIVE & ALLOCATE any Important Information Discovered to Those Who Would Appreciate It…
>If you ask 100 people to do something, only about 25 will do it. If you threaten death and dismemberment, about 60 people will do it.
>You all will link to me from your blogs now or the graywolf-bot 2.0 will inflict severe bodily harm to you about the head and body
You will all link to me and I will protect you from the graywolf-bot! 😉
Adam v2.0
Yea Matt,
Heart-felt it was. That happened about two days before Christmas. The store had maybe 15 of it’s 35 registers open and it was a mad house. We were in the line for 20 items or less. Where, as usual, people are buying twenty cans of cat food and arguing that the ‘twenty items’ are ‘one’ because it’s the same item, twenty times. I guess they don’t consider that the store has to scan each one individually. Can those cash registers multiply???
I guess we were standing in line for about 15 minutes and I just wasn’t feeling all that jolly considering the circumstances.
I’m glad Google hasn’t decided to use only half of its processing power in the servers during peak hours!!!
Matt, haven’t you heard of delegation of tasks? or a maid?
What is it about people and cell phones?
My wife and I have had one since ’90, early adopters, and we carry them all the time, even use them on occassion, but we don’t walk and talk on them like addicts trying to get a fix, and if in public, excuse ourselves to an appropriate place to talk if it’s going to last more than 15 seconds.
Other people will have the gall to sit in a nice restaurant and start shouting in their “phone voice” for 10 minutes or more and annoy EVERYONE.
BTW, this reminds me of a story, you’ve head of Road Rage?
I call this “Salad Rage”….
My wife got ticked with some lady in line at a salad bar that was yapping on her cell phone and not getting her food as she just stood there babbling with her tray in the way. After asking nicely a few times to please move along, my wife just skipped her and her husband in line as we’d been standing there several minutes waiting on this person to move with nobody in front almost all the way to the end..
That’s when the shouting match started between my wife and this cell-addict when my wife skipped them, then her husband got involved, but I was hanging back at this point as my wife can take care of herself.
Sure, cutting in line is rude, but so is holding up the line! When the line won’t move it fails to be rude to skip at that point as you’re just trying to get on with what you’re doing and get past idiots that won’t move.
People that know me, know I rarely ever get mad, and you could count the amount of times I’ve ever gotten into someones face, as an adult, on one hand. But in this case I think my wife was in the right, they should’ve just apologized for being self-centered rude idiots, but instead both of them decided they had done nothing wrong and went on the attack and just WOULD NOT STOP..
I was trying to be polite and said “OK, we get the point, hope you got ours, we’re done now.” a couple of times. However, they wouldn’t drop it and the yammering kept going on and on even after both my wife and I had stopped talking to them. It was just the 2 of them, Mr and Mrs Cellphone still yammering at us relentlessly.
They just kept going and as I was walking away from the cash register and saw them have the gall to tell the cashier and point and loudly say MY WIFE was RUDE ….
We are now at Defcon 3
After remaining composed up to this point I pretty much completely lost it and I went off on the 2 of them at the top of my lungs. Everyone in the room heard me rip them a new one about being rude with the cell phone with a line of people behind them (not just us) waiting on her to stop yapping just so we could get our food.
At this point the husband gets IN MY FACE and tells me there’s “no reason to use that kind of language” as I tend to drop a few colorful terms when I’m ticked, people that have read my blog will understand.
Well, getting in my face is a huge mistake, THAT really lit my fuse, and I think he figured that out after it was too late as I think I turned bright red as I reach Defcon 4 about then, we were probably about 2 seconds from a 911 call at this point.
I told them where to step off, and basically shut up or his mouth was about to write a check he really didn’t want to cash [approaching Defcon 5] and suddenly they both got a scared look on their faces, shut up, and ran off in a big hurry.
All this over a stinking cell phone and people just not knowing when to shut up and back off.
Note to self: never piss off IncrediBILL near a salad bar.
The Adam That Doesn’t Belong To Matt, I’d agree to constrain input wherever you can. But sometimes you can’t avoid a freeform text input box. And for those cases, I’d say to be extra-careful on the interpretations.
I would rule that people , when they ask for feedback and get they get feedback that makes them uncomfortable they don’t avoid the issues.
Matt take off your rose colored glasses.all is not well with Google.You give many examples of why some webmasters sites are not in the serps.How about telling why all the crap that is in the serps are there?
You cannot keep avoiding the xpired domain spam as you have been doing.
Search google for ‘ macalester edu ‘ a well know arts school.2nd result is a edu site commandeered for a porn site.It also shows no#3 for its adult targetted kw.
What makes google even sillier is that the host has taken the site down for over 5 weeks.Likely due to complaints.
Now search for charter school leadership council.The no#1 and 2 results is a expired domain used for porn.
Give us a break Matt.these are not isolated instances. your serps are full of spam.
Its more obvious in adult especially as you downgrade recip linking and put emphasis on one way links , but expired domains are polluting mainstream serps as well.
Type your emails like you are writing to 3 year olds…hopefully most people wil at least understand it.
-Brandon Hopkins
Never leave chicken bones in the kitchen garbage overnight…the smell is worse than any kitty litter smell.
Hey Matt, are you going to be at the Seattle Search Engine Watch event tomorrow?
– If you ask for feedback, respond to it (not with generalizations)
– If there is a standard for what you are doing, adhere to it (when your bot does a http/1.1 request and gets a 410 back – no, that does not mean “come back later”, same for 301’s, 302’s and 404’s)
– If you ask 100 people to do something and only 25 do it, then YOU are doing something wrong.
– If you want to create buzz on the web around something that does not exist (a “secret” that is not there, lay a trail of bread-crumbs – robots.txt, referrers, empty sub-domains, buy domains, etc.
– If you think someone is reading your html-source, give them something to read.
– If you have 5 hours until you have to be in the office in the morning, don’t write comments in a blog without a delete-button.
– If there are rules, break them – they weren’t meant for you but rather for “others”.
Nah, I’m in perpetual beta mode. I’m not good enough to be a full release yet. 🙂
Agreed, Matt. In those instances, users should be allowed to input whatever they want (God knows they’re gonna try anyway.) So let them and filter it out after.
Come to Canada and spend a few months here and see if you feel the same way, John. 🙂
Seriously, it’s a lesson I learned the hard way. It’s not the instruction that’s the problem if you can find the right people to execute it. It’s finding those people that’s a problem.
If you have to send an email out with a lot of questions, try and group your questions together in buckets, sending pages of questions and comments are overwhelming. If you send emails with a senseless amount of questions on a regular basis, your emails will be ignored.
How about…
When you do actually HAVE to send an attachment, how about an e-mail add in that detects the word “attached” in the text and prompts you to actually attach something when you hit the send button…
Some VERY deep comments here…I shall ponder them for years to come…
One of the best pieces of advice I ever recieved was “be a good listener”. I would extend your “stop talking and leave” advice to “stop talking and listen”.
I had an employee once who didn’t have that little voice most of us have in our head that says “you’re done talking now”. I had to train him to shut his mouth by putting my hand up and saying “stop”. I probably did this 20 times until he started to catch himself and go “I’m done now, right?”. It became funny after a while but it worked for him. His relationship with his customers (and probably many others) improved tremendously.
– use http://tinyurl.com for long urls
– Never email a flame. Pick up the phone and call instead. I know most engineers’ phones gather dust but still…
– Always double-check your To: list (like Darren said)
– Always re-read your emails before sending (emails being pretty awful at communicating tone/gist/nuance/facial expressions so jokes sometimes go over very POORLY)
Never set your email program do ‘immediate’ send. Do a send ‘later’ and let your notes sit in the outbox for a while. This gives you time to correct errors, cool off, add data, rethink. That’s the problem with webmail – no such option.
Listen = 3(speak)
My developing rule of retail web success influencers for SEO
(> greater than):
In-House Competence >
In-House Flexibility >
Company’s Offering >
Website Content Quality >
Web Presentation Quality >
Analytics Deployment >
Organic SEO Proficiency >
PPC Proficiency >
Body >
Looks >
Hygiene
Matt,
Did you know that the “rule of thumb” comes from domestic violence laws? In colonial America and in old England, husbands were allowed to discipline their wives by beatings as long as the switch was smaller than the husband’s thumb.
Jeff
RE: ” If you think you’ve found an issue or bug, when you tell someone about it, give them enough info to recreate the problem.”
No no Matt! You email the support and simply state: “It’s not working”. Anymore info than that and they will end-up fixing the bug. We cannot have that 🙂
RE: “As soon as you type “I’m cc’ing (someone)” in an email, go up and cc them right then. You look silly when you say you’re cc’ing someone and then you don’t.”
Been there, done that a few times.
RE: “What rules of thumb would you suggest?”
When Matt post on his blog about SEO and Google, only read part of it and take that “part” out of context. Then ask lots of stupid questions relating to your site. If you site is NOT #1 for any given search term ask why. You have every right to know.
I learned this one just after read this post:
We always need to feel good with what we are doing. If not, get rid of the stupid idea that one stupid “seo” tolls you… (you can change “idea” by “page”, if you want)
As a matter of fact, thank you Mr. Matt may be now I understand.
Dammit, Dave, you screwed this up completely!
You forgot to adopt an elitist attitude toward your own content and conveniently ignore the prevailing lack of bias others as well as Google may have.
You also forgot to ask the same questions over and over again even when the answer is in plain sight.
Don’t you just feel dumb now? 🙂
Well, one I know is wise and dumb at one time:
– If you want something done correctly, do it yourself.
I changed this one to:
– If you asked someone to do something, ask on until it’s done.
And here is one I privately gathered for myself over time:
– Never ever mess with the chief administrator and the (board of directors-) secretary of an enterprise: The administrator gives you access to get your work done and the secretary gives you the appointments you need to move along.
Hi Matt,
Further to your remarks ” If you ask 100 people to do something, only about 25 will do it. If you threaten death and dismemberment, about 60 people will do it.”
I want to add ” If you put actual gun on their head and give them last warning than another 20 % will do it and rest 20 % would like to die as they can not do it ”
Ajay
Please ignore the section on web secrets 😉
Garett
>> What rules of thumb would you suggest?
Never negotiate with someone who does not have the ability and authority to say yes.
Mainly when dealing with clients. Always back up a phone conversation with a quick email to document the call, specially to emphasize any promises, deadlines, or expectations. Print it, put in the job file. They never seem to remember conversations when it matters, but it is sure nice to be able to whip that out in a meeting.
I would add the following:
Know the difference between important and urgent!!!
Most people I work with in the software industry have trouble figuring this one out.
On projects:
Projects generally take longer to complete than you expect them to.
On writing:
If you want to write something really good, it will take about 5 thoughtful edits. The first two edits will should get you 80% there, the last three will put you over 90%. This was written with no edits.
I respect you not because you work in google. That doesn’t matter to me, is because you are a person.
Please respect me. If I was wrong even if we didn’t know it, now I know and fixed this crap.
I don’t care if you delete this comment, just because I’m not saying something nice to you, but we have been working hard not for you or google or any other…, for our customers. May be I’m learning about this crap of seo and all this stuff but I have enough experience in my live to ask you respect, to me and all the other people that have mistakes because are trying to find help with the wrong person even if they don’t know it.
Thank you for your help, I know that this is not part of your job.
Aaron:
> I guess they don’t consider that the store has to scan each one individually. Can those cash registers multiply???
I would have thought that the cost of getting tills that can multiply (which can’t be much if Walmart’s British subsidiary Asda can afford them) would rapidly be repaid by the fact that they wouldn’t need as many till-staff to serve the same number of customers. Maybe there’s a rule of thumb here (to keep this on-topic): don’t be afraid of a one-off cost if it secures you long-term savings.
when crossing a one-way road, look both ways anyway – someone might be reversing
A few of my personal rules of thumb…
1) The higher you place some content or a link within your site’s Information Architecture, the more it should be of interest to a typical visitor to your site (and vice versa)
2) One piece of unique content, indexed once, at the best URL for it
3) Dynamic content is fine, but you don’t have to address it with dynamic URLs.
If things are really funky with your litter box, you need better litter and better cat food. I use FreshStep and MaxCat food and don’t smell a thing. Then again, baking soda helps as well. 🙂
I would agree with the idea of getting things in writing and fully spelt out. I couldn’t begin to explain the number of times we’ve had clients try to change functionality of a program after they’ve signed off on things.
* Dont bluff unless you are willing to have it called
* Never engage in a battle of wits with an unarmed person
Here’s one when searching with Google or Yahoo and others.
*Skip page one because page one is mostly those annoying directory sites who only show you the top six sponsored links on Google and Yahoo.
But Seriously – surely I am not the only one who avoids all those directories like the plague because you just go round in circles. Imo these sites are not doing the search industry any favours they just dilute all the results. Why not go direct to page 2 and futher for those who have not spent all that time and effort getting on page 1 but have spent it doing what they do best getting on with business.
Sorry this is a bit of a grip and moan and a bit off topic but but I think this is a real problem for search and have wanted to point this out for some time.
Thanks for this blog though Matt – i visit every day or so and learn a lot.
PS I really agree with John about emails and conversations – I can go with that one 100%
Don’t blame Google when your SEO fails for a term… especially when a random person wouldn’t consider your site useful to that topic.
Great list. It sounds like you’re definitely in “vacation mode”.
Re: – As soon as you type “I’m cc’ing (someone)” in an email, go up and cc them right then. You look silly when you say you’re cc’ing someone and then you don’t.
I would add a companion – if you say “enclosed” or “attached”, immediately attach that file. I must get 2-3 emails a week where they forget the attachment (Note to Microsoft: how about a plugin that warns you if don’t have attachments yet use the term attached or enclosed in a message?)
Software/ websites
– Use Captchas that people can read, and don’t empty the form if the user fails on the Captcha
– Don’t decrease the font-size too much, other people may have big resolutions and like to lean back when reading
– Fix small errors quickly or else the Broken Window phenomenon will destroy your software
– Fix forum spam quickly, or else the Broken Window phenomemon will destroy it
– don’t spend too much time worrying about coding conventions (have them or don’t but don’t discuss them too much)
– think about caching, data structure and character encoding early on in the project
– if you ask for URL input, make the “http://” optional
– collect as little information as you need
Email/ newsgroups
– start with something positive unless you want to piss off someone (communication is not what is being said, but what is being heard). An email that starts like “you got a bug in your software” feels less friendly than “love your software, but there’s a bug in it”
– and if you do get a negative email, take it constructive anyway, and know that people who let you know about your bugs actually do so because they like your software (otherwise, they wouldn’t bother to give feedback)
– personal attacks only cause personal counter-attacks; if in disagreement it’s much better to attack a person’s idea than that person
Career
– quit before your job makes you unhappy on a regular basis
– work on what fascinates you and makes you happy, that will also yield better results and cooler stuff
Misc.
– respect everyone, tell the truth, and keep to your ideals
Always have a Plan B, when you feel it’s time to implement plan B, start developing a new Plan.
when changing sides never let anyone know until you have completely changed sides, stepping back is much harder than stepping forwarding.
Pick a side and fight to the death ( GO MSN 😉 )
Never leave a man with nothing, because a man with nothing has nothing to lose.
DaveN
Make a Backup of all your important info right now. Just because I said so, and you’re reading it. It means that you have an opportunity to save yourself misery of losing important information. If you choose to ignore this, think of it when your system crashes and you slap yourself on the head remembering the guy that said “Make a Backup of all your important info right now.”
Matt – I have a question about those 40 Googlers out of 100 you asked to do something for you, threatening them with death and dismemberment, and they did NOT do it.
And how’s that Soylent Google Green project going anyway?
Never eat at a Chinese Buffet if it is the first restaurant open after a Major Hurricane knocked power out for a week.
Never try and teach a Beagle to use the toilet, even though some cats can.
Never tease you sister about her Wedding dress.
Considering Jeff Preston’s entry on the horrific history of the phrase “rule of thumb” I propose purging it from our everyday language:
> In colonial America and in old England, husbands were allowed to discipline their wives by beatings as long as the switch was smaller than the husband’s thumb.
That in mind, here’re a couple of my ‘personal guidelines’ (which I admit doesn’t have the same punch [pun intended]):
1) Don’t hesitate to ask questions, even if they seem obvious or outright dumb. (I realize I’m very lucky to work in an environment where actual knowledge is more important than the appearance of knowledge)
2) Ask experts lots of questions – even those in fields far outside your own. This isn’t simply a sop to idle curiosity, I’ve been consistently amazed at how often the answers provide insights that correlate to my work or my life.
>>If you think Google made a mistake with your site it’s probably your fault.
NEVER talked to ANYONE (especially me) with a Blue Tooth in your ear.
Don’t assume you know the answer when you’re not even sure what the questions is.
If an expert gives you advice in an area you’re shadey on, take head in the very least.
If someone is NOT an expert but tries to continue talking until they think you think they are an expert, remember that person and never ask them a question again.
Never assume a woman is pregnant, find out from someone else before “congratulating” her.
And to expand on What a Moron Said * Never engage in a battle of wits with an unarmed person — don’t be the unarmed person.
My personal favourite at the moment: Never accidentally enter the Captcha in the URI field and then submit.
I did it a while ago and it’s just stuck there. My name and email address are autofilled – that’s nice. If only if it weren’t for that darned Captcha . . .
Don’t eat yellow snow.
For software I’ll add:
1. Never ask a user if they’re SURE they want to do something, unless doing so will cause irrepairable damage or a permanent change. What is the point of “Are you SURE you want to exit the program?”, and “Are you SURE you want to delete that?”.
2. If you provide a customizable interface, have the courtesy to remember the state I left it in when I close the app and restore it when I re-open it, otherwise there’s no point in having it customizable.
3. Never break the proper progress bar behavior. Use one bar that goes up to 100% one time; anything you change beyond this makes the progress bar useless -> Never use 2 progress bars at the same time and NEVER have a progress bar ‘loop’ from 100% back to 0.
This is a really good one. Too many people are too afraid to expand their minds based on negative feedback.
Damn the torpedos and ask your question.
Some driving tips……
Don’t spray your windsheild wiper fluid if there is a car behind or next to you.
Also don’t spray it with your sunroof or windows open.
If you are about to miss your turn, don’t slam the brakes to try to make the turn.
If you pull out from the slow lane, make sure the nobodoy is going fast behind you in the fast lane.
Don’t brake when you drive by a cop, he’ll notice you right away.
Don’t keep speeding through a yellow light when someone at the light wants to take a left turn. I’ve seen many near collisions because one expected the other to stop for them at the light.
Don’t creep up on a red light so that you can speed through it when it turns green. I hate the people that go 5mph 500ft from a red light! Drive up to it…..Stop…..Drive again when it turns green.
When your in another state, don’t expect the same laws to apply to the visited state and don’t think you deserve special treatment because you have out of state plates.
Make sure you have cash with you when you get on the highway. You may end up having to pay tolls that weren’t expected.
Stay away from cars with lots of bumber stickers. Mentally unstable people drive those cars…..you know who you are.
I knew it, Matt has hired DaveN!!! Look out spammers!!! =p
Aaron,
first choice Yahoo
second MSN
third Google
if I was to switch sides, I would just ring Tim Mayer ! and Tim can tell you I have not rang him about a Job lol
DaveN
A URI is a user interface, so treat it like one when designing your software.
HANFORD .. a uri is disposable income treat then tat way !
A.) Do not send to everyone in your adress book if you don’t want everyone to receive it – the other day I got a company email from a major Media company because a friend of minesent an email to her employees that work there.
B.) Do not hit reply all if you don’t want EVERYBODY reading the email – I got about 90 email responses sent to my friend who is a manager for this company because her employees hit “reply all”. I don’t even work there.
Parakeet rule #2:
If you have a parakeet that loves bacon, as most do, make sure to lock him in his cage before starting to cook bacon, unless you can run faster than the bird can fly.
Don’t feed a staffy (dog) left over curry if he sleeps inside.
Don’t assume the staffy has got all the curry out his system after 12 hrs.
Don’t eat yellow snow.
I am so mature.
“Try to keep hyperlinks short enough so that they don’t wrap around or get cut off by someone’s mail program.”
I’m sure you know about this site already, Matt (possible incorrect assumption?), but I love the way it reduces long URL’s down:
http://301url.com/index.php
[QUOTE=Joel Lesser]I dont just close my mouth when I clean out the litterbox, I crack the window and let some fresh air in.[/QUOTE]
Close your nose AND your mouth. David Blaine held his breath for over 7 minutes, it shouldn’t take you that long.
Better still….wear a mask! 😀
DaveN
> Never leave a man with nothing, because a man with nothing has nothing to lose.
Is that because… There’s nothing more dangerous than a guy with nothing to lose . 😉
spel chek
–Do to others what you would like them do to you is the golden rule of life.
Matt you may want to check out the Nokia 770 Internet tablet. It works great for a quick check of the Internet from any where at anytime.
• Bluetooth
• WiFi
• 800×480
• Debian Linux
• 5.5″x3″
• $399
Anyone seen that Baz Lurhman song? Sunscreen? This could so be placed into a song also.. but for developers… would beat the socks off of that code monkey tune out there at the moment
come on Matt! Release the song!
Yeah, if you want something done ,do it yourself.
Software:
* code first, optimize later;
* don’t over-design;
* don’t under-design;
* if you cannot name a class well, it’s probably not right;
* read;
* try;
* ask for advice;
* listen;
* think.
And my pet peeve with almost all developers: comment your code! It’s arrogant to think your code is so good other people will understand it implicitly.
Email:
* think before you hit enter.
Just wanted to add to the email section that just like the cc comment, when you refer to an attached file you should attach it at that exact moment. I’ve sent and received dozens of emails refering to an attahced file without attachments and then the follow up emails with the attached file
If you are sending a mail to lots of people (especially if those people don’t already know, and do not need to know, each other), then use the Bcc field for their email addresses so that they cannot see the whole distribution list.
Some types of virus spread much easier when every mail in your inbox has a very long list of potential recipients sat there in plain text just waiting to be harvested.
Additionally, should one person on the distribution list be silly enough to publish the entire email message to the web, then only their own (and the senders) email address will be available to be harvested by the bots belongng to the email spammers.
my biggest rule as a developer is:
There is no such thing as a stupid user, only a stupid developer…
A system should be built so it’s idiot proof
In our office – I tragically too often have to remind myself to “never argue with an idiot – they will only drag you down to their level – then beat you with experience”
This one works very well for government departments, If you want something done today and they say they will look into it, get them to sign a form saying that they will look into it and it will get done straight away.
– bugs are never the user’s fault, even if they’re the user’s fault. Ya get me? We need to design for our users, so if they tend to do insane and unpredictable things, we have to design accordingly.
– never name a file filename_final. You’ll end up with final2 and final3 in no time!
-Gradiva
If you go on vacation,…. Go on vacation!
“Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
– Rick Cook”
“If you’re sending out an email with links in it, check your links by clicking on them before you send that email.”
Can you mention this to the Gmail team. I would love to click links to validate them before I send the email! Great round up. ;]
Never go 90km/h in the middle lane on the highway when the allowed speed limit is 130km/h.
Never reverse down the off-ramp on the freeway.
Read the article “They write the right stuff” once a year to keep you humble about how l33t a programmer you are.
Anders
Ah, and I got one sum-up too:
“There are no stupid question, there only are stupid answers”.
Be mindful of what you reward people for – the real rewards may have unintended consequences. Only reward good behavior.
“When you’re in a conversation about something that you want, and you’ve gotten approval: stop talking and leave.”
I’ve made that mistake many times lol.
Also, this couldn’t be more false:
“There are no stupid question, there only are stupid answers”.
We’ve all heard stupid questions asked at inappropriate times. For instance, isn’t a question stupid if the answer was just mentioned a minute ago but the questioner (is that a word) wasn’t paying attention?
I hate form fields that ask you to add a URL but have http:// to the left of the field. Does that mean I do or don’t have to type the http:// bit when I add my URL into the field?
Anyway, on to more important matters, I sometimes leave our kitty litter a bit too long, to the point where it makes me cry when I walk in the room. Not an emotional cry, more a “my eyes are dissolving like a bank robber just threw ammonia in my face” cry. I find the best thing to do is to take the whole lot outside and hold my breath for the entire duration.
Focus on what you want, not what you don’t want.
Remember the brain does not process negatives, “I don’t want x to happen.”, you just took a huge step closer to making x a reality.
Remember that if you don’t ask, you don’t get.
Money comes from other people.
[Just a few concepts from Andy Fuehl’s Book.]
Oh and one more I am sure you have all heard, “If you don’t know who the sucker is at the poker table, it is you”.
Minor,
very disappointed.
Users will always use your application/site for things you never thought of. This will break the code.
So you need to log errors to database or by sending email to developers. In most cases you will be able to fix bugs before they have time to complain or at least be on top of the problem. This will impress your users as they are used to ignorant coders.
when chairing a meeting, create an Agenda! long meetings suck
If you are going to do the wash make time within the next 24 hours to put it in the dryer.
If you are going to be in a bad mood, remember that it is more contagious then the common cold.
Don’t eat yellow snow.
Email
Do not immediately send out important emails (time permitting). Save them as drafts and review them throroughly at least once before hitting the send button.
Blogging
Don’t blog anything about the company you work, unless you are specifically asked to do so by management.
If you do blog about your company, make sure you get approval for anything that looks even remotely controversial or revealing.
Check your facts before you post. Bloggers should employ the same ethics as traditional media.
Always return a phone call from a friend.
Stand for your friends when they’re not around, yet attacked by others. (A good test of your spine.)
Never assume one person represents what others of a particular racial or ethnic group thinks. (Respect the individual.)
Always say “excuse me” when passing by someone at close range.
There a big mistake that often maden.
The database field size sets as 50 ch and then the input box maxlength not defined so user enter a lot value in it then some information missed in database.
There is a big mistake that often maden.
The database field size set as 50 ch and then the input box maxlength not defined so user enter a lot value in it then some information missed in database.
Leave out the email address until you are ready to send. This will help prevent you from sending the email before it is ready to be sent.
A host of our inner pages are seen as Spanish when they are actually English, does this affect our rankings at all? Could this be corrected?
It does and it can be corrected. 🙂
“/>DaveN
If you have a login page with two fields and no other field, for god’s sake set the cursor by default in the username et. al field.
In this day and age, they say, using a mouse is a sign of weakness. Of impotency. Of mice and men where mice win. You might as well be a mouse if you want to click a friggin mouse to get to a field.
By default, set the cursor to the friggin login field and not some “home” hyperlink. Why the heck would I goto the home link if I bookmarked the friggin login page for a fast access while multi-tasking gzillion other things.
Thank you for listening.
What’s up with the results lately. All the Big Daddy’s servers show me #1 for the term Sacramento Acura but when I do the same search on your other servers, I only show up #1 1/3 of the time. I thought the big Daddy Servers were most important and their data carried over to your other data centers. Please advise.
When dealing with clients, always get chummy with the person who runs the accounts office. This way when you put in your invoice, your cheque is always first to get signed.
Never eat the yellow snow …
Hello there,
Good God you read a lot of books sir!
About the cat litter situation:
Technically i think your suggestion about closing your mouth was a good one – another thing i heard is that whenever you smell something, you actually taste it too, so the expression “it tastes like (naughty word meaning excrement)” may be based on experience if you have ever accidently inhaled the microbial weather system which surrounds your good friend’s un-passed stool as it is unexpectedly released in your vicinity in the form of a gaseous outburst.
Just thought i’d share that with the group.
This blog must take a lot of your time eh?
Something you should definately check out are bbc radio two recordings of an English comedy show called The Mighty Boosh – i only write that as i read your bit about being on holiday, and thought you might enjoy a little light listening to go with you reading,
peacey weese,
Tom
Here’s a common sense rule: Minimize infrastructure in any software project.
Here is a snippet from a recent email I received:
“But reading this article http://www.codeproject.com/csharp/CsManagedEventSinksHooks.asp I saw, that if I want to use the (for example) cdoex.dll in the com+ component, I had to make strong name keys for the assembly and use the tlbimp.exe to create metadata of the coclasses and interfaces. This cdoex.dll is already registries on the server..so why? Maybe because I use com to call a .NET component. Because I’am new in com+ programming it is very frustrating.”
He oughta just shoot himself in the head. I would if I had to deal with such an abortion: managed event sinks, cdo, com+, strong named keys, assemblies, metadata, coclasses, registries, aaaahhhhh! Hmmm…. what was the original business problem? I bet 90% of the software developers’ time on this project will be fighting Microsoft infrastructure, 10% of the time will be spent on the actual business problem. Common sense rule: minimize infrastructure.
>If you ask 100 people to do something, only about 25 will do it. If you threaten death and dismemberment, about 60 people will do it.
You offer them some bribe and may be 95 out of 100 will do it
I wonder how one can trace which domains I buy if I keep my domain information private ?
Hey Tufan, that`s the mistake which i ever did.
This is good idea to use .htaccess file to provide password protection on Apache servers. Btw I think any smart guy can trace it out possibly through digging to a registrar site as well. Few days back I was looking for a domain name at enom, I found two unique names available there but within few second some one has picked it up.
YYYY-MM-DD
THANK YOU! I’ve been preaching this for years and every software dev group I’m a part of thinks I’m crazy. Most don’t seem to see any benefit to categorizing from broad-to-specific when it comes to dates.
“Just use the software library routines to sort by date if you want…”, they say. “Why go that extra step if we already get to pick the date format?”, I ask. “Because it’s normal”, they say. “But we aren’t even displaying the date to the user”, I respond. “Putting the year first is just weird”, they say. “It’s the same approach as timestamping with HH:MM:SS”, I point out. “Everyone is used to the other way”, they say…
Argh!
Nice blog in general, BTW…
Nice detailed guidelines…….
Thank you for the tips and tricks.
@Scott said, said – make things idiot proof.
Generally when you think you’ve done this, someone will come along with a cleverer idiot.
Use a top level – online email address for all your banking and personal information websites. Do not use your home ISP email service because one day if you move and change ISPs you are going to have to change your email address in all those account.
Arse pains.
These guidelines are to be followed by us all and if we do everybody will be happier ’emailers’ in the future.
When writing software I find it is best to allow the end user as much latitude as possible. I find when I try to control the user too much the software become more difficult to us.
Your example on URL’s is a good example. When expecting a Domain expect almost anything and adjust for it in your code.
Allow users as little opportunity to enter data that could potentially cause coding errors as possible. Use selector fields for things such as dates/times and other information where a limited number of options should be made available.
Wow, the advancement in technology is really creating a brand new headache for everyone..
I remember what I used to have when there was no emails, laptops and even slim not heavy cellphones!
Great post Matt!
I love it – you say “When you’re in a conversation about something that you want, and you’ve gotten approval: stop talking and leave.” This is taught in sales training. One the prospect says yes get on with closing the order before you talk them out of the deal.
The best advice I’ve heard came from the military. The KISS rule. Keep It Simple Stupid. Also the military trys to keep things at a 6th grade level. When doing things do not expect everyone to be at your level of knowledge or understanding. Keep things simple.
I like the one about the cat litter >.< I would suggest that a good rule of thumb when working withing a live site with 2 or more in the ‘mix’ would be to edit the most current file and immediately upload other wise you may overwrite each others work. This assuming that the team is not using some sort of lock out system.
This has been some simple knowledge spoken by the php programmer guru himself alex! 😉
I learned this one just after read this post:
We always need to feel good with what we are doing. If not, get rid of the stupid idea that one stupid “seo” tolls you… (you can change “idea” by “page”, if you want)
These rules seem more like common sense to me, but heck, I’ll get in on this.
When you ask someone to do something, don’t make it sound like an order, no matter your position. There are ways to make a request sound like a suggestion.
If someone comes up to you and doesn’t know what he wants, don’t assume that whatever you suggest will go. Continuously ask that person if it’s ok and ask for reason why they like or don’t like your suggestions.
When sending Emails, be concise. No need to drag something out for too long.