Good programs are written in many small modules. A change to one can make a program suffer or perform better, or do little or nothing to the functioning of the overall program. The function of a module often does change to essentially become a new feature. And often change over time becomes so much that the interface between the newest module (that's in the latest version of the program) and the old, original program doesn't work anymore (speciation).
The problem here would be the number of base pairs that are required to code for even a small protein. Even simple proteins are made up of many Amino Acids placed in the correct order by the DNA. I am actually alreadying breaking down the DNA into small subroutines - the codings for individual proteins. However, even these smaller chunks are incredibly complex and to code for them requires many base pairs to be in the correct order.