I’ve found a way around the useless full screen implementation in OSX, thanks to Geet Duggal. Here’s a refined version of the┬áprocedure, where I’ll have Xcode full screen on one monitor, and terminal and Chrome open on my secondary monitor:

  1. Arrange the application windows you want to have on your second screen as you would like them. You will not be able to rearrange them once they are there.
  2. Completely quit the applications you wish to use on your second monitor, e.g. terminal, Chrome.
  3. Full screen your app (Xcode)
  4. Using the trackpad, swipe with three fingers a little bit, so that just the edge of the next space is visible (but it won’t switch when you let go)
  5. Keeping your fingers on the trackpad, hit cmd + space to open Spotlight and type in the name of the program you wish to launch on the second monitor (terminal)
  6. Hit enter to launch the program, wait for the window to display, then you can take your fingers off the trackpad.
  7. Repeat steps 4-6 for any other apps you wish to launch!
This solution is far from perfect, but it works reliably so it’s a usable workaround until Apple actually fix this.