Given the difficulty of getting this right we're tempted to agree with the latter - however it appears that raw materials that are not quite up to spec caused the greatest problems. The milk as one might expect is they key ingredient - it must be fresh, whole milk that has not been ultrapastuerized. A low heat pastuerization is best because the higher temperatures degrade the proteins in the milk which create the desired stringy, stretchy texture.
The actual hands on time is pretty short - maybe 20 minutes tops - the majority of the time you are waiting for the timer to go off before performing the next step. The utensils needed are few - a pot, a slotted spoon, some cheesecloth, a timer and accurate thermometer, the range and I also used a heating pad to maintain the delicate temperature required. All in all from start to finish you'll need a solid 6 hours to end up with a clean kitchen and a few balls of mozzarella. This is what our set up looked like.