¿Deberías exportar datos a Excel y Word?

Soy el administrador de proyectos de una gran aplicación que los clientes usan para recopilar datos sobre si sus negocios cumplen con ciertos estándares médicos y financieros. Por lo general, responden una encuesta que explica cómo su cirugía cumple o no cumple con los estándares.

La aplicación cuenta con una herramienta para analizar esta información, de modo que los dueños de un grupo de consultorios puedan ver en general cómo van los equipos de los consultorios.

Los dueños de los grupos están pidiendo que los datos sean exportables a Excel o Word. Le planteé esto a nuestro equipo de desarrollo, y no creen que valga la pena exportar grandes hojas de datos de Excel o Word. Sus argumentos se basan en:

  • Los datos podrían ser enormes para exportar
  • No hay forma de que hagan nada útil con tantas páginas.
  • ¿Cómo funcionaría esto para los usuarios que usan la aplicación para iPhone/Android de la herramienta?

Estoy entre la espada y la pared con ellos y no estoy seguro de cuál es la mejor manera de convencerlos de que esto es lo que debemos hacer (¡aparte de poner mi pie en el suelo y exigirlo!).

Una respuesta rápida es que el equipo de scrum no puede decidir qué es o no es un requisito del usuario.
¿Estamos hablando de exportar... Raw Data para sobresalir? ¿O datos resumidos? ¿Conjuntos de datos parciales? 100 000 líneas de datos sin procesar desnormalizados es diferente a los resúmenes y las tablas dinámicas, por ejemplo. Me resistiría al principio (no hasta el punto de "No lo haré", si el cliente lo quiere...) y trataría de averiguar qué está tratando de aprender el cliente... Dudo que JoeSchmo quiera datos sin procesar... quieren información relevante.
He visto esta renuencia del desarrollador a exportar a Excel antes. Creo que todo se reduce a que los desarrolladores no entienden cómo trabajan los usuarios con los datos. No entienden que Excel es para los usuarios lo que Visual Studio es para los desarrolladores; una herramienta versátil que les permite reformatear y reestructurar datos rápidamente de infinitas maneras. Ninguna aplicación preconstruida puede anticipar todas esas necesidades ad-hoc. Puede que tenga que bajar el pie.
Creo que esta pregunta debería beneficiarse de una nueva redacción, centrándose en la pregunta subyacente sobre cómo hacer que el equipo de desarrollo comprenda los requisitos.
Además de la respuesta a continuación: una historia de usuario que podría ayudar al desarrollo es el deseo de codificar las respuestas abiertas, una técnica común en el análisis de datos: encuentre las respuestas comunes, asígnelas a categorías y luego analice los datos categóricos. Esto es algo que estoy seguro de que Excel puede hacer muy bien y es una historia de usuario sólida. Una vez que comience a hablar en términos de historias de usuarios en lugar de demandas de los clientes, a los desarrolladores les resultará más fácil comprender a los usuarios.
Siempre puedes encontrarlos a mitad de camino. Comparta un enlace a una hoja de Google con todas las celdas bloqueadas y pobladas por su aplicación. Luego, los usuarios pueden descargar a Excel y sus desarrolladores no necesitan preocuparse por respaldar el flujo de trabajo de los usuarios más allá de eso.
Cuando la gente generalmente dice "exportar a Excel", ¿no se refieren realmente a "exportar a CSV", que es completamente legible por Excel pero también por una miríada de otros paquetes?

Respuestas (7)

Exportar a Excel es una solución, no un requisito. Debe volver a los propietarios y pedirles que detallen sus requisitos funcionales para los datos. Una vez hecho esto, entréguelo a los desarrolladores y déjelos proponer una solución. Puede terminar siendo Excel porque, como escribió, ya está allí, o puede ser otra solución que cumpla con los requisitos.

Tienes que comparar cada solución con sus beneficios, costos, riesgos y otras sanciones. El hecho de que Excel ya esté allí y sepan cómo usarlo es sin duda un beneficio, pero es posible que los propietarios no sepan o estén subestimando los impactos de algunas de las penalizaciones que tendrán al usar Excel y terminen insatisfechos a largo plazo. . Por el contrario, construir una nueva solución costará dinero y tomará tiempo y tendrán que aprenderla (costos y penalizaciones), pero puede curar los impactos de Excel y, a la larga, hacerlos felices.

