Rules for software engineering