To build something and have it work perfectly first time you have to do an absolute insane amount of testing and simulations on every nut and bolt and then on every module made out of them. The paperwork and man hours required are enormous. Not to mention the inefficiency caused by the number of people that need to be involved. (unproductive meetings etc) It can be done, NASA does this. But it's like trying to write a professional software application but you're not allowed to hit compile on the entire program until it's finished. You're only permitted to compile and test low level functions in isolation.
Being did this with CST-100 and it blew up in their face spectacularly. Several years later, they finally launches astronauts and it still had serious issues.
Whereas Starship doesn't after several years?
There is only bias here.
Now that is a truly absurd comparison. Starship is very much experimental. It does the basics of rocketry pretty well, and all its issues are where they are breaking new ground. Nobody has got full reusability to work right. The best by far that anyone has done is the reusability SpaceX has achieved with the Falcon 9. Rocket labs seem to be making good progress. The Space Shuttle's reusability was a farce. They could have build new launchers each flight for less than its refurbishment cost. The places where Starship is having issues are some of the key ones where shuttle had issues. No great surprise there. Things like reusable heat shields are hard. Shuttle's was a horrible mess. This might well defeat Starship, but only hard work and experiment will tell.
CST-100 is just a rehash of things that were being done in the 1960s, with some modern control software. Its core design was also supposed to be nailed before the contract was signed, to the point with it should have been entirely D, and no R.