martes, 12 de diciembre de 2006

Reglas para el buen desarrollo de un producto

En el blog Product Musing, hubo una entrada el pasado 5 de Noviembre sobre 20 reglas para conseguir el lanzamiento de un producto software con éxito (en inglés). No es que esté de acuerdo al 100% con todos los puntos, pero realmente, dan en que pensar, o al menos, para echarse unas risas.

Paso a comentar las que me han parecido más acertadas:

  1. Asegúrate de saber qué estás desarrollando. Muchos de los retrasos en los proyectos se deben a que "el cliente", el/los analista/s, los programadores, etc. (inclúyete en el pack correspondiente), no saben realmente cuál es el objetivo final del proyecto. Reconoce, añade en una actualización del post, que lo que estás desarrollando ahora mismo, cambiará casi de forma irremediable en el futuro hasta completar el proyecto, así que asegúrate de que tus procesos, clases, sistemas o subsistemas, admitirán estos cambios preparándolos para ello desde el origen.
  2. Trabaja solo en los puntos necesarios para lanzar la versión 1.0
    • Sin olvidar lo mencionado en el punto anterior, claro...
  3. Asegúrate de mantener un prototipo siempre funcional
    • Si lo vas actualizando con las últimos desarrollos, y lo mantienes accesible a los usuarios finales, podrás ir corrigiendo o debatiendo con ellos desde la interfaz a posibles malentendidos en las funcionalidades de la aplicación, con lo que podrás, entonces, anticipar estos cambios en las partes que aun no has empezado o tienes entre manos...
  4. No hagas del proyecto un escaparate para mostrar lo "guay" que eres
    • Aquí... no es que discrepe, pero... si tu proyecto puedes aprovecharlo como escaparate del buen desarrollo y buen hacer de tu empresa o grupo de trabajo, es posible utilizarlo como un trampolín para futuros proyectos... o a la inversa, si la picias o el cliente no queda contento... una puerta abierta menos...
  5. Lo breve, si bueno, dos veces bueno... osea, mejor las cosas pequeñas
    • No seas mal pensado... estamos hablando de los métodos, ficheros, procesos, funciones....
  6. Si alguien no está en sintonía con el resto del grupo...
    • Habla con él/ella en privado
    • Reasígnalo o cambia sus tareas o funciones
    • Habla con él/ella en privado
    • Y si eres tu mismo... recuerda lo del escaparate...
  7. Diseña los módulos o clases construyendo interfaces, de forma que sea accesible facilmente por terceros módulos, reutilizable y facil de implementar cambios masivos.
    • Documenta estas interfaces a la perfección, pero no los módulos o clases que usa la interface, eso sí, mantén una escrupulosidad absoluta en la facilidad de lectura y mantenimiento del código de estos módulos.
  8. Cuando estés en el proceso de debug de un problema, nunca digas ¡¡¡ Pero si en mi equipo funciona !!!
    • ¿Quién no lo ha dicho alguna vez?
  9. Si hay algún fallo de funcionalidad o algún bug grabe en la parte ya desarrollada, no continues con partes de código nueva hasta haber resuelto estos problemas
  10. Si alguna parte del código es complicada de seguir el Lunes a primera hora, antes del primer café, rediséñalo.

Después de todos estos puntos, sería casi obligado hablar de algunos temas importantes, y debatir sobre ellos:

  • Tomas de especificaciones.
  • Reuniones de seguimiento con los clientes/usuarios y con el equipo de desarrollo.
  • Equipos multidisciplinares o equipos de especialistas
  • Prototipos, maquetas, beta releases...

Y prometo ir ocupándome poco a poco de estas cositas... por supuesto, necesito de tu colaboración, opiniones, críticas, experiencias... no te cortes...

No hay comentarios: