You actually don't choose one speed or the other. You use both internal and external speed at the same time. A simple way to describe it is to think of a situation in which you have to use multiple speeds throughout an application, so you can code the external speed to vary based upon what move is coming up. When testing your application, you wouldn't want to run at 100% production speed at first, so instead of going through and scaling all your various external speeds to be slower than before, you can simply change the internal speed. For instance, if you set internal speed to be 35 in the previous example, then all the various external speeds will be scaled back to 35% of their original values. Then once testing is over, you can set the internal speed to be 100 and then all the external speeds will run at 100% of their programmed value.