Thursday, May 11, 2006

Behavioral advertising buzz

Jennifer Slegg at SEW writes about rising interest in personalized advertising. Some excerpts:
Behavioral ... advertising ... is targeted to a specific individual based on that user's previous surfing behavior. This is quite different from the more common targeting method of displaying ads matched to the specific content of an individual page or to all users in general. With behavior targeting, this would mean that two people could see vastly different ads when viewing the identical webpage at the same time.

Studies have shown that conversions are higher when people are targeted through behavior rather than content because behavior can determine a person's actions. Whether it is looking at specific sections of an online newspaper or visiting a certain type of site more than once, those actions are used to determine each user's interests.
See also my previous posts, "Google wants to change advertising", "Microsoft adLab and targeted ads", and "Yahoo testing ads targeted to behavior".

See also my previous post, "Is personalized advertising evil?"

Wednesday, May 10, 2006

MySQL Cluster and my big virtual database

MySQL Cluster is an in-memory database running across a cluster of machines that tries to be robust to failures of nodes.

I had been looking at it off and on for a while. My curiosity was peaked when I watched Stewart Smith's talk on Google Video, "A Googly MySQL Cluster Talk", and investigated a few questions I had after that talk.

Unsurprisingly, MySQL Cluster is not a giant, simple, virtual database that runs transparently over a cluster, nodes dropping in an out of service at will, with read-write replication and data migration all done automatically and robustly. MySQL Cluster is cool, but it is not quite that cool.

The core design behind MySQL Cluster seems to have started with one thought: Instead of storing tables in the local filesystem, what if we stored them in the memory of nearby machines on the network?

This is a really neat idea. I remember some fun research work a while back that tried to exploit the fact that it is an order of magnitude faster for a process to access data from RAM on a remote machine than it is to access data from local disk. Yes, disks are that slow.

Most of this research work focused on experiments with paging out to the free memory of other machines on the network instead of local disk, but the idea still seems similar to what the MySQL folks are doing with MySQL Cluster.

So, I am guessing MySQL folks started by deciding to experiment with a new type of in-memory storage engine, one that would say, this data isn't in this machine's memory, but in that machine's memory over there.

Then, it looks like they added a bunch of stuff on top to try to make this robust. Logging of transactions out to the local filesystem, replicas of the table fragments, and goodies like that. MySQL Cluster was born.

There's a lot of hard work left to be done though. According to their limitations page, new data nodes cannot be added without a restart of the entire cluster, so you cannot add new boxes in to increase your capacity with the system live.

Other serious issues appear to include performance issues with some queries, windows of opportunity for data loss, potential for stray locks, temporary transaction failures when nodes are dropped or rebooted, complicated configuration and maintenance of the cluster, and other problems.

Even so, it is impressive what the MySQL folks have built. It may not be a big, virtual database, but it is a big step in the right direction.

Update: There are more details on how MySQL handles failures and recovery in a 2005 VLDB paper, "Recovery Principles of MySQL Cluster 5.1" (PDF).

Tuesday, May 09, 2006

Recent Google talks on Google Video

There have been several interesting talks at Google that recently were published on Google Video.

They take a long time to watch, but I enjoyed a bunch of them. Among my favorites was the informative (but troubling) "A Googly MySQL Cluster Talk", Brion Vibber's "Wikipedia and MediaWiki", and Barry Schwartz's excellent "The Paradox of Choice - Why More Is Less".

[via Nathan Weinberg]

Update: If you want to see any future Google TechTalks as they are published, it appears an RSS feed is available. Not sure if that is supported by Google -- they don't link to that feed anywhere -- but it seems to work fine.

Wikipedia and databases

Brion Vibber from Wikimedia gave an interesting talk recently at Google about Wikipedia. Most of the talk was about scaling Wikipedia under the recent massive spike in demand.

Their scaling strategy relies heavily on a large caching layer that focuses on caching entire HTML pages. The idea here is that the vast majority of accesses to Wikipedia are anonymous reads, so the same pages can be served up to those people.

This does work pretty well -- apparently, 78% of accesses are served from the Squid caches and another 7% on top of that get served from Memcached pages -- but it appears they basically have to toss the cache if anything on the page is different, including logged in users.

During the talk, I was a little surprised they were not more focused on caching at the data layer, focusing on making the underlying databases serve data rapidly instead of trying to avoid the databases.

