Mostly the former.
People say this but I remain unconvinced; Soviet shortcomings always seem to be downplayed in favour of German superiority.
There was Soviet performance problems, but in terms of sheer numbers the Soviets had an absurd advantage over the Germans, which the Wallies also had when they were attack in 1944 across France. The Germans meanwhile had a numerical disadvantage in 1941 and a foe which ended up stronger at the end of the campaign than they were at the start of it, yet still pushed to the outskirts of the capital of their enemy while still at war with the British.
Numerical advantage means little if the effectiveness of those forces is poor. Let's look at some of the factors.
(1) Despite having been accurately warned of the impending German attack, Stalin ordered no mobilization nor unit preparation.
(2) Large number of Soviet aircraft were destroyed on the ground in the opening days as a result.
(3) The leadership ranks of units had been greatly impacted by Stalin's purges, leaving too few experienced and knowledgeable commanders.
(4) Despite the superiority of some of the Soviet armour, there weren't enough of them and they were committed to battle in too few numbers.
It took some time for these errors to be corrected.
Razing the ground in front of an invading army is a tactic that goes at least as far back as Alexander the Great. If you have no hope of holding that ground, razing it prevents that ground from being used by your enemy. Destroying bridges in front of an invader is a standard tactic given the movement complications it causes.
Interestingly, one of the things the Germans considered hitting with their air forces was the Soviet electrical generation network, because the German's own network was vulnerable to such attack, and it presumed the Soviet network was similarly vulnerable. The Germans lacked a strategic bombing force to really do such a campaign, however.