With some delay, but the Steam christmas deals have started, with huge savings and also huge server overloads and a terrible user experience.
I won't enter in the download servers part because I don't know anything about how they work, except that they tend to get so overloaded you sometimes cannot even download the games you've just bought (probably connection slots full) or if you're lucky you will have a slow download (bandwidth throttling).
I will focus on the store website (because even with the Steam client, all the Store is a website just rendered inside a Webkit browser), because there I might not know the details but I detect some varied mistakes.
First is the store's catalog updates. Recently I was able to see with my own eyes how some "today's deals" were updated realtime: Most of them had 0% discounts, and after one or two minutes another one would have some real discount value. It took no more than a few minutes, but the impression of "glitched 0% deals" was unprofessional. A simple "update first deals, then show the deal pack" flow would have kept hidden much better things, you don't see any discount, or you see some "hidden discount" and after a while the game appears at the front page in the deals pack.
Then was today's case: First launch of offers, around 1000 titles under the 10€ barrier (hundreds with discounts). But today they applied this huge discounts to the catalog without any homepage description, deals pack or special promotion page. The results? Everybody trying to search for the deals ("see all 10xx deals" link).
Few minutes later you couldn't search anything on the site, getting blank results (more also about this later). Even now, with the problem fixed the search backend seems to be still dead and doesn't work.
How to solve this problem? By placing a frontpage, a deals section, whatever you think about that contains static/cached lists and avoids thousands of visitors using at once your search system to try to find your store deals.
Now Valve has a deals page, with fancy lists and even a counter (another interesting psychological way of stopping masses from checking each five minutes, but making them come back tomorrow). It broke the design of the page (so my guess is they had to put it ASAP to avoid all the website crashing) but does the job and allows me to check the deals.
This time, they probably should have placed a small "under maintenance to bring you hundreds of deals" page and update everything. For high amounts of products, or when you have public expecting something and you hint it, not allowing a non-searching way of finding it equals to server toasting.
And finally, the result pages, or how to badly apply AJAX to a website:
- Give feedback to the user: If I click on a page number, and nothing happens, I might click it again, and again and again, or simply go out. Animated gifs have been everywhere since the beggining of the www, notice the user you're loading something.
- Fail gracefully: If the AJAX call times out or comes with empty results, show an error message. Do not leave the user with an empty results box as if you didn't knew how to count and he had reached the end of the list.
- Browser history: Assuming you can't avoid your errors, store in the browser history each page index change. Whenever I had an "empty search error", as the browser's history nor URL weren't modified, I had to paginate again to where I was, leading me to an incredible level of frustration.
- Do not lie with the errors: Instead of a "search overloaded, try again later", I got a "No search results found" message. I'm not dumb but others might actually think that's true and go away.
Me and my friends just patiently waited until the store became usable, but as Amazon and any store with stats will tell you, on each step of online shopping you lose a lot of potential buyers, if your site crashes it gets much worse.
Valve is great coding videogames, has a digital distribution platform that works relatively well, but their website needs much love to work correctly.
Note: While writing this post, they seem to have modified the navigation so reaching the search for "deal games under 10€" is deeply hidden (but still reachable) and you get another page in the middle.