ADP has the worst web programmers in the world.

[Image]Jared was trying to check his 401K info at this site.

Enter social security number, press tab, enter PIN, press tab, and press Space to press the “Login” button.

Because the morons who wrote that page are using the “tabindex” attribute without understanding it, this actually activates a button way down at the bottom of the page which locks you out of your account and mails a new PIN to you via snail mail.

This kind of horrific programming shows evidence of no usability testing whatsoever. The most trivial usability test would uncover this. (Not to mention the other horrific JavaScript on that page, for example, the JavaScript that pops up an dialog box if you put a space in the social security number).

Now, based on one web page, I wouldn’t condemn a whole company. But ADP’s entire web site is crawling with these kinds of bugs. I tried using ADP’s EasyPayNet to run the payroll for my company. The UI was full of stupid JavaScript bugs that screwed up my payroll every single time I tried to pay people. It copied employee’s data on top of other employee’s data. It locked me out for days at a time. Way-too-clever JavaScript validation routines made it impossible to change values on certain forms (because they would not let me tab off of a control that was inconsistent with another control, so there was no way to change them both at once to make them consistent).

That’s why Fog Creek stopped using ADP for our Payroll – now we use Intuit QuickBooks and it’s a million times better.

And while I’m complaining…

Thinking of wireless networking? Stay away from SMC Networks. Their products are terrible. We tried a bunch of their 802.11 wireless networking PC cards and discovered that they barely worked at 10 feet; one wall was enough to stop them cold. Serves me right for buying the cheapest brand.

We switched to the Lucent/Orinoco stuff, which works much, much better.

About the author.

I'm Joel Spolsky, co-founder of Trello and Fog Creek Software, and CEO of Stack Overflow. More about me.