As a developer I get some of my absolute best work done at a time that I look like I'm a moron and just wasting time.
I'm talking about things like lying down on the bed, staring at the ceiling and just churning through stuff in my head.
Or just sitting on the desk and staring at a corner of the screen like someone who has had a traumatic experience.
This means typical office environments knock me down a few steps in terms of quality. As in, If I'm working for myself on my own terms I feel like I can be an "A" developer.
However when I'm forced in those environments I'm capped at being a "C" developer.
That's one of the biggest reasons I love working for myself because no one else is questioning me about the effectiveness of my methods. Who cares if I get work done while staring at the ceiling or typing on the keyboard? All that matters is the output.
This means I can walk to the park sit on a bench for half an hour and come back having more problems solved than I would have in 1 week of noisy office time.