If I understand it right, the Wikipedia architecture has all the Wikipedia data thrown into one giant database. Everything is in there, all the tables, even the large indexes for full text search. Then, they tossed on a few slave databases that appear to take replicated copies of the entire database.

All this data on one machine appears to mean they are hitting disk a lot on the database servers.

That doesn't seem necessary. The entire Wikipedia database appears to be a few hundred gigabytes. It should be possible to get most of that in-memory in a horizontally partitioned database cluster of a couple dozen machines.

In an ideal world, we'd be talking about something like the Google Cluster, where shards of the data are distributed across many machines and accessed in parallel, or a big virtual database like I craved in an earlier post.

But, let's stick with low hanging fruit here. So, to start, I would pull text search out of MySQL. Yes, I know, it's so lazily convenient to use MySQL full text search, but the performance doesn't seem to be where it needs to be. Moreover, it almost certainly is desirable for something like search to have its own dedicated hardware, not to be competiting for resources with an RDMS on the same box.

Then, I'd partition the data. Get it so each box only has a shard of the data big enough that the disk is quiet. I really am tempted to start rambling about something other than a simple partition of the existing MySQL tables and using MySQL replication here, but we're talking about low hanging fruit, so I'll stick with MySQL and what is simple to get done.

If almost all the Wikipedia database accesses never touched a disk, I suspect performance of the database layer might be good enough that parts of that HTML caching layer become unnecessary or even counterproductive. If so, the freed up boxes could be shifted from the HTML caching layer to the database layer, improving performance and scalability even further.

Near the end of the talk, Brion seemed to suggest that Wikipedia was going to focus their scaling efforts on boosting cache hit rates, more work on that last layer right before the client. It appeared to me that it might involve some fairly complicated work to figure out exactly when parts of the coarse-grained, HTML cache are valid.

I wonder if the focus might be better spent on the data layer, getting the performance there to the point that caching further out becomes unnecessary.

I have to say, it is great fun looking at this kind of large scale problem. I wish I could dig in deeper and pour over profile data for the site.

The efforts of the tiny Wikipedia development team are really impressive. Not only have they managed to scale to crushing loads, but also they have done it in an unbelievably meager budget. They have much deserved loyalty from a community that wants to see them continue to thrive and grow.

