This probably goes without saying, but your user demographic has a lot to do with how this kind of mishap will be received. Our product sells to Fortune 1000 companies in the procurement software space. I can tell you, unequivocally, that the users of our product have a distinct lack of tolerance with regard to "lack of attention to detail".
We've had a debug message or two slip through to production, and the conversation that follows is never comfortable. The inevitable conclusion they reach is that if we miss one small thing, we're likely to miss another. Sometimes you really do have to sweat the small stuff.
You shouldn't say radioactively stupid things to your customers, but you should get their permission to talk to them and then proceed to do so, because that will predictably raise engagement, retention, and many other things you might be interested in tracking. Look at the graph. Look at the "I had totally forgotten about you until you sweared at me, now I might actually use the service" testimony. These things can be yours without swearing.
I've been worried for the last five years that I don't send enough email. After having worked closely with some clients who have figured things out, this strikes me as less "a missed opportunity" and more "an oversight as glaring as being unable to spell SEO." They get tremendous value out of connecting with their customers on a semi-regular basis, and (this part truly blows my email-hating-spam-squashing mind) so do their customers.
I've learned over the years to never put profanity or anything even mildly offensive in test data. Too many times have I had to give an impromptu presentation off my test database, only to see user names like "Asshat Joe" and "Jack Off" show up big and bold on the projector screen.
Always, always use plain, non-offensive vanilla boilerplate text in everything you do.
I've been beaten much worse at that. 12 years ago we were writing a very ambitious media asset management platform as a service (yes, in the cloud basically) and I needed tons of pictures and videos to test the system and fill the database and filesystems and test the image pattern recognition engine and else. Guess what I did? Yeah, I loaded an humongous heap of porn into the software, pictures, videos, everything.
Then the very important finance guy and the very important communication lady from whatever big important investor came unexpectedly and demanded the mother of all demos RIGHT NOW.
Boys, I know what it's to be embarrassed to death and to wish being an earthworm. Preferably deep underground. Like in New-Zealand.
Recently I was this close to uploading an "edgy" picture to an imaging application I help develop to test a new deployment under the test user. I was so sick of seeing that same innocuous test image, and after all, it was under the test user and no one would ever see it, right?
I resisted and uploaded the test image again. Later that day, I was called and informed that a recent change to one of the server components was mixing up sessions and the client was seeing the test image instead of the image they expected. Needless to say, I was grateful for the restraint earlier that day. I probably would have been fired if the client had seen what I had almost put up instead of the test image.
I have also accidentally overwritten a whole column in a development database with a comment about skateboards. This was obviously not a big deal since it was a dev db, but it's just more reinforcement that as boring as it gets to write completely innocuous, repetitive stuff in fields while testing, it is much better than letting something slip through in frustration and getting fired and/or losing customers over it.
Like hard drive failure and other inevitabilities, it's not a question of if your dummy data will eventually be exposed to people not meant to see it, but when.
I learned that a "cute" message can be the best thing. I am a dev on a top iPhone app and while testing our push notifications, I sent a notification out to millions of people. Luckily I wrote "Have a nice day!". It cost thousands of dollars but our vendor was nice enough to refund. In my case, people thought we were just trying to cheer them up. Had I wrote "this is a test", people would have been annoyed and lost confidence in us.
Yeah, I've been trying to bang into the heads of the students that I TA that "there is no test data - only fake data." Test data always seems, to me, to mean meaningless junk. Names like addresses to Dicksville, IL do nothing but accidentally get leaked to someone they shouldn't, and they can't be validated, which creates a whole nest of testing problems.
Fake data, like John Doe, San Francisco, CA, doesn't share these problems.
This is actually very good advice, and you can extend it to comments in source code.
When I was young, I sometimes couldn't resist the urge to put strong wording in comments, like:
// This sucks, use a better data structure for it!
Invariably, when I revisited the code months or years later, I thought by myself: Why swearing? You can also express disagreement in a more neutral way.
So, nowadays I use a better commenting style for bad code and tech debts, always with a motivation along it:
// TODO: This datastructure is probably inadquate
// here because of O(N^2) lookup
Annoyed that I couldn't tell which part of the test data was failing when a test failure spewed out "foo", I wrote http://canonical.org/~kragen/2words.cgi several years ago. This produces randomly selected, short, memorable strings from several hundred million possibilities, so when you see one you can easily grep the tests to see where it came from. It picks two random words from the dictionary.
After I left, people stopped using it. They decided that strings like "jounce-visit", "crotch-surges", and "rubble-rump" (all real examples from a single run of it just now) were just a little too memorable, to the point of distracting one's mind from the code during development.
for more or less the same reason, some mail system (maybe Andrew?) used to generate Message-IDs without using vowels, and Google Chrome generates extension IDs using random strings from only the first half of the alphabet.
When I was younger, I worked at a navy base, and learned how to swear professionally. But it's a turn-off, and more importantly, it's just not that funny.
I've switched to animals. Yeah, it's a bit ridiculous coming from some giant leaps in profanity and the implied sexual/violent imagery. But, animals are funny, cute, and have a very large base of context to work with.
I can shove a panda image as a test anywhere, and if I screw up, hey, it's not so bad, it's a cute panda. Some people will ping you if you screw up, no matter how small; that can't be helped. But there's a large range of screw-ups that are recoverable, and a cute panda/kitten/monkey image really helps.
I think there is a big psychological difference between hackers and "normals": the former see the data as just as a placeholder for the code to grab on to, whereas the latter see the data as important and the code as the ancillary thing.
I think it comes down to coders being much more able to traverse levels of abstraction quickly. For us, "Asscock Asscocksson" is just tag for <loremipsum>, whereas non-coders may get tripped up on that and not be able to just skip past it.
I've been trying to beat this into the skulls of my employees. I run a contract based QA team so there's a good chance our paying client(s) are going to see everything we have entered into their databases.
I really hope every brand doesn't decide to start swearing at me. Personally, after having a product that was supposed to be "the next step" in our company's evolution get blasted in the press because a developer left a smartass comment in (Google "you have to install directx dumbass"), my policy is NO profanity, period, in any string, any test message, anything.
If you are trying to build a brand around it, great. Make a conscious decision and go with it. But doing it to be funny, "just amongst the team", has a nasty way of biting you.
If you are trying to build a brand around it, great. Make a conscious decision and go with it. But doing it to be funny, "just amongst the team", has a nasty way of biting you.
That's a great point. Sometimes the profanity thing can actually be a part of your brand / identity, and you just accept that you'll lose some people over it, but you're banking that the benefit is worth it. I've often said that I want Fogbeam Labs to be "The Motley Crue of software companies," so something like this would not be a big deal to us. We want to be known for breaking the rules, saying "fuck it" and being a bit edgy. But that path clearly isn't for everybody. \m/
Is there an automated tool for finding profanity in software source? I know we can always 'ack' (grep) special keywords in source code (or on OS X, use commands like 'strings')?
Personally, i really don't like to see profanity in a professional context, but having said that...i really like the way these guys handled it, and not only that, their honesty and transparency really endears me towards them.
Edit: Interestingly enough, come from Britain, i think something like this would fair worse of in the UK. I think we're a little more 'stiff' than our US counterparts.
We won’t be throwing around profanity in our emails, but we’re definitely going to try to take a more “real” tone rather than the false formality that pervades most company communications.
This, to me, is the key takeaway from all this. That "false formality" is a killer, IMO. I personally try very hard to avoid it when writing Fogbeam Labs stuff, like our blog[1], but it's SOOO easy to slip into that mode. Keeping that out and maintaining a "real" conversational tone is tough, but I believe it's better in the long run. (No, I haven't A/B tested this or anything, it's just a hunch).
Sorry this is slightly off-topic, but I'm curious about the product here. Why should I use it? What problem is it solving for me?
Halfway down the homepage it says, "Don’t Change: Use Fetchnotes with Google Apps, Evernote, Outlook and all the other services you already love." Which was a great reminder that I already have a ton of other services trying to get me to keep notes in them... what's different about Fetchnotes and why isn't this plastered all over the homepage?
The problem (well it's not even really a problem I guess) is that nowadays you're not sure any more if this was an 'accidental' slip up, or a bold marketing tactic. They surely are getting a lot more exposure with the 'slip up', and if it had backfired, well who cares really - in 2 months time nobody will remember.
Maybe I've been on the internet for too long and have become too skeptical.
> we’re definitely going to try to take a more “real” tone rather than the false formality that pervades most company communications
This makes me wonder if by now there is an entire generation of tech entrepreneurs that has never read the Cluetrain Manifesto: http://www.cluetrain.com/
There's a difference between formal language and the corporate lexicon. Formality is a form of respect, but managementspeak is essentially a political creation.
I was once part of a team who accidentally sent a communication where we updated our privacy policy, stating specifically that we would never share your email address with anyone.
Sounds normal right? The catch is, we sent it to 1000 people per batch, and rather than bcc'ing everyone, we used the "to" field. Whoops? Luckily we caught the issue after the first batch, i have no idea to this day how it slipped through QA however.
Similar result however, people didn't like it but many just wanted to point it out to us (and we did our best at saying sorry) I totally got where they were coming from, however we're human and life went back to normal eventually. Lesson learned!
I was working on some XML stuff and put superhero names in the test XML file. A week or so, some QA guy asked for sample XML and I gave it to him. Before I knew it, my test file was circulated in QA and Business Analysts for testing.
I guess they didn't read what's inside or didn't bother.
Then our client came and the BAs gave demo to them, using my XML file (I didn't know if they're going to use that!). The client were very upset with it.
Alex Schiff, co-founder and CEO of Fetchnotes here (and author of this post). The quality of discussion on the things we post to Hacker News never ceases to amaze us! I just wanted to point out that we posted an invite link by which 1000 people can get access to our beta on the blog post itself. You can also get in directly with this link:
It is a clever (accidental?) marketing, but will the traffic stick?
Naturally, after reading the post, I went to check what fetchnotes is all about and... could not figure it after 30 seconds of scanning the homepage and left.
This is what happens when companies don't value QA and/or don't hire experienced systems administrators. Even among experienced sysadmins email list servers are special skill.
No surprise when startups shoot themselves in the foot because the hiring director is a codehead who does not see the value in a sysadmin who cannot double as a dev or who is over 45 years old.
[+] [-] bradleyland|14 years ago|reply
We've had a debug message or two slip through to production, and the conversation that follows is never comfortable. The inevitable conclusion they reach is that if we miss one small thing, we're likely to miss another. Sometimes you really do have to sweat the small stuff.
[+] [-] yonasb|14 years ago|reply
[+] [-] patio11|14 years ago|reply
I've been worried for the last five years that I don't send enough email. After having worked closely with some clients who have figured things out, this strikes me as less "a missed opportunity" and more "an oversight as glaring as being unable to spell SEO." They get tremendous value out of connecting with their customers on a semi-regular basis, and (this part truly blows my email-hating-spam-squashing mind) so do their customers.
[+] [-] MicahWedemeyer|14 years ago|reply
Always, always use plain, non-offensive vanilla boilerplate text in everything you do.
[+] [-] wazoox|14 years ago|reply
Then the very important finance guy and the very important communication lady from whatever big important investor came unexpectedly and demanded the mother of all demos RIGHT NOW.
Boys, I know what it's to be embarrassed to death and to wish being an earthworm. Preferably deep underground. Like in New-Zealand.
[+] [-] cookiecaper|14 years ago|reply
I resisted and uploaded the test image again. Later that day, I was called and informed that a recent change to one of the server components was mixing up sessions and the client was seeing the test image instead of the image they expected. Needless to say, I was grateful for the restraint earlier that day. I probably would have been fired if the client had seen what I had almost put up instead of the test image.
I have also accidentally overwritten a whole column in a development database with a comment about skateboards. This was obviously not a big deal since it was a dev db, but it's just more reinforcement that as boring as it gets to write completely innocuous, repetitive stuff in fields while testing, it is much better than letting something slip through in frustration and getting fired and/or losing customers over it.
Like hard drive failure and other inevitabilities, it's not a question of if your dummy data will eventually be exposed to people not meant to see it, but when.
[+] [-] stevepotter|14 years ago|reply
[+] [-] Lewisham|14 years ago|reply
Fake data, like John Doe, San Francisco, CA, doesn't share these problems.
[+] [-] Luyt|14 years ago|reply
When I was young, I sometimes couldn't resist the urge to put strong wording in comments, like:
Invariably, when I revisited the code months or years later, I thought by myself: Why swearing? You can also express disagreement in a more neutral way.So, nowadays I use a better commenting style for bad code and tech debts, always with a motivation along it:
[+] [-] kragen|14 years ago|reply
After I left, people stopped using it. They decided that strings like "jounce-visit", "crotch-surges", and "rubble-rump" (all real examples from a single run of it just now) were just a little too memorable, to the point of distracting one's mind from the code during development.
for more or less the same reason, some mail system (maybe Andrew?) used to generate Message-IDs without using vowels, and Google Chrome generates extension IDs using random strings from only the first half of the alphabet.
[+] [-] lallysingh|14 years ago|reply
I've switched to animals. Yeah, it's a bit ridiculous coming from some giant leaps in profanity and the implied sexual/violent imagery. But, animals are funny, cute, and have a very large base of context to work with.
I can shove a panda image as a test anywhere, and if I screw up, hey, it's not so bad, it's a cute panda. Some people will ping you if you screw up, no matter how small; that can't be helped. But there's a large range of screw-ups that are recoverable, and a cute panda/kitten/monkey image really helps.
[+] [-] itmag|14 years ago|reply
I think it comes down to coders being much more able to traverse levels of abstraction quickly. For us, "Asscock Asscocksson" is just tag for <loremipsum>, whereas non-coders may get tripped up on that and not be able to just skip past it.
[+] [-] benvanderbeek|14 years ago|reply
[+] [-] methurston|14 years ago|reply
[+] [-] tomjen3|14 years ago|reply
[+] [-] orblivion|14 years ago|reply
[+] [-] SoftwareMaven|14 years ago|reply
If you are trying to build a brand around it, great. Make a conscious decision and go with it. But doing it to be funny, "just amongst the team", has a nasty way of biting you.
[+] [-] mindcrime|14 years ago|reply
That's a great point. Sometimes the profanity thing can actually be a part of your brand / identity, and you just accept that you'll lose some people over it, but you're banking that the benefit is worth it. I've often said that I want Fogbeam Labs to be "The Motley Crue of software companies," so something like this would not be a big deal to us. We want to be known for breaking the rules, saying "fuck it" and being a bit edgy. But that path clearly isn't for everybody. \m/
[+] [-] khyryk|14 years ago|reply
Am I missing something?
[+] [-] pooriaazimi|14 years ago|reply
[+] [-] krmmalik|14 years ago|reply
Edit: Interestingly enough, come from Britain, i think something like this would fair worse of in the UK. I think we're a little more 'stiff' than our US counterparts.
[+] [-] mindcrime|14 years ago|reply
Sure, until you've had a few pints in you! Then you lot are apt to do anything...
Or maybe I just read too much "Bastard Operator from Hell."
[+] [-] vacri|14 years ago|reply
[+] [-] mindcrime|14 years ago|reply
This, to me, is the key takeaway from all this. That "false formality" is a killer, IMO. I personally try very hard to avoid it when writing Fogbeam Labs stuff, like our blog[1], but it's SOOO easy to slip into that mode. Keeping that out and maintaining a "real" conversational tone is tough, but I believe it's better in the long run. (No, I haven't A/B tested this or anything, it's just a hunch).
[1]: http://fogbeam.blogspot.com/
[+] [-] GnomeChomsky|14 years ago|reply
Halfway down the homepage it says, "Don’t Change: Use Fetchnotes with Google Apps, Evernote, Outlook and all the other services you already love." Which was a great reminder that I already have a ton of other services trying to get me to keep notes in them... what's different about Fetchnotes and why isn't this plastered all over the homepage?
/unsolicited feedback
[+] [-] andywood|14 years ago|reply
[+] [-] kenrik|14 years ago|reply
[deleted]
[+] [-] gergles|14 years ago|reply
http://homepage.mac.com/bradster/iarchitect/images/acidiot.g...
[+] [-] DanBC|14 years ago|reply
That makes me worried that tomorrow you'll accidentally send out another email leaking my details, or something similar.
I'm glad you didn't suffer too much for this small error, but the small errors can have big consequences.
[+] [-] roel_v|14 years ago|reply
Maybe I've been on the internet for too long and have become too skeptical.
[+] [-] rickmb|14 years ago|reply
This makes me wonder if by now there is an entire generation of tech entrepreneurs that has never read the Cluetrain Manifesto: http://www.cluetrain.com/
[+] [-] timthorn|14 years ago|reply
[+] [-] verelo|14 years ago|reply
I was once part of a team who accidentally sent a communication where we updated our privacy policy, stating specifically that we would never share your email address with anyone.
Sounds normal right? The catch is, we sent it to 1000 people per batch, and rather than bcc'ing everyone, we used the "to" field. Whoops? Luckily we caught the issue after the first batch, i have no idea to this day how it slipped through QA however.
Similar result however, people didn't like it but many just wanted to point it out to us (and we did our best at saying sorry) I totally got where they were coming from, however we're human and life went back to normal eventually. Lesson learned!
[+] [-] wiradikusuma|14 years ago|reply
I guess they didn't read what's inside or didn't bother.
Then our client came and the BAs gave demo to them, using my XML file (I didn't know if they're going to use that!). The client were very upset with it.
[+] [-] _gd3l|14 years ago|reply
[+] [-] alexschiff|14 years ago|reply
Alex Schiff, co-founder and CEO of Fetchnotes here (and author of this post). The quality of discussion on the things we post to Hacker News never ceases to amaze us! I just wanted to point out that we posted an invite link by which 1000 people can get access to our beta on the blog post itself. You can also get in directly with this link:
www.fetchnotes.com/invite/blogpost
Thanks!
[+] [-] djsla|14 years ago|reply
Naturally, after reading the post, I went to check what fetchnotes is all about and... could not figure it after 30 seconds of scanning the homepage and left.
Anyone else had that problem?
[+] [-] 5teev|14 years ago|reply
[+] [-] harryf|14 years ago|reply
[+] [-] gyardley|14 years ago|reply
For startups, most of the time bad press is just plain bad.
[+] [-] unknown|14 years ago|reply
[deleted]
[+] [-] pconf|14 years ago|reply
No surprise when startups shoot themselves in the foot because the hiring director is a codehead who does not see the value in a sysadmin who cannot double as a dev or who is over 45 years old.