Bifurcación (desarrollo de software)

En ingeniería de software se considera una bifurcación (en inglés: fork) al desarrollo de un proyecto informático tomando como base un código fuente que ya existe o a la ramificación de un proyecto madre en varios proyectos que son independientes entre sí y que cuentan con objetivos o desarrolladores diferentes.[1]​ Como resultado de una bifurcación se pueden derivar varios proyectos de uno preexistente, los cuales pueden intentar cubrir necesidades distintas aunque similares o implementar diferentes soluciones con el fin de abordar los mismos problemas pudiendo llegar a competir entre ellos.En una bifurcación, ambos lados asumen derechos de autor idénticos pero típicamente solo el grupo de mayor tamaño, o el que contiene al arquitecto original, retendrá el nombre original completo.El resultado puede ser tener dos proyectos que evolucionan en paralelo, cada uno especializado en adaptarse a unas condiciones distintas al otro.En proyectos de software privativo las bifurcaciones usualmente se llevan a cabo para crear versiones de un mismo programa que funcionen en diversos sistemas operativos, aumentando así la cuota de mercado.
Línea de tiempo de las bifurcaciones de las distribuciones Linux