Having the draft before free agency is idiotic. The NBA at least needs to have a limited free agency period before the draft so teams can get an idea of what their potential needs will be. Now I understand that the early draft picks decisions in the NBA are primarily made based on best player available, but beyond those 7-10 picks the rest are based on position need. If a team is not even allowed to get a feel for the free agent marketplace before the draft occurs it is very difficult to make an informed decision.
The NFL does it right when it comes to the offseason: Limited FA > Draft > Extended FA.