Pregunta

Supongamos que está en medio de un proyecto de larga duración (largo plazo = varios años) y, como era de esperar, surgirán varias cosas con nuevos lanzamientos.Es posible que haya un nuevo .Net Framework con características completamente nuevas (p. ej.Linq, Entity Framework, WPF, WF...), un nuevo Visual Studio o V.next de tu Biblioteca de Control favorita, un nuevo Mock Framework y muchas cosas más.¿Cuáles son sus pautas para manejar estas actualizaciones tecnológicas?¿Los adoptas instantáneamente o los ignoras hasta el final del proyecto?¿Tiene diferentes pautas para diferentes cosas (herramientas, marcos, material de soporte)?

¿Fue útil?

Solución

En mi experiencia, estas decisiones se hacen siempre sobre una base caso por caso. Se consideran varios factores, incluyendo:

  1. ¿Cómo madura es la nueva tecnología? ¿La organización les gusta estar a la vanguardia en el trabajo con bleeding edge nuevas tecnologías, o se prefiere trabajar con herramientas y metodologías probadas?

  2. ¿Qué habilidades tienen su gente? ¿Son consistentes con el uso de la nueva tecnología, o se necesita más entrenamiento? Será mejor productividad son mayores que el tiempo que se tarda en llegar a la velocidad?

  3. ¿Qué inversión tiene usted en la tecnología existente? ¿Cuál es el costo de trasladar a la nueva tecnología? La cantidad de retrabajo y reescritura del código está involucrado?

  4. ¿Cuál es el requisito? ¿Está apoyado por el techology existentes, o nuevas herramientas necesarias para cumplir con el requisito?

  5. ¿Cuáles son las expectativas de rendimiento? ¿La nueva tecnología proporciona una mejora de rendimiento que no puede ser satisfecha con la vieja tecnología?

  6. ¿Qué pasa con la cultura tecnológica? Es la organización específica del proveedor (por ejemplo, una tienda de Microsoft)? Puede abrir el código de utilizar código?

  7. ¿Cuál es el alcance del proyecto? Es un gran proyecto que se beneficiaría de apoyo a tecnologías como marcos y herramientas, o se trata de un pequeño proyecto que se pesaba demasiado abajo y complicado por estas cosas?

  8. ¿Cómo se apoya la nueva tecnología? ¿El vendedor tiene una buena documentación? ¿Hay alguien que puede hablar a si tiene problemas? O es usted una organización que tiene la gente que sabe cómo resolver los problemas sin un contrato de soporte?

  9. ¿Es la tecnología cómoda para trabajar con? ¿Le parece tener sentido? ¿Está limpio y elegante? ¿Hay otras personas parece que les gusta? Son otras las personas que tienen problemas con ella?

  10. ¿Es la tecnología de la última sabor de la semana? se ha demostrado su eficacia en el campo de batalla para producir resultados tangibles, o es sólo una religión?

  11. ¿Cuánto tiempo tiene que aprender la nueva tecnología y limar las torceduras? ¿Los beneficios superan los costos?

Como un breve ejemplo, he elegido Enlace a SQL para mi proyecto más reciente, porque el proyecto era lo suficientemente complejos como para justificar un ORM, L2S funciona bien y es ligero, somos un Microsoft Shop, y es mi sentido de que el marco de la entidad no está listo para el prime time (aunque Microsoft dice que va a ser la salida al marco para el futuro).

Otros consejos

Stick con lo que has comenzado con.

Un proyecto grande y larga ejecución a menudo viene con una enorme y de gran complejidad código base. Cualquier cambio o actualización a una nueva versión de una biblioteca pueden añadir errores en formas muy sutiles e inesperadas.

También: Para grandes proyectos de las herramientas y librerías utilizadas deberían haber sido probado y evaluado en la fase de diseño. A menos que encuentre un show-tapón o un problema de seguridad que lo mejor es no actualizar.

Siempre recuerde: No cambiar de caballo en medio de un arroyo. : -)

Yo diría diferentes factores arrimar el hombro, como -

  1. Diga un software está llegando a su fin de vida, por ejemplo, en abril pasado, Microsoft retiró el soporte estándar para SQL Server 2000, y su producto lo utiliza entonces su sabio ir para la próxima versión de SQL Server en su próxima versión.
  2. Otro factor que entra en juego es la cantidad de valor que hace las nuevas características de la última versión de un software traería a su producto. Bien puede ser el caso de que la nueva versión del marco .NET tiene algo que no añade ningún valor a su producto, a continuación, que no construye un caso fuerte para actualizar.
  3. El presupuesto es también un factor importante. Creo que se necesita para actualizar las licencias con el fin de intensificar a la próxima versión a menos que ya son parte de algo así como una garantía de software.
  4. Formación para el equipo también es un factor. Si la última versión se va a añadir a su producto, entonces usted tendrá que entrenar a su equipo también.

Bueno, podría haber otros factores contando también. Estos fueron los de la parte superior de la cabeza. Espero que ayude.

aplausos

Si estamos hablando de un ejemplo-marco específico, el mayor consejo que voy a dar es mantener el sistema y su aplicación por separado. Esto es por qué amo patrones tales como el Modelo-Vista-Controlador -. Mantiene su código modular y significa que puede actualizar secciones sin romper la aplicación como un todo

En un nivel más práctico, si el marco tiene un repositorio Git o SVN, obtener el directorio habitual 'sistema' de la cesión temporal, entonces se puede llamar 'svn update' de vez en cuando para mantenerse al día con la última y más grande construye.

Yo sugeriría que el proyecto no dura tanto tiempo. Desarrollar la aplicación en piezas más pequeñas con iteraciones cada par de meses. De esta manera, la nueva tecnología sale, se puede hacer el cambio necesario y aplicar actualizaciones a medida que avanza en lugar tiene que decidir para reconstruir toda la aplicación. Como usted dice, tratando de desarrollar toda la aplicación como cambian las cosas simplemente no funciona.

Como dijo otro cartel, ciertamente es una cuestión de caso por caso.Lo que se puede actualizar y cuándo está determinado principalmente por lo difícil o fácil que sea probar la nueva versión del sistema.Tener un conjunto de pruebas automatizado integral para su aplicación ayuda mucho con esto.

Generalmente, trato de actualizar a la última versión estable de las bibliotecas, etc., con la mayor frecuencia posible, porque eso facilita el mantenimiento.Si no actualiza, es posible que tenga que parchear o solucionar errores en la versión de la biblioteca que está utilizando.Si actualiza con menos frecuencia, cada actualización supondrá más trabajo porque tendrá que afrontar más cambios y ha pasado más tiempo desde la última vez que tocó el sistema, por lo que recordará menos sobre él.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top