I would like to address the idea of working backwards in biology. I can see how ridiculous this methodology would seem to the lay person. However, it is a bit similar than say the linux kernel. Biology is a three letter code of chemical components. These three letters have known translations and the chemistry of mutations is very well understood. In addition, at some point, multiple species arise from a common ancestor. These lineages of speciation are fairly well understood. Basically, you work backwards so that you get to a common ancestor via the most probable mutation path. I would be like if you took the kernel example, except that we know pretty well the probability of programmers to use certain formatting/variables and there were many many more kernels that arose from a common kernel. That way predicting the order of past events could be estimated fairly well. In addition, with biology, the translations are known so it would be like compiling and running the code with each backwards guess to make sure that there wouldn’t be an endless loop or crash. Hopefully that somewhat makes sense.