Update: Interesting March 2006 messages ([1] [2]) on the Wikitech mailing list from Brion Vibber show that Wikipedia is entertaining the idea of switching to MySQL Cluster. An excerpt:
We don't support MySQL Cluster at this time, as it's currently limited in many ways. (Everything must fit in memory, can't have certain field types, etc.)

Currently waiting for the upcoming versions which allow disk-backed data, etc.

No point in rushing in when our own contributors who are MySQL employees are telling us to wait for it to mature a bit.
MySQL Cluster looks tempting but, as Brian said, it wouldn't work right now since everything wouldn't fit in memory within the maximum cluster size and other restrictions. Probably better to look at manually partitioning the data to get it in memory.

See also my post, "MySQL Cluster and my big virtual database".

Despair on corporate spin

Maybe it is too dark for some, but the same side of me that loves Dilbert cartoons really enjoyed the Despair, Inc. video podcasts on corporate spin. Painfully hilarious.

If you like that, you might also enjoy the classic Demotivators posters.

Thursday, May 04, 2006

Search without searching

Mike Shields at MediaWeek summarizes parts of a talk by Chris Payne (Microsoft VP of Windows Live Search, former GM at Amazon.com).

I found this tidbit particularly interesting:
MSN is working on making its search product more personalized, incorporating individual users' behavior ...

Eventually, according to Payne, MSN search will become so sophisticated that users will receive search results proactively - i.e. before they even know the want to search for something.
When I was at Amazon working on personalization, we used to joke that the ideal Amazon website would just display a giant picture of one book, the next book you want to buy.

Maybe the ideal of information retrieval is to provide relevant, helpful, and useful information even in the face of very limited explicit data about what each person wants. Maybe the ideal search engine requires no search at all.

It may be a goal that we never completely can reach, but still one to which we should aspire.

See also my previous post, "Finding and discovering", where I talk about the Implicit Query project at Microsoft Research.

See also my previous post, "Personalized search at PC Forum", where I said, "If you need to read minds to prevent [people] from having to do work, well then you better read minds. They'll think it's your fault, not theirs, if you don't give them what they need."

Database war stories: Findory

Tim O'Reilly posted a short interview with me that discusses the backend architecture of Findory.

Is it Windows Live, MSN, or Microsoft?

Jennifer Slegg at SEW reports that the upcoming MSN adCenter product has changed its name to Microsoft adCenter.

Jennifer asks, "With all search related products branded under the MSN name, why change MSN adCenter to Microsoft adCenter?" Danny Sullivan adds, "I guess the biggest surprise is that they didn't call it Windows Live adCenter."

Richard MacManus is a little more blunt, saying:
It's indicative of the general branding chaos that has been evident at Microsoft in recent times. From the MSN vs Live confusion, to the just announced re-naming of adCenter from MSN adCenter to Microsoft adCenter. At the very least it looks like MSN as a brand name is being, rather clumsily, ushered out the door.
See also my previous post, "Is it Live or MSN?"

See also Dare Obasanjo's post, "One of These is Not Like the Others".

Update: Now this is getting funny. Microsoft apparently decided to name two entirely different products "Windows Live Search", a move Mary Jo Foley calls "a new low, in terms of bad naming choices" and Todd Bishop labels the "George Foreman naming strategy".

Wednesday, May 03, 2006

Early Amazon: The end

I spent several more years at Amazon. Amazon grew and grew.

Amazon expanded from a tiny online bookstore into an online superstore, selling books, music, videos, software, video games, electronics, toys, hardware, clothing, jewelry, and much, much more.

In later years, I went on to lead the software team in the Personalization group. We did great things. I am proud of everything we accomplished.

But, those first years will always hold a special place in my memories. It is something I likely will see only once in my lifetime.

Below are links to all the posts in my Early Amazon series. I hope you enjoyed reading them as much as I enjoyed writing them.

The Early Amazon series:
  1. The series
  2. The first week
  3. Group discounts
  4. Door desks
  5. BookMatcher
  6. boy-am-i-hard-to-please
  7. Inventory cache
  8. Dogs
  9. Xmas at the warehouse
  10. Splitting the website
  11. Pagers, pagers
  12. Interviews
  13. Similarities
  14. 1996 holiday party
  15. Oracle down
  16. Recommendations
  17. Shopping cart recommendations
  18. Just do it
  19. Auctions
  20. The end
I feel privileged to have had the opportunity to have worked at Amazon.com along side such talented, dedicated, and passionate people. It was a remarkable experience.

Update: See also my post about Amazon.cult.

Yahoo, here comes Microsoft?

Robert Guth and Kevin Delaney at the WSJ report that Microsoft is considering acquiring part of Yahoo. Some excerpts:
One faction within Microsoft Corp. is promoting a bold strategy in the company's battle with Google Inc: Join forces with Yahoo Inc.

A Microsoft-Yahoo combination could merge complementary strengths. To succeed in Internet-search advertising -- the business driving Google's growth -- a competitor needs three core elements: strong technology, a mass of consumers and a universe of different advertisers.

Microsoft is spending untold hundreds of millions of dollars on the technology piece, but it doesn't yet have enough consumers using its MSN service to entice the needed advertisers.

A tie-up with Yahoo could address part of that problem. It has more than 100 million people visiting its site a month, making it the most popular Web site in the U.S. So far it is losing the race to Google when it comes to the technology for matching ads to consumer search queries, though it plans to unveil an upgrade to its system this month.

Combined, MSN and Yahoo would have all three pieces and, at least on paper, could leapfrog Google.

Behind the scenes at Microsoft there are two factions of thinking about a Yahoo deal, say people familiar with Microsoft.

One, largely led by MSN veterans, has been focused on Microsoft building its own answer to Google. So far that group has prevailed.

Pushing for more is Hank Vigil, a Microsoft senior vice president who internally is advocating for Microsoft to do a major deal such as a tie-up with Yahoo.
If a Microsoft/Yahoo partnership were to happen, I suspect it would be motivated more by frustration than anything. MSN management has been promising for years that they are "six months" away from catching Google, a window that seems to keep shifting forward.

While the article correctly argues that MSN's focus should be on internet advertising, mashing the MSN and Yahoo beasties together is unlikely to yield beautiful offspring. If the problem is increasing the number of websites carrying Microsoft's advertising, as the article suggests, I would think MSN would sign on many smaller players rather than becoming entangled with Yahoo.

This is not the first time Microsoft has considered a mega-merger like this. Eight months ago, MSN was in talks with AOL, talks that apparently included the possibility of merger. For more on that, see my previous post, "MSN and AOL, the kissing behemoths".

In any case, I do think we will see a frenzy of biz dev deals coming out of MSN. For example, Amazon recently switched to Microsoft for web search instead of Google, a deal that, as Danny Sullivan mentions, may include running MSN adCenter ads on Amazon.com websites. I am sure there is much more of this to come.

[WSJ article found via Danny Sullivan]

Update: Five months later, this idea of Microsoft acquiring Yahoo is coming up again.

Tuesday, May 02, 2006

Data on Google Mobile Search

A couple Googlers wrote a CHI 2006 paper (PDF) that summarizes the characteristics of the searches on Google Mobile Search.

Update: On a related note, I enjoyed this talk by Patrick Baudisch from Microsoft Research about overcoming the challenges of the small displays on mobile devices.

Personalized news from Spotback

Michael Arrington reports that a new startup, Spotback, has launched a personalized news site.

From the Spotback FAQ:
Spotback is a new breed of personalized news service. It is designed to quickly learn each user's fields of interest and style by analyzing how users rate and interact with news information.

It then offers users the most interesting, relevant and hard to filter news information personally tailored to their taste. Spotback uses sophisticated algorithms that analyze social behavior.
The site is clean, responsive, and easy to use. No login is required, just start rating articles. When you rate an article, a similar article immediately will slide on to your screen in a nifty AJAX-y way.

Unlike Findory or the recommended stories section in Google News or MSN Newsbot, articles you click on and read do not change your recommendations. On Spotback, only explicitly rated articles are used for the personalization.

Spotback recommended articles are marked with a button that says, "[people] also liked". Clicking on that button brings up an explanation of why the article was recommended. The explanations list similar people to you, suggesting that Spotback is using a form of collaborative filtering or, most likely, user clustering to power their recommendation engine.

In my experience, the recommendations seemed off. Rating three articles about Google positively brought up recommendations for "Guerrilla marketing Euro Cafes", "Online and Live Poker", and "People Talking about Architecture" among other things.

This could indicate a problem with the recommendations algorithms or could be due to lack of user behavior data. It will be interesting to watch Spotback over time and see how the recommendations change.

Spotback gives me flashbacks to Memigo, a news recommendation site that preceded Findory, though Memigo is missing the wiz-bang AJAX features.

Interesting to see new startups launching around the idea of personalized information.

Monday, May 01, 2006

Recommending advertisements

Omid Madani and Dennis DeCoste at Yahoo Research authored a short paper, "Contextual Recommender Problems" (PDF), that discusses targeting advertisements as a recommendations problem.

Some extended excerpts:
When a user visits a page, the systems task is to pick a certain ad topic, and from that ad topic pick a certain ad to show. The objective is to maximize click rate over some period of time.

We could ... [treat this as a] ... Bayesian formulation of the n-armed bandit problem ... and figure out which arms work best for that person.

A major problem we face with this approach is the problem of sparsity: there may be many ad topics available (thousands and beyond) ... the number of interactions we may get from a single user ... may be very small ... The average baseline click rate ... is very low (e.g., below one percent).

Information about user behavior and potential user and arm similarities that can ... help the choice of displayed arms.

When we want to select ads to display to a single user ... the problem is very similar to recommendation problems and involves many similar issues: users ... with similar tastes, missing values, and our choice of the columns/items to show.

Several recommender solutions methods, in particular collaborative filtering approaches, as well as techniques such as dimensionality reduction and clustering, nearest neighbors and other machine learning methods, apply ... as well.

The challenge here is how to do exploration and exploitation with the understanding that information obtained about a single user can help the whole community of users, and information about the community can help better serve a single user.

We are not aware of prior research that addresses exploration and exploitation in such large dimensional spaces, taking community (collaborative filtering effects) into account.
Targeting advertisements requires matching millions of ads to millions of users on billions of web pages.

Data is extremely sparse on which ads are most effective for specific people and pages. Overcoming the sparse data will require combining contextual information about the ads and pages with knowledge of user interests and behavior to determine similar ads, people, and pages.

The problem then becomes a recommendation problem. For a specific user seeing a specific page, the most relevant ads most likely will be similar to ads that similar users found relevant on similar pages.

The combination of ads we pick will depend on whether we are exploring, learning more about how well some ads work for some pages and some users, or exploiting, seeking to maximize revenue based on the data we already have.

Sunday, April 30, 2006

Amazon web search switches to Microsoft

Amazon's A9 and Alexa appear to have switched from using Google to power their web search to using Microsoft's Windows Live Search (aka MSN Search).

I wonder if this is a sign of increasing collaboration between the two Seattle area companies.

[via Google Operating System, John Battelle, Nicholas Carr, and Threadwatch]

Update: Seattle PI reporter Todd Bishop confirms the story.

Update: MSN Search PM Erik Selberg says, "It's a step towards more collaboration between Amazon and Microsoft. It's painfully clear to everyone that the power of Google AdWords and AdSense are on a collision course for Amazon and eBay .... [Google] is a huge threat to Amazon's business."

Update: Danny Sullivan points out that Google ads also have been removed.

Early Amazon: Auctions

In March of 1999, Amazon.com launched an auction site to compete with eBay.

Behind the scenes, this was a herculean effort. People from around the company were pulled off their projects. The entire Auction site, with all the features of eBay and more, was built from scratch. It was designed, architected, developed, tested, and launched in under three months.

In addition to a fair amount of architecture work, I had the task of designing and coding the account system, everything around registration and login of buyers and sellers.

Rather boring stuff, I thought, and perhaps that was tempting fate. Just a couple weeks from launch, Jeff Bezos decided to reverse a fundamental design decision that required rewriting almost the entire account system.

I was told about Bezos' decision late one Friday afternoon. I designed the new system that Friday evening. I came in at 7am the next morning and started a frenzy of coding. I left again at 11pm, then came back at 7am that Sunday morning. At 6pm Sunday evening, blurry-eyed, I had done all the testing I could stand to do.

The hastily written code seemed solid, but I feared that was wishful thinking on my part. Perhaps to lower expectations, perhaps just crazed from sleep deprivation, Sunday evening I committed to the source repository what I called the "Share My Pain" release.

The next day, to my pleasant surprise, few bugs were found in the new code. Those minor pains and the remaining issues elsewhere were quickly resolved. Amazon Auctions somehow launched on time, an entire business built in three short months.

Amazon Auctions was designed to be a frontal assault on eBay, reproducing everything they had in one fell swoop. Amazon thought its tens of millions of customers would immediately adapt to auctions and small businesses would flock to our site. It was an aggressive move that was foolishly arrogant.

When the site launched, it was technically superior to eBay's, faster, better search, and several new useful features. The inventory was reasonable, but not large.

Over the following months, the site did not grow as rapidly as some at Amazon optimistically projected. Amazon customers turned out to be quite timid about exploring the auction site, fearful of the lack of guarantees and customer service, unattracted to the idea of bidding.

Amazon Auctions stalled. Sellers moved away. Eventually, Amazon just gave up on it. While Amazon Auctions occasionally twitches in its sad resting spot on the current Amazon site, it is all but dead now.

It did not have to be that way. We were building this from scratch, and there was a lively debate inside Amazon about what we should build.

The debate fell into three camps. The main group argued that we should duplicate eBay and assault them head on.

The other two groups wanted a narrower focus. One (which included me) argued that we should optimize for medium-sized and large businesses instead of small sellers, stealing away the top end of the market. The other argued that we should focus on dominating auctions of books, music, and video -- the core product lines of Amazon -- and leave selling beanie babies and other oddities to eBay.

The "head on assault" crowd won, and then ultimately lost. Over the last several years, Amazon eventually migrated its strategy to versions of what the other two camps advocated. Amazon now allows third party sellers (mostly medium and large businesses) to sell items on its product pages (not collectibles and oddities).

Perhaps the only way Amazon could develop its current third party selling strategy was to experiment and learn along this circuitous path. But I cannot help but think that it could have gotten to this place faster had we been more humble back in 1999.

Make it easy

Paul Boutin in Slate writing about YouTube: "The secret to success is to make everything one-button easy, then get out of the way."

Friday, April 28, 2006

Microsoft is building a Google cluster

Benjamin Romano at the Seattle Times reports that Microsoft "plans to plow perhaps $2 billion more than expected -- a meaningful sum even for the world's largest software company -- into new technologies, marketing for its most significant wave of product launches in a decade, and the fight for online supremacy against Yahoo! and Google."

This spending is an explicit part of Microsoft's strategy in the search war. In a Fortune article, Microsoft CTO Ray Ozzie said that the cost of building these massive online clusters is a huge barrier to entry and that "the people who could build a viable [Web] services infrastructure of scale are companies that have both the will and the capacity to invest staggering amounts of money."

Microsoft is trying to build a Google-sized cluster, belatedly recognizing that massive computing resources are "major force multipliers" for those who have them and an insurmountable barrier for those that do not.

As Ozzie said, few others have the resources to build this massive online computing infrastructure. Who else can build, maintain, and exploit a cluster of millions of servers? Who else can spend the billions required? Not Amazon. Not Ask. Not any venture-funded startup. Probably not Yahoo.

The search war is now an arms race. The buildup in computing power for the battles ahead will be remarkable to watch.

Thursday, April 27, 2006

Finding and discovering

A Jan 2006 CACM article out of Microsoft Research offers a nice overview of the Stuff I've Seen project.

One particularly interesting part of the article explores how personalization complements search. Some excerpts:
Implicit Query ... analyzes the email message the user is looking at and extracts important words from the body, subject, sender, and recipient fields. These words are automatically used in a query ... and the results are shown as a side panel attached to the current message.

We thought IQ would be helpful in sparing users the effort of generating queries, and indeed it is.

But many people have also reported an unanticipated benefit of finding information, especially when they completely forgot they had anything related and would never have generated an explicit search on their own.
Search helps when you know what is out there and can easily say what you want.

Personalization helps when you do not know what is out there. Personalization surfaces interesting items you did not know about and may not have found on your own.

Search is finding. Personalization is discovering.

Seeking the talent in the crowd

A great post by Nicholas Carr rips into the surprisingly popular idea that diamonds will appear if you simply mash enough steaming piles of user-generated content together.

Some selected excerpts:
Although wikis and other Web 2.0 platforms for the creation of content are often described in purely egalitarian terms - as the products of communities of equals - that's just a utopian fantasy.

Quality ... hinges not just, or even primarily ... on the number of contributors ... [but] on the talent of the contributors.

When you look deeply into Wikipedia, beyond the shiny surface of "community," you see that [it] is actually ... more a product of conflict than of collaboration: It's an endless struggle by a few talented contributors to clean up the mess left by the numbskull horde.
As I have said before, summing collective ignorance isn't going to create wisdom. Take a majority vote from people who don't know the answer, and you're not going to get the right answer.

There may be wisdom in that crowd. There is also a lot of noise. Separating the wisdom from the noise is the real challenge.

See also my previous post, "Getting the crap out of user-generated content".

Wednesday, April 26, 2006

Early Amazon: Just do it

Later, Amazon thoroughly embraced the reckless passion of innovation. "Just do it" became a rallying cry.

In typical display of Bezos silliness, "just do it" was codified in the "Just do it" awards. Recipients were brought up in front of the entire company and given an old, used Nike shoe.

I got a couple of these -- including one for shopping cart recommendations -- but, after moving to Stanford and back to Seattle, the old, stinky, mismatched shoes have long been lost.

What was not lost was the sense of pride. I was proud to have gotten that crappy old shoe.

Of course, it was not the prize itself that mattered. It was the recognition. It was that someone had noticed and said thanks. That was what I wanted.

Recently, I have had some interesting debates about management goo with a couple different friends who work at two large, well-known Internet companies. One thing we were talking about was compensation strategies.

My opinion has swung 180 degrees on compensation in the last few years. I used to be a huge fan of pay for performance. Salaries, I thought, should be varied by how well you do and what you have done.

Now, I believe that pay and perks should be high but basically flat; exceptional work should be recognized in other ways.

What changed my mind?

While merit pay sounds like a great idea in theory, it seems it never works in any large organization. It appears to be impossible to do fairly -- politics and favoritism always enter the mix -- and, even if it could be done fairly, it never makes people happy.

A recent example of this is the news about poor morale at Microsoft because of their elaborate performance review and merit pay system. It is seen as unfair. It makes everyone unhappy. It just does not work.

Instead, compensation should be high but basically flat. Merit rewards should focus on non-monetary compensation. Maybe even an stinky old shoe.

That used shoe was worth far more than it might appear. It was a thank you. It was recognition. These are things valued by many, but offered far too rarely.