How Not to Conduct an Online Poll

Some of our departments have been slashed 80%. We have no QA testers. We have no development team. Sometimes it’s just us and a Pentium 4 rusting away in a cubical. The reality is, we have to get stuff out the door while we are mired in bureaucracy. The bureaucracy is more important than the application itself because management doesn’t even use the application, but they ready your paperwork.

@Steve W

I see your point. My interpretation was that you handle obvious exceptions, but didn’t try to handle every single exception until you got into a higher volume environment. IMO sometimes it’s better to see an actual failure as opposed to having a poorly handled exception.

I think that’s pretty much what you were just saying though :).

Mr Atwood:
The assumption here is that poor quality code is written only by incompetent software engineers. Not so. I have seen so much poor quality software written by competent software engineers that destroys that assumption.

I have no objection to your technical assessment but I have strong objection to your singling out unknown persons who wrote the piece of code under discussion as incompetent. You do not give any thought to the conditions, environment or other possible contexts that might give rise to this poor code. In doing so you do not further the cause of software engineering especially in the areas of software development and IT project management.

From some of the comments I have read I see that I am not the only person concerned with the direction of your developing personality and dimming acuity.

The precision part was in countering the real votes enough to ensure the exact order of the 20 names, in real time, with a deadline looming and the possibility that they weren’t the only ones gaming the system. Not as tricky as you’d think given the ineptitude of the poll, but not exactly trivial either. They’d have looked pretty foolish if they’d have borked it at the last minute…

Yeah, they probably assigned this to a poor junior programmer getting paid minimum wage and gave him like 5 minutes to get it done…

I’m sure this was good experience for them and no harm was done since it’s just a crappy anonymous online poll that has no meaning whatsoever, you make it sound like this was the system used for the actual election lol.

Yeah, they probably assigned this to a poor junior programmer getting paid minimum wage and gave him like 5 minutes to get it done…

I’m sure this was good experience for them and no harm was done since it’s just a crappy anonymous online poll that has no meaning whatsoever, you make it sound like this was the system used for the actual election lol.

Word up

@Sam: I’ve been the one producing appalling code when given no choice by an ignorant employer, but I’d still label that as incompetence. Forced incompetence doesn’t look any different to the outside world than ignorant incompetence, so the label’s fine by me. If I’d valued the label more than putting food on my family’s table, I’d have refused to do it.

In research all of these polls are considered Junk Science.

Why? Because you have no ability to ensure that the respondents are random. In fact, you don’t have the ability to work out anything about the respondents unless you ask, and if you do people probably won’t bother with the poll.

That is - even if you stop the bodgy votes you are still going to get mainly people who WANT to respond rather than an average Joe. What’s more, if it is on a site like Times, you are getting a very non-random demographic of respondents.

Just try this in a scientific journal:
Of people who visited this specific site, and who are interested in the poll topic enough to lodge their opinion…

yeah… that doesn’t hold much weight.

No - this type of poll is only good at finding out general opinions of your demogrpahic of users. So on a site like this a poll on what should be the name of XYZ new site - which happened with stackoverflow - is a great idea. But that’s about as far as these polls go.

@Schmoo: but you knew you were producing bad code, right? I’d say that demonstrates competence. I have to agree with Sam on this - the circumstances need to be fully known before blame can be placed.

I just implemented a poll similar to this myself.

In my poll you can only vote true or false, and I check the inputs so there is no way to overweight a vote.

I have put basic checks in there to stop casual repeated votes (browser cookie - which is obviously ‘opt in’), and IP throttling to reduce the impact of script kiddies.

But given the very small dev budget (fairly typical of these little polls I think), what else can be done to protect against ‘hackers’? I could not think of anything that was worth the effort…

Now you can see why there are no online polls for shows like American Idol, etc. When you have to pay X cents a vote, you can vote as often as you want, because both the tv show and the mobile phone network split the proceeds while at the same time getting instant feedback demographics. Genius.