Nada de esto lo sabes todavía; esto tiene que ser analizado y construido un caso para cada solución. Pero todo comienza con la obtención de los requisitos adecuados de los propietarios.

También puede ser un requisito. Si el equipo objetivo utiliza Excel como su herramienta de elección para la manipulación de datos, entonces no deberían tener que justificar una solicitud para "Exportar a un archivo legible por Excel", ¡ese es el requisito de los usuarios!
Veo lo que dices, pero todavía dudo en estar de acuerdo. Creo que el requisito sigue siendo la capacidad de manipular datos. El hecho de que Excel es lo que pueden haber estado usando sigue siendo una entrada en el análisis de beneficios/costo/riesgo/penalización. En mi práctica, trato de ser lo más independiente posible de las herramientas cuando recopilo los requisitos. Sin embargo, al final del día, si el cliente lo exige, Excel se convertiría en el requisito. Pero intentaría alejarlos de eso.

Como principio, si tener un Excel "vale la pena" (desde el punto de vista comercial) o no, no depende del equipo de desarrollo decidirlo. Deben ser capaces de decir si es factible y decir objetivamente cuáles son los pros y los contras (es decir, no funcionará cuando tenga más de 1.000.000 de filas de datos), también pueden asesorar al cliente sobre si esto realmente resuelve su problema o no (y si no, ser capaz de proponer constructivamente otra solución válida), pero no pueden negarse a implementar una característica solo porque piensan que no vale la pena.

Dicho esto, tal vez el problema no se haya analizado lo suficiente, y el equipo de desarrollo y el cliente claramente aún no están en la misma página; así que personalmente los pondría juntos para que puedan entender mejor el problema y colaborar para encontrar la mejor solución. Es posible que el cliente no haya expresado completamente su necesidad real, y el equipo de desarrollo puede tener una idea diferente...

Gracias por esto. De hecho, han mencionado que hay problemas (por ejemplo, tener 100,000 filas de datos) y han sugerido que hagan que la herramienta de análisis en la aplicación sea más "sobresaliente". Sin embargo, no veo la necesidad de esto porque a) Excel ya existe, así que ¿por qué no usarlo, especialmente si los clientes están contentos con él? b) serán meses de trabajo para diseñar e implementar un cambio en la herramienta de análisis para que sea una tabla y más "similar a Excel".
Soy desarrollador y entiendo las preocupaciones de sus desarrolladores. La exportación a un formato propietario de Excel puede painfuldepender del idioma y las bibliotecas disponibles. Tal vez pueda sugerir compromiso y exportar a CSV, que es un formato de texto visualizable en Excel, pero fácil de exportar. De esta manera, sus usuarios pueden ver si es factible y los desarrolladores no perderán tiempo en ello.
Top 10 de TIOBE: Java ( poi ), C ( xlsLib ), C++ ( LibExcel ), C# ( Open XML ), Python ( openpyxl ), Obj-C ( LibXL para iOS ), PHP ( PHPExcel ), VB.NET (bastante seguro esto no es un problema... uhh...), Javascript ( js-xlsx ), PERL ( Spreadsheet::WriteExcel ). Literalmente, nunca he tenido problemas para leer o escribir Excel en ningún idioma con el que haya tenido que trabajar...
@jnovancho Lo más probable es que los usuarios lo consideren una "exportación de Excel" y no tengan idea de que hay una diferencia.
@corsiKa, si bien esas bibliotecas existen, escribir específicamente en un formato de Excel en comparación con usar una biblioteca para escribir un csv, xml o json es significativamente más difícil. Si no hay un requisito convincente que solo exista dentro de esas bibliotecas ("queremos que la salida sea bonita con colores y bordes, lista para imprimir; y fórmulas en línea para que las cosas se actualicen correctamente cuando cambiamos los datos"), escribir en un ' El archivo .xls en lugar de un archivo '.csv' puede ser un esfuerzo inútil si todo lo que se desea son los datos.
En realidad, he descubierto que la forma más fácil de escribir un informe es darle al usuario una hoja de datos de muestra, dejar que defina la lógica del informe en la primera hoja (haciendo referencia a las columnas en la segunda) y luego cargar eso y poner el volcado de datos en la segunda hoja. Los gráficos y las fórmulas de la primera hoja se procesan automáticamente cuando abren el informe. Es mucho, mucho más poderoso que un .csv y es absolutamente trivial en todos los idiomas que he probado. Iría tan lejos como para decir que nunca se moleste con un .csv, excepto posiblemente porque algunas personas no usan Excel (pero eso es raro).

Cambiaría mi mentalidad de "¿Cómo puedo convencerlos?" a "¿El usuario realmente quiere exportar a Excel?" y "¿Qué solución sería hacer más feliz a mi cliente mientras gana dinero?"

  1. Hable con las partes interesadas. Podrían pensar en Excel como una forma familiar de describir la funcionalidad. (Una solución, no el requisito). Pero es posible que prefieran Excel de todos modos (un requisito directo). En este caso:
  2. Busque alternativas. Por ejemplo, los archivos CSV se pueden abrir con Excel y son más fáciles de comparar. Son usables en Linux y Mac y debería ser más fácil de desarrollar.
  3. Deja claro al cliente que harás cualquier solución que él quiera. A estas alturas no te preocupa trabajar más horas. Le preocupa desarrollar una solución que podría no funcionar para ellos. Después, puede hablar sobre los costos si es un problema.
  4. Asegúrese de que el cliente entienda los problemas. Por ejemplo, podría crear dos archivos de Excel ficticios y contarles. "¿Cómo los compararías?"
  5. Compruebe si los datos son demasiado grandes para Excel y algunas métricas de rendimiento conservadoras (puede llevar una hora exportar a Excel en un proceso por lotes nocturno)
  6. Pregunte "¿Qué planea hacer con este Excels?". ¿Una copia de seguridad? Debería poder hacer una copia de seguridad de la base de datos. ¿Un informe? ¿Podría generar el informe automáticamente?
  7. Una vez que el cliente tome una decisión, envíe el acta para tener una prueba escrita de que aceptó las consecuencias. Asegúrese de mantener el correo electrónico fácil de encontrar.
  8. Explique al equipo de desarrollo que este es un requisito directo del cliente. No de ti mismo y de tus esfuerzos por buscar una mejor solución. Gracias por su aporte. Incluso si el cliente fue inflexible, será mejor que le hayas explicado los problemas potenciales de antemano.

Trabajo en una oficina muy pequeña y tengo que realizar muchos de los roles de Scrum yo mismo, por lo que tengo que equilibrar los lados y los argumentos en mi cabeza para tales decisiones, esta fue una decisión simple para mí, a pesar de que el Backend guy no pudo hacer la tarea (yo hago la mía ahora).

Creé hojas de cálculo xml para Excel basadas en lo que realmente se muestra en un Actionscript DataTable (una cadena enorme colocada en un bloc de notas guardada como .xml), además de una copia CSV de Flash Datatables.

La creación de hojas de cálculo de Excel en el back-end es trivial. No puedo concebir un escenario que haga que valga la pena discutir sobre hacerlo en lugar de simplemente hacer la solicitud. Incluso convertir la tabla de datos 1 en un Excel de 3 hojas con fechas de parámetros y descargos de responsabilidad no fue particularmente difícil.

Trabajo muy de cerca con los clientes, pero nunca estoy 100 % seguro de cuáles son todos sus requisitos finales. Darles resultados de Excel significa que pueden hacer el 80 % de todos los usos e interpretaciones posibles de los datos por el 20 % del esfuerzo.

Lo importante no era conseguir el excel en el software sino sacar el verdadero problema del equipo.

