One nice thing about being transparent and consistent with salaries is that you can have an objective conversation with someone about the reasons that they're making less, versus having to rely on vague, irrelevant, or harmful explanations like "he was making more at another company," or "he negotiated harder." If someone thinks they should be making what another developer is being paid, they need to make the case based on clearly laid out criteria.
There's no compensation system that makes everyone happy, and there shouldn't be. You want a system that leaves people knowing where they stand, what it takes for them to make more, and management that encourages them to grow into that amount.