In 1942, Isaac Asimov introduced the sci-fi literature world to the Three Laws of Robotics:
A robot may not injure a human being or, through inaction, allow a human being to come to harm.
A robot must obey the orders given to it by human beings, except where such orders would conflict with the First Law.
A robot must protect its own existence as long as such protection does not conflict with the First or Second Law.
Thinking about software application development, debugging, maintenance, deployment and overall application evolution, I propose that the same law structure be applied to software: