Nice article John. The team I manage solves this issue mostly though iterating quickly. By keeping our cycles quick, they don't have to expend to much power/time thinking ahead of all possible bugs/edge cases. When we discover an edge case, it is fixed within a week!