Joseph Cooney had a brilliant idea for a new application certification program. But Vista's bland white-on-gray badge, in my opinion, doesn't properly communicate the.. authoritative.. nature of said program. With the help of Jon Galloway, we zazzed things up a bit:
You might think attaining such a prestigious, rigorous level of certification would be far too challenging. But fear not! Participating in this innovative new application certification program is as simple as pressing the F5 key on your keyboard. Just follow the four easy steps Joseph outlined:
Congratulations! You're fully certified. Brand your app with your shiny new Works on My Machine badge. You'll certainly want to show it off to your fellow team members and key stakeholders. But please-- do try to keep your ego in check. Not everyone is capable of such an epic commitment to quality in software engineering.
(update: love the WOMM certification so much you want to proudly wear your certification for all to see? T-Shirts and stickers now available.)
|
United States / Canada Buy Works on My Machine shirts, stickers and mugs |
Posted by Jeff Atwood View blog reactions
« Are Web Interfaces "Good Enough"? Creating User Friendly 404 Pages »
Heh. There are days I wish I could hide behind such certifications with Subtext. When we get the most obscure error report. But alas, unless I'm hosting everybody's blog on *my* machine, I don't have that recourse.
Wait, now there's an idea!
P.S. I didn't see the Works On My Machine T-Shirt. Let me guess, works on your machine.
Haacked on March 16, 2007 01:02 AMDoes clicking the 'X' in the upper right hand corner of a WinForms or browser application count as a code path?
David Sokol on March 16, 2007 01:26 AMwhat about a "Cannot replicate user error" for Support Teams?
Mauro on March 16, 2007 01:27 AMI was doing just great up to step 4 :(
I think you guys need a less advanced certification.
Gavin on March 16, 2007 03:10 AMWait. It has to COMPILE?!
Oh man! You guys want the WORLD!!!!
Mike Hofer on March 16, 2007 03:21 AMFor an advanced certification, add a feature that overrides some default behaviour that changes for .01% of the customers. Run it against your same old test data and confirm that indeed, for this case, the overriding behaviour isn't called. Job done!
Never add automated tests. Why waste time writing tests when you can be spending that time writing code? For bonus points, check in your changes if the test looks "good enough", or if the test fails but you didn't notice due to doing it two minutes before clocking off on a Friday afternoon.
Ritchie Swann on March 16, 2007 03:44 AMReminds me of the website http://www.chezmoicamarche.com ("Chez moi ça marche", meaning, of course, "works fine here").
Fun post, I sense some frustration against fellow coders ? ^^
Manu on March 16, 2007 04:15 AMHow about the T-Shirts. I would need a 100 of them for all the programmers etc in my company.
They sure would not like the idea of missing awards on programming.
On my knees ... clutching hands and with des(exhas)paration: -
Pleeeeesee gimme those 100 T-Shirts. Mine is the first largest order!!
What's the licensing on the logo?
James E. Robinson, III on March 16, 2007 04:45 AMCan i use the logo on my site? what's the license on it?
Al-Faisal El-Dajani on March 16, 2007 05:11 AMYou're aiming a bit high. I'd like an "Works OCCASIONALLY on my machine" Maybe with an added "Just after a reboot if i don't touch anything else and I sprayed my immediate surroundings with voodoofied chickenblood and applied the correct raindance"
But maybe it would be a bit too long to put on a logo. Upside is that it would make the text very small and thus unreadable and more usable...
Lars on March 16, 2007 05:13 AMi've misread the red sign and read: "worms on my machine".
and it sort of makes sense :-)
My professor taught me long ago the five proof forms:
1. Proof by deduction
2. Proof by induction
3. Proof by contradiction
4. Proof by waving of hands
5. Proof by one good example
Two of these are used rather too often, including as evidence of complete code testing....
John Pirie on March 16, 2007 05:41 AMYour point is well taken, but I think you're being a bit TOO harsh. There really are plenty of instances where the user's machine, or something else in the environment, causes obscure differences that couldn't be legitimately foreseen. It seems like every month or so around my work, we get a customer that can't use our website properly because some non-standard router along the way is illegally breaking up packets or something. The lengths we have to go to account for oddities that are outside of the pale is remarkable.
Which isn't to say that this can't be used as a copout.
Chris Wuestefeld on March 16, 2007 05:43 AMNICE
G. oogle on March 16, 2007 06:14 AMCan't we get "compiles" for those of us who wish to clear a slightly lower bar?
JohnMcG on March 16, 2007 06:22 AMMan, I thought noone recognized our genius... glad to see a certification to honor what we do.
Clay Blackwelder on March 16, 2007 06:36 AMWow my app is fully certified now. Thanks Jeff !!!
Aaron on March 16, 2007 06:49 AMRe: Chris Wuestefeld
That sounds like some pathetically mis-informed excuse that the management of my company would come up with. Give us more detail on these non-standard packet handling. I already got office mates howling at the suggestion. Sure, unexpected things happen, but if you're just waving your hands and saying the problem is "out there" you're already reached the highest levels of WOMM development practices.
beatsock on March 16, 2007 06:59 AMAs a developer, fantastic.
As a team lead, Oh my god.
One of my colleagues is laminating that right now to use as the award for developers who break the build.
Geoffrey Wiseman on March 16, 2007 07:25 AMHey, my websites have been certified WOMM since the beginning! Yay! WOMM-Certified since 1996!
Seriously, though, when I design an application I tell people straight-up "I only do this for full compatibility with FireFox 2, if it works on IE or Opera or iCab or Camino or Safari, bully. If it doesn't, wah. Figure it out."
But at the same time I tend to shy away from using newer, fancier conventions in my mark-up. I know, I know I should the new stuff... but I can never remember all the configurations of the div tags... so I wind up using the old stand-bys instead. It's much quicker to type open-bracket i close bracket my text open-brack /i close-bracket than remembering that it's em /em now. Or whatever the new tag of the week happens to be...
Jae on March 16, 2007 07:36 AMHow about a "Good Enough for Me" tee-shirt ala your previous post?
Or better yet "I simply imagine it so" (Einstein).
Jae: whoa man. you sound like you don't want to learn anything new. that's the beginning of the end!
Gavin on March 16, 2007 07:46 AMHow about an alternate version, "It Works For Me", I think that rolls more nicely off the tongue.
Or, how about "It worked for me... I think. (With my data at least.)"
Reed
Reed on March 16, 2007 07:46 AMAs a CM who is responsible for packaging, deployment, builds, and even testing, the words "Works on my machine" are the bane of my existence.
I've even had developers send releases compiled on their system directly to customers to "fix" a problem without ever being officially built or even tested by QA. When cornered the developer usually tells me that it works on his machine, and it's not his fault if the customer can't get the program to work.
David on March 16, 2007 07:55 AMI really, really, really want a rubber stamp with the second version.
Steve on March 16, 2007 08:13 AMIt all sounds like a "Works as coded" situation to me.
Tim on March 16, 2007 08:32 AMGavin: The beginning of the end came for me a long time ago. I've gotten too tired of trying to keep up, so I just let the younger kids do it for me and ride on their backs utilizing their technologies instead. For the first time in almost a decade, I don't have my own web space anymore. There are pre-packaged solutions on other sites I use instead, as it works better for me. I spend more time on content than I do on deployment. I've always been better at that anyway.
Jae on March 16, 2007 09:07 AMI prefer the standard: Working As Designed
QA Tester/JPK on March 16, 2007 09:50 AMThis is funny as hell. I actually just had a developer vigorously argue that she did not miss a deadline since the program worked on her PC and it wasn't her fault that it didn't run in the QA machine (or her test PC).
I'm definitely awarding her a laminated copy of this logo.
Eddie Paz on March 16, 2007 10:03 AMThe real joke is on the people who think that writing and automating tests is anything but a ritualized version of the "Works on My Machine" certification.
"Program testing can be a very effective way to show the presence of bugs, but is hopelessly inadequate for showing their absence."
-- Edsger Wybe Dijkstra
beatsock: The problem I mentioned is just one example, but it did happen recently for a couple of users through Patriot Media's network. In this case the fix (iirc) was to change the behavior of our F5 BigIP so that the packets were assembled a little differently. I'm not the networking guy, so I can't be more specific, but I think it had to do with responses being exact multiples of packet sizes, and changing the way that packet cookies were generated caused the response to change in size so it no longer coincided with the packet boundary.
I don't much care if the people in your office have so little experience that they've never seen off-the-shelf hardware and software having glitches. But if you've never dug deep enough into a problem to find such things, I wonder what kind of quality YOUR team is providing.
Chris Wuestefeld on March 16, 2007 10:53 AMAs a developer working in a company with a notoriously bad network/support group, I frequently hear the opposite-"It must be an application problem"-when the network disappears, or they randomly revoke permissions/turn off core services/disable service accounts/forget to backup filesystems and databases/etc.
Oh, and my development and test systems look *nothing* like the final production systems (try testing a multi-threaded distributed system when all of your components are running on the same underpowered server that is randomly rebooted by testers).
All that being said, I just forwarded the image to a group of friends as part of a new CMM/3-Sigma/SarbOx quality initiative. It'll be interesting to see who takes it seriously...
Gilbert on March 16, 2007 10:58 AMThe badge is licensed under Creative Commons Attribution-ShareAlike 3.0.
http://creativecommons.org/licenses/by-sa/3.0/
I made use of a badge template from BittBox, which also under CC Attribution ShareAlike.
http://www.bittbox.com/freebies/free-vector-badges-glass/
I used Inkscape, which is available for free from Inkscape.org. No animals were harmed in the construction of this post. Three carrots were consumed. Mistakes were made.
Jon Galloway on March 16, 2007 11:05 AMI always felt that the most effective way to test product was to give it to real users and let them smash it to bits. I was always surprised at what hare-brained things my father would do to the applications I'd have him test. Stuff that even a group of good testers would never come up with. Eventually, a tester is no good because they, too, are too familiar with how it *should* work, thereby ruining their effectiveness in surprising the programmer with doing something completely out of the blue.
Jae on March 16, 2007 12:11 PMAny chance of getting a shirt with a small logo over the left breast instead of the full middle?
engtech on March 16, 2007 12:20 PMI think there should be an * with the disclaimer saying. Even though it works on my machine it might not on yours.
Brandon K. on March 16, 2007 12:41 PMI would like a "Does not work on my machine" certification to debunk the "Works on my machine" badge that any of my dependancies may try to pass off to me.
Soccerball on March 16, 2007 12:48 PMIf I had a nickel....
Mac on March 16, 2007 01:27 PM@Jon: Thank you.
James E. Robinson, III on March 16, 2007 01:58 PMCan we get some stickers? This looks like it needs to be a monitor certificate.
redneckprogrammer on March 16, 2007 02:34 PMVery cool, can't count the number of times I've said that. Now I can just point at my shirt!
Telos on March 16, 2007 02:57 PMWhat is it about this blog that I cannot simply select/highlight a section of it? It wigs out and selects half the page.
Tim on March 16, 2007 04:50 PM>>What is it about this blog that I cannot simply select/highlight a >>section of it? It wigs out and selects half the page.
Are you sure? It works fine on my machine. :) Actually, I've seen that when I use IE. Doesn't happen in FireFox.
Eddie Paz on March 16, 2007 06:15 PMJon/Jeff,
can you please publish the vectorial version (SVG) of the badge somewhere? How lovely! :)
> What is it about this blog that I cannot simply select/highlight a section of it? It wigs out and selects half the page.
IE6 issue. No idea why. The markup looks fine. I know this isn't helpful advice, but.. er.. switch away from the five year old browser if you can.
Jeff Atwood on March 16, 2007 07:27 PMJeff, the correct answer to that comment would have been...
"Works on My Browser!" Could you also design a logo for that as well?
Mark Sicignano on March 16, 2007 09:22 PM>> What is it about this blog that I cannot simply select/highlight a section of it? It wigs out and selects half the page.
> IE6 issue. No idea why. The markup looks fine. I know this isn't helpful advice, but.. er.. switch away from the five year old browser if you can.
Thanks for the insight Jeff. If only my company would allow us to run non-standard software such as firefox. But alas, we use browser based applications that use Active X controls. I guess my copy and pasting will have to wait until I get home.
Tim on March 16, 2007 11:08 PMTim: Works on my machine...
Jae on March 17, 2007 10:57 AMThank you! Thank you!!!!! I communicate with a couple of developers from my last company whose team lead used that as his stock answer to QA type questions.
Not that we actually HAD a QA department, that was the first department to go when things started getting a little lean for our parent company. It's amusing to watch a manufacturing company buy a successful software company and then gut it because they have no idea what it takes to create semi useful software. Then bemoan the subsequent failure of said software company.
Craig on March 17, 2007 01:25 PMI must pass this on to a Help Desk friend of mine.
So far, their stock standard answer to problems has been:
Just reboot ..... and call me ..... in the morning.
But this is much better :)
I can't provide the vector version-- you'll have to ask Jon Galloway for that-- but here's an extra large 1600 x 1548 PNG render of the "works on my machine" starburst.
http://img88.imageshack.us/img88/8713/worksonmymachinebiglh2.png
Jeff Atwood on March 17, 2007 05:24 PMIt would be great to have stickers with that logo. I've got a testing document due soon for a design project, and I'd love to be able to paste one of those on the front cover. Not sure the prof would see the humor in it though...
Taylor Poulin on March 17, 2007 07:31 PMdoes your own site implements it?
Web Designer on March 18, 2007 01:13 PMI certified mine...
This certification level is perfect for me...
http://samfeltus.com/as3/code_talk.html
SamFeltus on March 18, 2007 01:44 PMstickers would be good!
Works On My Machine*
*have you tried turning it off and turning it back on again?
lb on March 18, 2007 07:37 PMFor every possible application crash there should be a pop-up like that:
"Application crashed. But it worked on my machine. Developer J.Smith"
Gary on March 19, 2007 11:05 AMRelevant to your interests?
http://www.shiftingslogans.com/ and http://www.celebrityprankcalling.com are much more interesting.
I like the idea of "works on my machine" certification. I designed a t-shirt some time ago with this code snippet on it:
catch ( exception& e )
{
cerr << "Thats weird\n";
cerr << "It works on my machine\n";
}
How about
"It works as programmed"
Oliver Townshend on March 20, 2007 10:29 PMappropriate for any VSTO deployment on a local desktop. Truly, it works on my machine; just not the user's. I even managed to get it to work on another developer's computer. Just not the user's.
Les Stockton on March 21, 2007 07:20 AMLove it. I spread it around my company, Auctiva.
Your logos were great but I wanted something I could tack on to a blog or other page more subtly. so I came up with this.
http://img.auctiva.com/imgdata/1/2/4/4/0/8/webimg/40666795_o.jpg
Thought I'd put it on my personal web pages and link back to you for the lolz. Feel free to steal it for your own uses.
Jethro on March 21, 2007 11:07 PMWe've come a long way since '85 when we said "ran to 'fin'... put it in".
Rand Huso on March 27, 2007 09:07 AM"Wait. It has to COMPILE?!
Oh man! You guys want the WORLD!!!!"
Dude, just change the first line to start with "\*" and the last line to say "*/", and you're golden.
Joe Grossberg on March 29, 2007 08:26 AMSweet! Now I can really say that MY blog works on MY machine. Thanks Jeff! ;)
Brian on March 29, 2007 01:58 PMI shared this link with one of our user. He couldn't open it. Yeah sometimes Lotus notes doesn't automatically open IE.
I told him 'It Works On My Machine'.
Had to link to this one... This is my life..
Garick on June 21, 2007 06:18 AMThe T-Shirt you sent doesn't fit me? ... What do you mean that it fits on your body?
Wayne M on June 27, 2007 07:14 AMHah, I love the shirt and the graphics! I printed one up and stuck it on my bulletin board at work. It’s now my default answer to any trouble shooting problem that comes up. Sadly, students (I work in a university computer lab) don’t seem to find any humor in it, especially when they’re trying to finish an exam or paper and can’t seem to print. The fact that the printer works fine on my machine is just no comfort to them.
One of my favorite responses to people (generally professors, not students) who do something incredibly stupid to their computer is to tell them that they’ve caused an “ID-ten-T” error. They seem to get very upset when I write that down and stick it on their computer, though…I don’t know why writing “ID10T” is so offensive….
The starburst version is now standard issue in my development team. Sadly.
Neil on March 13, 2008 09:04 AM>catch ( exception& e )
>{
>cerr cerr }
Andy, Love it!!
Im going to put it on a shirt in java form
try{
//Something that has not been tested but just
//HAS to work flawlessly, but really won't :-)
}catch(Works.On.My.Computer.ButNotOnYoursException haha)
{
System.err.println("Thats really weird,");
System.err.println("It works on my computer.");
}
| Content (c) 2008 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved. |