software engineering redundancy