Una de ellos es simplemente crear varias versiones del mismo programa en diferentes árboles de código fuente, es decir, la versión de Windows de un programa puede tener un conjunto de archivos de código fuente y la versión de Macintosh podría tener otro, mientras que un software libre con sistema Unix podría tener otro.