resilient software