A menudo me doy de bruces con comentarios de gente que pide un WoW 2.0 o que dicen que el motor gráfico del juego es muy antiguo. Sin embargo, lo que muchos no consideran es que World of Warcraft ya ha alcanzado la versión 11.0, tras múltiples expansiones, revisiones y mejoras continuas.
Esta constante evolución del juego ha sido un proceso meticuloso y extenso, con el objetivo de mantenerlo actualizado y atractivo para nosotros los jugadores. A través de la paradoja del barco de Teseo, se puede entender mejor cómo un software tan complejo y antiguo como el motor de World of Warcraft ha sido transformado repetidamente sin perder su esencia original y sin ser el mismo que en el año de lanzamiento.
Según la paradoja, si cada parte del barco de Teseo se reemplaza gradualmente, ¿sigue siendo el mismo barco? Del mismo modo, en el desarrollo de software, si se realizan revisiones y re-escrituras constantes del código, ¿sigue siendo el mismo software?
Desde su lanzamiento, el motor de World of Warcraft ha experimentado múltiples revisiones y re-escrituras para adaptarse a nuevas funcionalidades, mejoras de rendimiento y cambios en la tecnología. Este proceso es esencial para mantener el software actualizado y relevante. Sin embargo, hay un desafío significativo que surge con el tiempo: la antigüedad del código no solo afecta tanto a su rendimiento potencial, sino más al conocimiento y la comprensión del código por parte de los desarrolladores.
Cuando nuevos desarrolladores se incorporan al equipo, se enfrentan a un código que ha sido modificado y extendido durante años. Es improbable que lean y comprendan todo el código existente, ya que puede ser extenso y complejo. Esta falta de familiaridad con el código puede llevar a varios problemas:
- Desconocimiento de la Base del Código: Los desarrolladores nuevos pueden desconocer la lógica y las decisiones de diseño originales, lo que dificulta identificar dónde y cómo hacer cambios o mejoras. Cada módulo o función podría tener dependencias y particularidades que no son evidentes a primera vista.
- Incremento del Riesgo de Errores: Hacer cambios en un código desconocido aumenta el riesgo de introducir errores o afectar funcionalidades existentes. La falta de una comprensión completa del sistema puede llevar a decisiones de diseño subóptimas.
- Curva de Aprendizaje Pronunciada: Los nuevos desarrolladores deben invertir tiempo considerable en aprender el código existente, lo que puede retrasar el progreso del proyecto y disminuir la eficiencia del equipo.
- Pérdida de Conocimiento Histórico: Con el tiempo, los desarrolladores que participaron en la creación y evolución del código original pueden dejar la empresa, llevándose consigo el conocimiento histórico y contextual del sistema. Esta pérdida de conocimiento complica aún más el mantenimiento y la evolución del software.
A estos problemas son los que se refiere Blizzard cuando hablar de que su motor es muy antiguo. No tiene tanto que ver ni con rendimiento ni con capacidades, sino con comprensión del código de su equipo de desarrollo.
Este ciclo es perpetuo en proyectos con soporte a largo plazo. Cada vez que un desarrollador nuevo entra al equipo, se enfrenta a los mismos desafíos, independientemente de cuántas veces se haya revisado o reescrito el código. Por lo tanto, el problema no reside tanto en la antigüedad del código, sino en la continuidad del conocimiento del equipo de desarrollo.
Ese es el problema que afrenta Blizzard. Y poco o nada tiene que ver con el “motor va mal”.
Edito para corregir mi dislexia, gracias a Steinn
Un saludote ^_ ^