I'm convinced that the ideal layout for developers is single offices, with doors, big enough for pair programming. Anything else is wasting developer attention and the opportunities for collaboration enabled while being in close proximity.
The problem with "real" micro-offices is that a lot of SMBs don't own the physical property, and instead they rent. These properties often have drop ceilings, so even if the "walls" of the office(s) hit the ceiling, sound would still very easily travel up and over (and removing the drop ceilings is expensive/hard). Companies had an alternative: Cubicles. They were modular, relatively inexpensive, and gave the experie…
We hated cubes because they weren't offices, and Dilbert-style culture was common in companies with them, so they get rid of the cubes and gave us tables, and kept the same cultural problems.
This was perhaps the most crazy thing to do. We didn't hate the cubes, we wanted more privacy than the cubes provided.