When do I need more than one Oracle Instance on the same server?
You most certainly don't want to have dev, test, and production all sit in the same instance. I wouldn't even put them on the same server.

Having separate instances for environments that serve different puproses allows you to isolate them from the security and maintenance perspectives. For example, if your development database needs to be restored, you don't want to put your production environment offline for that reason. You'll probably also have stricter security in production. 

Even performance-wise separate instances are useful while sharing the same physical (or virtual) machine. For example, by limiting memory_target on the development instance you will ensure that runaway sessions in development won't eat up all resources on the server.