When shoulder range of motion is impaired, the most common response is to address the shoulder joint. While this seems to make sense, it is not usually the best solution.
Shoulder range of motion is intimately related to thoracic mobility, or the mobility of the middle of your back. Full shoulder range of motion is possible only if there is adequate thoracic extension. Accordingly, in many cases thoracic mobility is a significant contributor to a lack of shoulder range of motion.
Most people have stiff thoracic spines because of poor training habits and poor posture. The best way to improve thoracic mobility is through manual mobilization at the hands of a skilled therapist. However, another great, simple option is to use a foam roll.
While this is commonly suggested, I think the way most people are instructed to do it poorly addresses thoracic joint mobility into extension, and instead focuses on mobilizing the muscles of the thoracic region. And this is a big difference. The goal of mobilizing the thoracic spine to improve shoulder motion is to specifically increase gliding of the joint surfaces to allow for increased thoracic extension. Accordingly, we need to as best as possible stabilize one region so the other can glide in a manner to increase extension.
However most people are rolling back and forth on the roll to reduce the soft tissue density of the muscles, thereby increasing extensibility. The only range of motion this will improve is flexion, or bending forward, which is the opposite direction you want your spine to go to improve shoulder mobility.
Spectrum trainer Dave Knight, ATC, CSCS, ISSN demonstrates a great way to increase thoracic extension mobility with a foam roller below: