Communicating with an SPI DAC
Three issues stand out in this:


final = fixed ^ (value &lt;&lt; 2) gives you 0x5000. As final[12] is a "don't care", then you are actually feeding zero scale to your DAC, which is what you're observing. The mistake here is that the scale runs from 0 to \$2^N-1\$, so you need to do value = 1023 &lt;&lt; 2 then OR that together with fixed (rather than XOR; doesn't make a difference in this case but this is the safe way to combine two values). You should be sending 0x4FFC to go to full scale output.
You say you "haven't used a capacitor". Well, you need to! At the bare minimum, you DAC should have a small (10-220 nF) bypass capacitor at \$V_\mathrm{DD}\$. Never exclude these in digital circuits, eliminate obvious problems first otherwise you won't be able to determine reliably what's causing failures.
SPI is a pain (it's not a proper standard, just ad hoc), but I think you should be using mode 1, not mode 2. Compare Figure 1 in the datasheet, with this page from the mbed manual, and the following image (from Wikipedia). In mode 1, output is updated on the rising edge, and read on the next falling edge, which corresponds to the DAC's datasheet. As mentioned in the comments, do play with this, it's a very common problem in SPI setup. You will not be the first or last, I promise you!