topic: [[Thinking]]
created: 2023-03-13
*Engineering a test for resiliency by testing for failure.*
This reminds me of [[Antifragility]], evolution, capitalism, and other successful [[Systems]] are able to accept failure and learn and take advantage of those failures.
It's kind of like [[Design my life to live]] so the conditions for at least survival are maintained by being paranoid about collapse and fragility.
"In software development, a given software system's ability to [tolerate failures](https://en.wikipedia.org/wiki/Fault_tolerance "Fault tolerance") while still ensuring adequate [quality of service](https://en.wikipedia.org/wiki/Quality_of_service "Quality of service")—often generalized as _resiliency_—is typically specified as a requirement. However, development teams often fail to meet this requirement due to factors such as short deadlines or lack of knowledge of the field. Chaos engineering is a technique to meet the resilience requirement.
Chaos engineering can be used to achieve resilience against infrastructure failures, network failures, and application failures." (wikipedia)
This matters because you can design and test for resiliency:
"By regularly "killing" random instances of a software service, it was possible to test a redundant architecture to verify that a server failure did not noticeably impact customers."(wikipedia)
##### What would the opposite argument be?
You can never know the real risks you face, so best to approach the world with a goal of always strengthening: [[Barbells make you stronger]], use a barbell philosophy of paranoia and optimism.
tags: #note/thing | #on/resiliency | #on/design | #on/testing
##### Sources:
[wikipedia/chaos engineering](https://en.wikipedia.org/wiki/Chaos_engineering) Accessed 2023-03-13