Release Management
Cuando son conocidos los requerimientos, dependencias y plazos, se comienza la construcción de la nueva entrega. El primer paso es el diseño de la nueva entrega. Se puede hacer usando técnicas de desarrollo de software, por ejemplo UML. El diseño es convertido en código fuente de algún lenguaje de programación (por ejemplo C). Se da a conocer a los desarrolladores la fecha de término para cambios (congelar el repositorio). Las piezas de código, clases, archivos de configuración, etc son entonces traídas desde el repositorio mediante un checkout, compiladas, enlazadas y finalmente armadas en un solo programa, un built. Se debe colocar una marca (tag) en el repositorio sobre la versión que fue traída, para posteriormente conocer el estado de avance de la versión usada por el usuario.
Ley de Linus
He aquí una diferencia esencial entre los dos estilos. En el enfoque usado para desarrollar software propietario, los errores y problemas de desarrollo son fenómenos complejos y profundos. Generalmente hacen falta meses de revisión exhaustiva para que unos cuantos confíen en que los errores han sido eliminados. Por eso se dan los intervalos tan largos entre cada versión que se libera, y el inevitable desencanto cuando estas versiones, largamente esperadas, no resultan perfectas.