Pensar como una persona técnica Si la información se almacena en una base de datos de alguna descripción, generalmente no es demasiado difícil otorgar acceso de solo lectura a las tablas que los usuarios desean ver y luego hacer que importen los datos directamente desde Excel sin pasar por el frente de la aplicación. -fin (los desarrolladores no tienen que hacer nada) ya sea usando funciones de importación de datos de Excel o usando scripts VBA personalizados.

Pensar como gerente Hable con su Analista comercial para agregar el requisito de una forma significativa o, alternativamente, solicite al Propietario del producto / Patrocinador del proyecto / persona similar al jefe que priorice el trabajo. Suena como si estuvieras en un 'estado mental de solución', que no es el trabajo de un PM. El hecho de que a las personas les encante Excel no significa que realmente necesiten una función de exportación a Excel; a veces, esto puede generar riesgos de seguridad.

Simplemente puede poner su pie en el suelo y darle al cliente lo que quiere, pero mientras los desarrolladores no entiendan por qué la función es útil, es poco probable que la implementen de una manera útil. Te darán una exportación de Excel sin sentido, que no se usará, y te dirán "mira, te lo dije".

Creo que lo mejor que se puede hacer es cerrar la brecha entre los usuarios y los desarrolladores. Tome algunos desarrolladores, preferiblemente los más cercanos al front-end, y los que son más 'amigables con las personas', y pídales que sigan a los usuarios por un día. Deje que los usuarios les muestren lo que quieren lograr y por qué les resulta útil. En el peor de los casos, se asegurará de que la función realmente haga lo que los usuarios quieren (en lugar de lo que dicen que quieren) y, en el mejor de los casos, los usuarios y desarrolladores llegarán a una solución más creativa que realmente resuelve el problema.

Después de todo, no es trabajo del usuario diseñar el software, y no es trabajo del desarrollador elegir los requisitos. Tienen que trabajar juntos para crear algo de valor.

Luego, si realmente quiere hacerlo bien, haga que los usuarios y los desarrolladores creen algunos bocetos juntos. Pruebe estas maquetas con otros usuarios para asegurarse de que las entiendan y luego discútalas con el equipo antes de implementarlas.

En última instancia, este es el tipo de cosas que debe hacer su diseñador de interacción/administrador de ux. Es comprensible si no tienes uno de esos, pero te recomiendo trabajar para tener uno. Toma esto como un ejercicio. Envíe tres desarrolladores para interactuar con los usuarios. Elija el que los usuarios respondieron mejor y al que pareció gustarle más el ejercicio, y comience a darle más responsabilidades de diseño. No diseñe como en Photoshop cómo deberían verse los botones, pero diseñe como en la recopilación de historias de usuarios, maquetas y pruebas de usuarios de funciones potenciales, y trabaje con los otros desarrolladores para descubrir los detalles de implementación.

Exportar grandes conjuntos de datos a Excel puede ser muy poderoso y hacer que su aplicación sea mucho más valiosa para muchos más usuarios. Excel tiene un conjunto de funciones tan rico que intentar duplicarlo sería una pérdida del conocimiento de la industria de sus desarrolladores.

Los usuarios pueden filtrar, ordenar, graficar y pivotar en Excel de casi cualquier forma que elijan. ¿Puede definir todos los flujos de trabajo posibles que necesitan los usuarios y agregarlos a su aplicación? ¿Qué pasa con el usuario que quiere hacer un poco de espeleología de datos y probar algunos pivotes no obvios?

En cuanto a los grandes conjuntos de datos, la pregunta es ¿qué tan grandes? Exportar a una base de datos para Business Analytics puede ser una mejor opción si el conjunto de datos es lo suficientemente grande como para ahogar a Excel. Más datos me dan un tamaño de muestra más grande y confianza, así que no veo esto como algo negativo.

En cuanto a los usuarios de dispositivos móviles, no sé si estoy haciendo un análisis pesado en mi iPhone. Si puedo obtener informes en mi teléfono, adelante. ¡No dejes que esto te detenga!

Finalmente, estoy 100% de acuerdo con Grimm the Opiner, "el equipo de scrum no puede decidir qué es o no es un requisito del usuario". Esto depende claramente del propietario del producto.