¿Liberar primero o documentar primero?

23

He estado trabajando en un proyecto durante un par de años y estoy empezando a reunir una base de usuarios decente. He creado una página de proyecto con documentación básica, pero en este momento no es mucho más que una pregunta frecuente. Sé que necesito mejorarlo para que sea más informativo para los usuarios nuevos y avanzados, y eso es lo siguiente en mi lista de tareas pendientes para el próximo lanzamiento.

Sin embargo, la próxima versión tiene características que la base de usuarios está ansiosa por obtener. Estoy preparado para lanzarlo ahora, está empaquetado y listo para funcionar. Solo necesito implementarlo en los servicios de distribución apropiados.

Al punto. Las características son importantes para mis usuarios, pero la documentación es importante para mí. ¿Debo esperar para liberar hasta después de reescribir la documentación? Mi base de usuarios actual es lo suficientemente inteligente como para entender cómo usar las nuevas funciones, así que eso no es lo que me preocupa. Puede llevar un par de semanas terminar los documentos, ya que tengo un tiempo libre limitado para trabajar en este proyecto, pero la comunidad me asaría rápidamente si los hiciera esperar más.

¿Tiene razón el cliente en este escenario? ¿Debería una característica fantástica y directa para los usuarios existentes tener prioridad sobre la documentación sólida para los nuevos usuarios?


Actualización: ¡ Guau, tantas respuestas excelentes y de alta calidad! Realmente me has ayudado a comprender mejor cómo debería interactuar y apoyar tanto el proyecto como a sus usuarios. ¡Un millón de gracias!

ciberbit
fuente
14
Sí, el cliente tiene razón. Implemente el lanzamiento, luego pase las dos semanas obteniendo la documentación. Ya nos dijo que la base de usuarios no se verá afectada negativamente por la falta de documentación, y solo faltan dos semanas más. Si esto fuera un verdadero concierto, su cliente u organización lo estaría asando en un asador real, porque dos semanas sin un lanzamiento son dos semanas menos para ganar cuota de mercado.
Robert Harvey
3
Dependiendo del proyecto, puede lanzar la nueva versión en una rama separada como "beta" o "vista previa".
CodesInChaos
2
¿Qué tipo de documentación: documentación de usuarios finales o documentación de código fuente? ¿O es su proyecto de algún tipo donde no hay distinción entre ellos?
Doc Brown
55
No parece haber ningún conflicto aquí: si está empaquetado y listo para funcionar, ¿por qué no puede liberarlo y trabajar en la documentación a continuación, para una actualización de solo documentos en dos semanas? ¿Le preocupa que la publicación genere mucho trabajo (en errores reportados, etc.) que le impedirá trabajar en los documentos? La razón por la que no puede hacer ambas cosas debe tenerse en cuenta en las respuestas.
Steve Jessop
@DocBrown En este caso, es la documentación del usuario. La documentación del código fuente sería útil solo para mí.
cyberbit

Respuestas:

45

Simple: ¡lanza una versión beta! Luego, cuando finalice la documentación, realice el lanzamiento final de la nueva versión.

Si tiene usuarios dispuestos a probar las cosas nuevas, entonces aproveche todo eso. Obtendrá informes de errores, probablemente recibirá preguntas de la comunidad sobre los puntos difíciles para que sepa dónde concentrarse en la documentación, etc. También es posible que desee modificar algunas cosas en función de los comentarios de los usuarios, que pueden afectar la documentación.

Básicamente, todos ganan.


Una razón para no hacer un lanzamiento anticipado es que, si cree que sus usuarios no serán receptivos a una "versión beta", entonces debería pensarlo dos veces antes de hacerlo, pero siguiendo lo que escribe, parece que estarían contentos con eso.

Otra razón sería, si hay dificultades técnicas para hacer una versión beta utilizando cualquier canal de versión que utilice. Entonces podría ser más complicado de lo que vale la pena hacer versiones beta y finales por separado. Si cree que su software está completo, entonces en este caso me inclinaría por la versión temprana, actualice la documentación cuando esté listo. De lo contrario, existe el riesgo de que la documentación se retrase, y luego se retrase la publicación completa o termine lanzando sin la documentación final de todos modos, así que hágalo ahora.

Hyde
fuente
1
Lo he hecho en el pasado para herramientas pequeñas tantas veces ... el código está hecho, todo parece funcionar, pero es el final del fin de semana y no puedo molestarme en terminar la documentación ahora. Simplemente lo empaqueto como una versión beta y listo, si querías mucho la nueva versión, aquí está, de lo contrario, tendrás que esperar el próximo fin de semana.
Pimgd
¡Realmente consideré una versión beta antes de preguntar aquí! El problema con esa idea es que los canales que uso me obligan a escribir una aplicación completamente separada para tener lanzamientos divididos. Comencé a trabajar hacia una versión beta separada, pero la logística es difícil y no parecía valer la pena en esta etapa del proyecto.
cyberbit
En cambio, lo que elegí hacer con la función es convertirla en una versión beta opcional en una versión normal. Esto asegura que las personas que desean una experiencia estable la conserven, y aquellos que desean la nueva característica pueden usarla, sabiendo que a veces puede romperse. Luego, en una versión futura, puedo mover la función de opt-in a integrado, eliminar la designación beta y todo está bien en el mundo.
cyberbit
3
Apache usa "Release Candidates" para marcar un proyecto que está funcionalmente completo, pero solo está validando que el paquete tiene todos los recursos y está realmente listo para el horario estelar. Parece que está más allá de la etapa beta (funcionalidad madura pero aún no completa).
Berin Loritsch
@BerinLoritsch He visto eso usado antes. Esa etiqueta en realidad encaja bien en este caso. Supongo que poner una función de aceptación en un lanzamiento normal es (en mi caso) algo así como un candidato de lanzamiento. Es estable, funciona, pero aún no ha visto la luz.
cyberbit
15

Si te entendí bien, estás haciendo este proyecto en tu tiempo libre y sin dinero . Si este es el caso, haga lo que lo haga sentir mejor (los usuarios esperan, documenten su tiempo). No debe sentir la presión de sus "usuarios". Muchas personas escribieron sobre esto en Internet (grandes autores y colaboradores de FLOSS que sintieron la presión).

Pero, si le pagan o recibe algún beneficio, haga lo que sus usuarios quieren. Esto significa hacer lo que sea mejor para sus clientes o usuarios , en ese caso, simplemente libérelo y documente en su tiempo. Dijiste que encontrarían su camino, así que no debería ser un gran problema.

pietromenna
fuente
Lo entendiste bien! Este es un concierto sin pagar. Pero obtengo algunos beneficios, ya que soy uno de los usuarios avanzados de los que hablé. : P Sin embargo, lo que dices tiene sentido, ¡y agradezco tu respuesta!
cyberbit
4

En general, hay dos tipos de documentación: la técnica que documenta su código (clases, unidades, etc.) y cómo las nuevas funciones pueden operar e implementarse en el código y la documentación del usuario. En mi opinión, la documentación técnica es imprescindible, especialmente si el desarrollo de software no es su trabajo a tiempo completo. Dedico mucho tiempo a esto, ya que puedo tener grandes brechas en los períodos de escritura del código debido a compromisos de por vida.

Es bueno tener documentación del usuario, pero no es esencial, creo. Por supuesto, depende de la complejidad de la aplicación, la familiaridad de la base de usuarios con el uso de computadoras y sistemas en el área temática en discusión; en su caso, parece que sus clientes pueden comprender cómo funcionan las nuevas funciones. Existe una escuela de pensamiento argumentando que una buena experiencia de usuario y una buena interfaz de usuario requieren una documentación mínima del usuario.

Además, si su tiempo es limitado y realmente siente la presión de desarrollar la documentación que sugiere, puede hacer un par de videos breves que solo presentan las nuevas funciones. Esto le dará algo de tiempo para escribir la documentación real y luego podrá completar los detalles menos importantes.

Algunos consejos de marketing pueden permitirle equilibrar las expectativas de los usuarios y aún así impulsar su marca. Realmente depende del tipo de aplicación y el flujo de trabajo que ha creado hasta ahora, pero podría tener una pantalla de bienvenida a su nueva versión y dentro de la aplicación puede mostrar los videos ya sea proporcionando enlaces o reproduciendo los videos dentro de la aplicación.

John Kouraklis
fuente
3

Solo para agregar algo no solo para este ejemplo específico sino también para el flujo de trabajo general:

La documentación puede ser suya definition of done, pero la mayoría de las veces va más allá de un producto viable mínimo (MVP).

No solo el cliente siempre tiene la razón. Si se trata de un producto comercial, la liberación puede ser un gran valor comercial y es una prioridad absoluta.

El propietario define el valor comercial (que creo que es usted), entonces, ¿qué es más valioso como producto para sus clientes?

¿También hay algún riesgo de liberación sin documentación?

Por ejemplo competencia ; Si la competencia lanza esta súper función antes que usted, es posible que pierda algunos usuarios.

Hágase estas preguntas o al propietario del producto y su respuesta será clara.

Timmetje
fuente
2

Las nuevas funciones hacen felices a los viejos usuarios. Buena documentación invita a nuevos usuarios. En lo que debe concentrarse depende de lo que más necesita. Usted indicó que la base de usuarios estaba en buen estado para que las nuevas funciones puedan esperar. Hablando como un viejo usuario, también me gusta la buena documentación. Lo bueno del código abierto: los antiguos usuarios agregan sus propias características.

naranja confitada
fuente
2
Una buena documentación solo invita a nuevos usuarios si documenta algo que realmente existe.
Robert Harvey
@robertharvey Se indicó una base de usuarios actual. Por lo tanto, supongo que están usando una versión beta inédita u otra.
candied_orange
Hay una versión existente, que por su sonido se considera estable a pesar de estar poco documentada.
jpmc26
2

No ha aclarado en su pregunta y probablemente no a sus usuarios las consecuencias de estas elecciones. ¿Cuánto tiempo pasas en soporte al usuario? ¿La documentación adicional disminuirá la cantidad de tiempo que dedica al soporte o aumentará las ventas? ¿Cuál es la ventaja para usted de hacer documentación?

Sus usuarios desean nuevas funciones sobre la documentación, pero ¿se dan cuenta de que podría haber una disminución en su disponibilidad para proporcionar soporte, corregir errores, liberar parches, etc.?

Si no me molesté en leer las instrucciones cuando todo lo que tengo que hacer es enviarle un correo electrónico con mi pregunta, ¿por qué querría alguna vez documentación sobre las nuevas funciones?

JeffO
fuente
-1

Si el paquete está listo para su lanzamiento, suéltelo al cliente / cliente y comience a trabajar en la documentación. Es bueno comunicarse con el cliente, cuando compartirá la documentación que lo ayuda a comprender las características implementadas.

sairamys
fuente