Pregunta

Si está familiarizado con la frase "construir uno para tirar", bueno, parece que lo hemos hecho;Estamos llegando a los límites de la versión 1 de nuestra aplicación online.Es hora de limpiar las cosas:

  • Reorganizar el código y la interfaz de usuario
  • Unificando procesos de UI
  • Agregar más funcionalidad
  • Construyendo para el futuro
  • Modificar la estructura de nuestra base de datos para manejar todo lo anterior

¿Cuál es la mejor manera de hacer que esta transición suceda?

Queremos evitar enviar a todos nuestros usuarios a un nuevo sistema (una vez que esté terminado)...Se asustaban y no podíamos manejar la carga de llamadas.Nuestros usuarios abarcan toda una gama, desde tipos de software usados ​​para escribir técnicamente competentes hasta aquellos que no saben qué es HTML.

¿Deberíamos comenzar una nueva "instalación" de nuestro sistema y trasladar a los usuarios a él gradualmente después de asegurarnos de que este nuevo diseño resuelva suficientemente los problemas de la versión 1?

¿Deberíamos (de alguna manera) cambiar cada módulo de nuestro sistema de forma incremental y gradual?Esto puede resultar difícil porque el diseño de la base de datos cambiará, lo que tendrá que modificar el "código central" y el código de varios módulos circundantes.

¿Es común tener un conjunto de clientes "beta tester" confiables y pacientes que utilizan una versión de vanguardia de una aplicación?(El objetivo aquí sería obtener comentarios y probar errores en un nuevo sistema)

¿Algún otro consejo?¿Experiencia de primera mano?

¿Fue útil?

Solución

La respuesta, me temo, es que depende.Depende del tipo de aplicación y del tipo de usuarios que tengas.Sin saber cuál es el sistema y el alcance de los cambios en la versión, es complicado ofrecer una respuesta.

Dicho esto, existen algunas reglas generales.

En primer lugar, evitar el lanzamiento del big bang.Cualquier lanzamiento de un sistema va a tener problemas.La industria está plagada de proyectos en los que la gente pensó que el lanzamiento bang-bang era una gran idea, solo para que los problemas iniciales hicieran que el lanzamiento fracasara. Cuil Fue una causalidad reciente de alto perfil del lanzamiento del Big Bang.

Para que los problemas iniciales sean manejables, es necesario trabajar inicialmente con un pequeño número de usuarios y luego aumentar lentamente el número de usuarios.

En segundo lugar, lo que absolutamente debes hacer positivamente es poner al usuario primero.El usuario debería realizar la menor cantidad de trabajo posible para utilizar la V2 del sistema.La cantidad ideal de trabajo sería cero.

Esto significa que si elige migrar usuarios lentamente de un sistema a otro, son responsables de asegurarse de que todos sus datos y configuraciones se migren.Por ejemplo, no haga nada estúpido como decirle al usuario que debe usar V1 para todos los registros antes del 9/12/2008 y V2 para todos los registros posteriores.

El objetivo del lanzamiento de la V2 debería ser hacer la vida de los usuarios más fácil, no hacerla innecesariamente más difícil.

En tercer lugar, tenga un programa beta.Esto se aplica incluso a las aplicaciones de Intranet.Desarrollar una aplicación es muy parecido al método de Newton-Raphson para encontrar la raíz de un polinomio.Usted adivina lo que quiere el usuario, se lo entrega, el usuario brinda retroalimentación y, de manera lenta pero segura, cada iteración lo acerca a la solución del problema.

Un programa beta le ayudará a encontrar la raíz mucho más rápido que simplemente imponer nuevas versiones a las personas sin tiempo para que comenten los cambios.Las versiones beta ayudan a que los usuarios se incorporen antes y a que se sientan incluidos en el proceso;cuya importancia no puedo subrayar lo suficiente.

Otros consejos

Acabamos de terminar de implementar un nuevo sistema CRM para nuestros usuarios y déjenme decirles que fue una idea TERRIBLE hacerlo de esa manera:Fue extremadamente doloroso para mi equipo y para nuestros clientes.

Utilizaría todos los medios posibles para realizar lanzamientos graduales, incluso si eso significa hacer más trabajo.Estará agradecido porque no tendrá que realizar esfuerzos heroicos para mover todo y sus clientes apreciarán la posibilidad de conocer el producto poco a poco.

¡Espero que ayude!

estoy de acuerdo con Esteban que las liberaciones graduales son las mejores.Es como remodelar una casa:Terminar con esto parece una buena idea inicialmente.Pero significa que tienes que planificar todo por adelantado, contratar a un grupo de contratistas y mudarte.Entonces algo cambia en el plan o un contratista desaparece y todo el tiempo que esperaba ahorrar se acaba.Mientras tanto, el cambio gradual brinda a todos la oportunidad de detenerse y pensar entre pasos.A veces puedes evitar cambios posteriores cuando los cambios anteriores funcionan mejor de lo planeado.

Trabajo en un sistema que tenía un gran problema de escala.Hicimos una lista de todos los cambios que pensamos que necesitaríamos y los priorizamos según su probable impacto.Luego comenzamos a hacer un cambio a la vez.Aproximadamente a la mitad de la lista, descubrimos que habíamos resuelto el problema de escala.Todavía tengo la lista, pero es posible que nunca necesite terminarla.Soy libre de agregar funciones y resolver otros problemas.

Por supuesto, hay ocasiones en las que es mejor hacer el esfuerzo y derribarlo todo.Pero eso es mucho menos común de lo que la gente tiende a creer.Y para los sistemas operativos críticos, la decisión de "derribarlos" puede ser fatal.Mire los grandes proyectos gubernamentales que todos coinciden en que deben llevarse a la era informática moderna, pero que no pueden hacerlo porque se perderá algún servicio vital.Si la filosofía hubiera sido un cambio gradual, tal vez se habrían modernizado pieza por pieza.

Suena como rearquitectura incremental debería ser su ágil frase de moda preferida.

Nunca lo he hecho en una aplicación web, pero he pasado por algunos cambios bastante radicales en la aplicación cliente que se realizaron de forma incremental.Si invierte un poco de tiempo por adelantado para asegurarse de que los trabajos estén secuenciados de una manera bastante sensata, puede funcionar bien.Una pequeña inversión en buenas ayudas para la refactorización será muy útil si aún no las tiene.Puedo recomendar personalmente JetBrains Resharper Si está utilizando .NET y está basado en Java, creo que IntelliJ IDEA incluye una funcionalidad similar.

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