The open office is used by many companies, especially IT companies like Google and Facebook. Now even our CS department apply an open office layout for PhD students. Staying at such an open office for one year, I realized it is not a good idea to do so. It is easier to focus and keep productive while programming in an open office, but it is much harder to think and derive math formulas. Many reports also shows the open office is destroying the workplace: e.g., washingtonpost, thenewyorker.
So how to survive and keep productive at an open office, I tried following steps and work pretty well for me:
Step one: buy a comfortable noise-cancelling headset
The headset needs to be comfortable! Because you need to wear it for hours. And it needs to cover all your ears to isolate the outside noise. Noise-cancelling is not necessary but a good feature to cancel noise like AC or other machines (it cannot cancel voice). The Bose headset is a good choice.
Step two: create good white noise
I found out that playing some good white noise actually help you focus and meanwhile decreasing the influence from other people's talks around you. I'm using Coffitivity. The noise it generates is just right.
Hope it helps!