Costruire un pezzo di software funzionante sembra incredibilmente difficile. Ma costruire un pezzo di software difettoso e poi ripararlo sembra fattibile.