Optimising Performance in Complex Environments