Or why having magic in your software is a bad idea