Did you really think any anonymous online poll would mean sh*t?

Polls are hard, lets go shopping. I need a new clown suit.


PS @Time to act - f*ck you and your hate. Unless you’re an African in Africa, everyone is an immigrant. This is not a politics blog. Read a book and edjucate yer ignerunt face. (Jeff feel free to delete this PS if you delete that hate-spam)

Steve W wrote: Seems a bit rich to label those involved as dumb clowns, when only a couple of days ago you were advocating rushing untested software out the door, and only fixing bugs that generated exceptions.

That isn’t what he was saying at all. What he was advocating was handling exceptions responsibly instead of trying to fix things that won’t ever need to be fixed.

Catching/Handling everything usually doesn’t catch the exceptions that you’re going to run into in high volume testing / real world scenarios. It can hide problems that should be made obvious, wastes a ton of time for no real benefit, and adversely affects the readability of your code.

Exceptions, like Kung Fu should only be used when they need to be used. There’s a reason they’re called Exception Handlers, instead of Everygoddmanthing Handlers.

:slight_smile: That said the clown comment was a little harsh. Time management is probably more to blame.

I’m really surprised at how defensive the comments are here. I’m guessing the tone of the post is what is setting people off. There’s only one truth here. The implementation was bad. Laughably bad. To any programmer worth his salt (education), this is a joke. The negligence of this implementation has nothing to do with budget and everything to do with the programmer not putting fundamental practices in to use. No range validation is the tells you exactly how much thought was given to this poll. It’s not an oversight… it’s lame.

Funny how many people are being critical of Jeff being critical of poorly written software…

It’s call having an opinion (a valid one at that)

I can’t tell you how many sites I’ve hit using the same techniques. Firebug (or Safari’s new web inspector) provides the request information needed to send what you want. curl does the rest.

I have yet to hear how this online poll could be made more hack proof…

(other than range checks - which is a basic oversight I admit)

These types of mass voting competitions are really fun. A while ago i got caught up in one for voting for your sports team. I was competing with the fans of some Czech team. We were getting thousands of votes every day and the site had a captcha plus an IP restriction of one vote per hour. :slight_smile:

It was never clear to me whether the Czech fans were auto-voting as well or were just really dedicated, but they kept up.

It’s not worth it unless it’s challenging.

Bonewolf wrote: To any programmer worth his salt (education), this is a joke. everything to do with the programmer not putting fundamental practices in to use.

In my experience implementing fundamental practices is the domain of engineers who’ve sought out better ways to work after their formal education is over. In fact, that usually happens as a result of making mistakes just like this.

If you think about it, I don’t think it’s too hard to figure out why there are so many angry comments. The people reading this blog are engineers!

Come on! Think about it! What is the one thing that happened to most of us in school and quite possibly our entire adult life? (Depending on how much DD, cosplay, star trek, and whatever other generally frowned upon past time we’re into).

That’s right, we got called mean names. Like we needed those painful memories brought back up - especially from one of our own! For shame Mr. Atwood. You meanie.

:smiley:

I think this mistake is more likely due to a lack of experience than incompetence.

@Eagan
Iím sorry that my comments on Exception-Driven Development were a bit exaggerated. Iíve found a number of Jeffís posts recently to be OTT and I was responding in kind. Iím sure Jeff doesnít advocate shipping untested software, but I did find a lot of his last post ambiguous.

You say,
ìThat isn’t what he was saying at all. What he was advocating was handling exceptions responsibly instead of trying to fix things that won’t ever need to be fixedî

But handling exceptions isnít a new development methodology; itís just good practice. Fixing things that wonít ever need to be fixed is fine if you have precognition, but my interpretation of Jeffís post was that you donít know which bugs will need to be fixed, so you donít fix them until a user has encountered them. And if you are not going to fix bugs until a user finds them why waste time testing?