Lo que debes hacer es mejorar en la abstracción. Retrasar las decisiones arquitectónicas el mayor tiempo posible. El famoso “Tío Bob”, en una charla en una conferencia de Ruby que cubre una variedad de mejores prácticas de ingeniería de software, con aplicaciones web específicamente en mente, utiliza una de sus aplicaciones de prueba como ejemplo. La idea era que parecía una conclusión inevitable que tendrían que integrar una base de datos en algún momento. Él y su equipo llegaron tan lejos como pudieron sin integrar una base de datos, codificando contra contratos (por ejemplo, interfaces en Java) en lugar de una base de datos real.
Parecía que era hora de finalmente conectar la base de datos, ya que necesitaban poner algunos datos reales en el sistema. Pero luego alguien les sugirió que podían burlarse de la base de datos con archivos. Así que pudieron hacer lo que tenían que hacer sin la base de datos, simplemente usando los archivos. Eventualmente, se les ocurrió que el almacenamiento basado en archivos era lo suficientemente bueno, y terminaron enviando la aplicación de prueba sin soporte para una base de datos. Más tarde, alguien los criticó por el soporte de MySQL y cedieron, pero la implementación en ese punto fue trivial.
Si diseña su arquitectura por completo antes de comenzar su proyecto, está en desventaja porque carece del beneficio de cualquiera de los conocimientos que obtiene al implementar su proyecto. Sin embargo, si implementa las cosas de una manera que retrase sus decisiones arquitectónicas el mayor tiempo posible, cuando tenga el mayor conocimiento posible antes de tomar cada decisión, su arquitectura se acercará mucho más a lo que hubiera deseado al finalizar tu proyecto.
- ¿Qué es la especificación de requisitos de software (SRS)?
- ¿Cuál es el mejor libro sobre estimación de software?
- ¿Cuántos años llevaría desarrollar la informática de voltaje variable para convertirse en una tecnología de consumo para el mercado masivo?
- ¿Cuál es la mejor manera de organizar las pruebas en un proyecto en C?
- ¿Cuál es el futuro de la industria del software en GUWAHATI?
Aquí está el video. Si tienes interés en Agile, el tío Bob es el que quieres escuchar: