I have used simulators to develop hard-to-make-correct distributed code.
It helped me find all kinds of subtle non-intuitive bugs that would have gone unnoticed had I only used hand coded automatic tests.
Highly recommended.