Due to supply and demand the value of a developer changes with time. For developers to command a fair salary they have to keep up to date on their current market value. From a business perspective, most companies subscribe to "Pay as little as possible that will stop them walking out the door". The alternative is profit sharing. Pay someone depending on how well the company is doing and how much they contributed to that success.
Semco solution: Make all financial company info open (including everyones salaries). Train everyone in how to understand it. Allow people to set their own salary. You can be fired by your piers. Allow people to gamble a percentage of their salary in profit sharing. The more they gamble the more they profit when the company does.