There is no such thing as an underpaid developer. The key skill is in recognizing your value as measured by the market. And to find that out, you need to test the waters. If you aren't testing the waters, you aren't underpaid (because you've restricted your scope to just the current firm, and are getting the only market price available)
This is a real problem in finance, where a lot of people think they are worth more because they add a lot of value when in fact they only add value to the current firm. Put them elsewhere and they won't necessarily add any value.