This gets quite complicated, but you are presumably in the footnote section for more complicated answers, so I will gander to tell you. For one, the hardware/software distinction is not totally apt. After all, the protein-coding genes are “codes” for the protein, not the protein itself. Ah well, for a very crude analogy it probably holds up.
Perhaps software/firmware instead of software/hardware?
Perhaps software/firmware instead of software/hardware?