Tenemos un sitio web grande (más de 1200 horas) que tiene mucha deuda técnica. Esto se debe principalmente a las siguientes razones (habituales).
- Múltiples programadores que van y vienen durante el desarrollo.
- Cambio de especificaciones durante el desarrollo.
- Numerosas funcionalidades agregadas agregadas (en poco tiempo).
El cliente quiere muchas nuevas funcionalidades, y eso básicamente se reduce a trabajar en este proyecto semanalmente durante más de 10 horas.
Debido a la deuda técnica, pasamos MUCHAS horas arreglando o investigando problemas, que generalmente encuentran su origen en uno de los siguientes:
- Un insecto descarado y tonto que hace llorar a la gente.
- Una nueva característica da como resultado lo anterior porque no habíamos previsto todos los lugares donde la nueva característica tendría influencia.
- Algunos otros problemas que hemos enfrentado (por ejemplo, migración del servidor, actualizaciones)
Tenemos problemas a diario y hemos tratado de hacer lo siguiente para detener esto:
- Se creó documentación técnica sobre la importación, el pago y el funcionamiento general del sitio web.
- Tenga una reunión al comienzo de la semana, discutiendo los problemas o mejoras actuales y cómo deben abordarse.
- Tener un plan de prueba. El programador A prueba B, B prueba C y C prueba A. Entonces nuestro Gerente de Proyecto lanzará algunas pruebas. Con respecto al impacto de la función, la lanzamos a un entorno de ensayo y dejamos que el cliente compruebe por sí mismo.
El problema es que los problemas continúan sucediendo ... y de alguna manera no podemos controlarlo. Las nuevas características aún causan errores, y los errores antiguos siguen diciendo hola. De alguna manera, tal vez debido al tamaño del proyecto, parece que no podemos controlarlo.
Supongo que hay muchos programadores trabajando en proyectos más grandes que esto. Por eso llego a mi pregunta:
¿Qué podemos hacer, o qué es lo que hacer para evitar estos problemas en grandes proyectos?
Edición menor, información adicional:
- Usamos control de versiones (SVN).
- Tenemos proceso de desarrollo DTAP.