Estoy preparando una memoria sobre "¿Por qué (algunos) proyectos de TI se vuelven demasiado complejos y cómo evitarlos?".
Si alguna vez ha encontrado proyectos que tienen códigos complejos o fueron difíciles de mantener, ¿cómo logró pasar por ellos?
Si tiene que elegir entre varias aplicaciones para usar en su proyecto, ¿cuál sería su principal prioridad en su funcionalidad y por qué?
Respuestas:
Documento, documento, documento!
Trabajo con un código MVC bastante complejo, y solo ahora estoy realmente entendiendo cómo funciona, en lugar de aceptarlo por fe. Cada vez que hago un cambio que me cuesta entender, pongo un comentario en el código en esa sección para ayudar a aclarar lo que está sucediendo. Puede que no me haya ayudado ya que no estaba allí, pero ayudará a la siguiente persona. También me gusta pedirle a otros programadores a mi alrededor que observen mis cambios para ver si están claros.
Mi empresa tiene un wiki interno que utilizamos para documentar muchas de las metatareas que hacemos, como problemas del servidor virtual, consultas comunes, etc. para ver si hay un wiki en él. Si no hay, haré uno. Más personas se han involucrado recientemente, así que espero que crezca más rápido. Creo que realmente ayuda a comunicar las tareas más mundanas que tenemos.
fuente
No creo que puedas evitar por completo la complejidad con el tiempo, pero hay formas de mitigarla:
Todo esto depende de alguna manera de lo que realmente implica el proyecto. A veces, por ejemplo, será beneficioso aceptar la complejidad a cambio del rendimiento. No todo el código complejo es necesariamente algo malo. Sin embargo, en general, creo que seguir estas pautas debería ayudar.
fuente
deuda técnica
refactorizar para eliminar
cambios comerciales
adaptar y borrar
cambios de herramienta
nuevas herramientas, la misma arquitectura antigua = falta de coincidencia de impedancia
fuente
Además, resista la tentación de agregar hacks rápidos porque el código ya es complejo / malo / hacky. En mi experiencia, terminarás con una mayor complejidad exponencial.
fuente