Redundancy is a technique employed in an unlimited number of ways to improve the quality of hardware systems. Redundancy can also be used to improve software, specifically in the areas of program and data structures, programming language design, and programming team utilization. In hardware, redundancy makes up for potential material malfunctioning.