Dividiendo los programas de ajedrez en estas dos piezas, los desarrolladores sólo tienen que programar la interfaz de usuario o el motor, sin la necesidad de escribir ambas partes del programa.