stringtranslate.com

Desarrollo del usuario final

El desarrollo de usuario final ( EUD ) o programación de usuario final ( EUP ) se refiere a actividades y herramientas que permiten a los usuarios finales (personas que no son desarrolladores de software profesionales) programar computadoras . Las personas que no son desarrolladores profesionales pueden usar herramientas EUD para crear o modificar artefactos de software (descripciones de comportamiento automatizado) y objetos de datos complejos sin un conocimiento significativo de un lenguaje de programación . En 2005 se estimó (utilizando estadísticas de la Oficina de Estadísticas Laborales de EE. UU .) que para 2012 habría más de 55 millones de desarrolladores de usuarios finales en los Estados Unidos, en comparación con menos de 3 millones de programadores profesionales. [1] Existen varios enfoques de EUD, y es un tema de investigación activo dentro del campo de la informática y la interacción hombre-computadora . Los ejemplos incluyen programación en lenguaje natural , [2] [3] hojas de cálculo , [4] lenguajes de scripting (particularmente en una suite ofimática o aplicación de arte), programación visual , programación de acción de disparo y programación por ejemplo .

La herramienta EUD más popular es la hoja de cálculo . [4] [5] Debido a su naturaleza sin restricciones, las hojas de cálculo permiten a los usuarios de computadoras relativamente poco sofisticados escribir programas que representan modelos de datos complejos, al tiempo que los protegen de la necesidad de aprender lenguajes de programación de nivel inferior. [6] Debido a su uso común en los negocios, las habilidades con las hojas de cálculo se encuentran entre las habilidades más beneficiosas que debe tener un empleado graduado y, por lo tanto, son las más buscadas [7] Solo en los Estados Unidos de América, se estima que hay 13 millones de desarrolladores de usuarios finales que programan con hojas de cálculo [8]

El enfoque de programación por ejemplo ( PbE ) reduce la necesidad de que el usuario aprenda las abstracciones de un lenguaje de programación clásico. En su lugar, el usuario introduce algunos ejemplos de los resultados deseados o las operaciones que se deben realizar con los datos, y el sistema PbE infiere algunas abstracciones correspondientes a un programa que produce este resultado, que el usuario puede refinar. Luego, se pueden introducir nuevos datos en el programa creado automáticamente y el usuario puede corregir cualquier error cometido por el programa para mejorar su definición. Las plataformas de desarrollo de código bajo también son un enfoque para el EUD.

Una evolución en este ámbito ha considerado el uso de dispositivos móviles para apoyar las actividades de desarrollo de los usuarios finales. En este caso, los enfoques anteriores para las aplicaciones de escritorio no pueden simplemente volver a proponerse, dadas las características específicas de los dispositivos móviles. Los entornos EUD de escritorio carecen de las ventajas de permitir a los usuarios finales crear aplicaciones de manera oportuna mientras están en movimiento. [9]

Más recientemente, ha aumentado el interés en cómo aprovechar la EUD para respaldar el desarrollo de aplicaciones de Internet de las cosas. En este ámbito, la programación de acción de activación parece un enfoque prometedor. [10]

Las lecciones aprendidas de las soluciones EUD pueden influir significativamente en los ciclos de vida del software para productos de software comerciales , desarrollos de intranet / extranet internos e implementaciones de aplicaciones empresariales .

Plataformas de desarrollo de código bajo específicas para aplicaciones

En la actualidad, aproximadamente 40 proveedores ofrecen soluciones dirigidas a los usuarios finales diseñadas para reducir los esfuerzos de programación. Estas soluciones no requieren programación tradicional y pueden basarse en una funcionalidad relativamente limitada, por ejemplo, gestión de contratos, gestión de relaciones con los clientes, seguimiento de problemas y errores. Las interacciones basadas en la web, a menudo denominadas plataformas de desarrollo de código bajo, guían al usuario para desarrollar una aplicación en tan solo 40 a 80 horas. [11] [ referencia circular ]

Definición

Lieberman et al. proponen la siguiente definición: [12]

El desarrollo del usuario final se puede definir como un conjunto de métodos, técnicas y herramientas que permiten a los usuarios de sistemas de software, que actúan como desarrolladores de software no profesionales, en algún momento crear, modificar o ampliar un artefacto de software.

Ko et al. proponen la siguiente definición: [13]

La programación del usuario final es la programación para lograr el resultado de un programa principalmente para uso personal, en lugar de uso público.

Los artefactos definidos por los usuarios finales pueden ser objetos que describen algún comportamiento automatizado o secuencia de control, como solicitudes de bases de datos o reglas gramaticales, [14] que pueden describirse con paradigmas de programación como programación por demostración , programación con ejemplos , programación visual o generación de macros . [15] También pueden ser parámetros que eligen entre comportamientos predefinidos alternativos de una aplicación. [16] Otros artefactos de desarrollo del usuario final también pueden referirse a la creación de contenido generado por el usuario, como anotaciones, que pueden ser o no interpretables computacionalmente (es decir, pueden ser procesados ​​por funciones automatizadas asociadas). [17]

Ejemplos

Algunos ejemplos de desarrollo para el usuario final incluyen la creación y modificación de:

Modelado de costo-beneficio

Según Sutcliffe , [23] el EUD básicamente externaliza el esfuerzo de desarrollo al usuario final. Dado que siempre hay algún esfuerzo para aprender a usar una herramienta EUD, la motivación de los usuarios depende de su confianza en que potenciará su trabajo, ahorrará tiempo en el trabajo o aumentará la productividad. En este modelo, los beneficios para los usuarios se basan inicialmente en el marketing, las demostraciones y el boca a boca. Una vez que la tecnología se pone en uso, la experiencia de los beneficios reales se convierte en el motivador clave.

Este estudio define los costos como la suma de:

El primer y el segundo costo se incurren una sola vez durante la adquisición, mientras que el tercero y el cuarto se incurren cada vez que se desarrolla una aplicación. Los beneficios (que pueden ser percibidos o reales) se consideran como:

Colaboraciones en el desarrollo del usuario final

Muchas actividades de desarrollo del usuario final son de naturaleza colaborativa, incluida la colaboración entre desarrolladores profesionales y desarrolladores de usuarios finales y la colaboración entre desarrolladores de usuarios finales.

El desarrollo mutuo [24] es una técnica en la que los desarrolladores profesionales y los desarrolladores para usuarios finales trabajan juntos para crear soluciones de software. En el desarrollo mutuo, los desarrolladores profesionales a menudo “diseñan por debajo” el sistema y proporcionan las herramientas para permitir que los “dueños de los problemas [25] ” creen la solución adecuada en el momento de uso para sus necesidades, objetivos y contextos situacionales. [26] Luego, la comunicación entre los desarrolladores profesionales y los desarrolladores para usuarios finales a menudo puede estimular la formalización de modificaciones ad hoc por parte de los usuarios finales en artefactos de software, transformando las soluciones desarrolladas por los usuarios finales en características de productos comerciales con impactos más allá de las soluciones locales.

En esta colaboración, se proponen diversos enfoques, como el Taller de Modelado de Software [27], para salvar la brecha de comunicación entre los desarrolladores profesionales y los desarrolladores de usuarios finales. Estos enfoques suelen proporcionar transparencia de acuerdo con el modelo de translucidez social [28] , lo que permite que todos los participantes de la colaboración sean conscientes de los cambios realizados por los demás y se los considere responsables de sus acciones gracias a esa conciencia.

Además de las plataformas de colaboración de programación como GitHub, que son utilizadas principalmente por desarrolladores expertos debido a su pronunciada curva de aprendizaje, las colaboraciones entre desarrolladores de usuarios finales a menudo tienen lugar en plataformas wiki donde se comparten los artefactos de software creados. El desarrollo de usuario final también se utiliza a menudo para crear scripts de automatización o tutoriales interactivos para compartir conocimientos de "cómo hacer". Ejemplos de tales aplicaciones incluyen CoScripter [29] y HILC [30] . En tales aplicaciones, el usuario puede crear scripts para tareas utilizando lenguaje pseudonatural o mediante programación por demostración. Los usuarios pueden elegir cargar el script a un repositorio de scripts de estilo wiki. En este wiki, los usuarios pueden explorar los scripts disponibles y ampliar los scripts existentes para admitir parámetros adicionales, manejar condiciones adicionales u operar en objetos adicionales.

También se han formado comunidades en línea y fuera de línea de desarrolladores de usuarios finales, donde estos pueden resolver de manera colaborativa problemas de EUD de interés común o para beneficio mutuo. En dichas comunidades, los expertos locales difunden su experiencia y sus consejos. Los miembros de la comunidad también se brindan apoyo social entre sí para apoyar la construcción colaborativa de software. [31]

Crítica

A los comentaristas les preocupa que los usuarios finales no entiendan cómo probar y proteger sus aplicaciones. Warren Harrison, profesor de informática en la Universidad Estatal de Portland, escribió: [32]

Es sencillamente inimaginable que podamos esperar seguridad... de la gran mayoría de aplicaciones de software que existen cuando están escritas con poco o ningún conocimiento de las buenas prácticas generalmente aceptadas, como especificar antes de codificar, realizar pruebas sistemáticas, etc. ¿Cuántos libros de X para completos idiotas (donde "X" es su lenguaje de programación favorito) hay por ahí? Al principio me divertía esta tendencia, pero recientemente me he puesto incómodo pensando en dónde están aplicando estos aficionados sus nuevos conocimientos.

Este punto de vista supone que todos los usuarios finales son igualmente ingenuos cuando se trata de comprender el software, aunque Pliskin y Shoval argumentan que este no es el caso, que los usuarios finales sofisticados son capaces de realizar desarrollos para el usuario final. [33] Sin embargo, en comparación con los programadores expertos, los programadores de usuarios finales rara vez tienen el tiempo o el interés en actividades de ingeniería de software sistemáticas y disciplinadas, [34] lo que hace que garantizar la calidad del artefacto de software producido por el desarrollo del usuario final sea particularmente desafiante.

En respuesta a esto, ha surgido el estudio de la ingeniería de software para el usuario final , que se ocupa de cuestiones que van más allá del desarrollo para el usuario final, y que motivan a los usuarios finales a considerar cuestiones como la reutilización, la seguridad y la verificabilidad al desarrollar sus soluciones. [35]

Un escenario alternativo es que los usuarios finales o sus consultores empleen herramientas declarativas que respalden reglas comerciales y de seguridad rigurosas a expensas del rendimiento y la escalabilidad; las herramientas creadas con EUD normalmente tendrán una eficiencia peor que las creadas con entornos de programación profesionales. Aunque separar la funcionalidad de la eficiencia es una separación válida de preocupaciones , puede conducir a una situación en la que los usuarios finales completarán y documentarán el análisis de requisitos y la creación de prototipos de la herramienta, sin la participación de los analistas comerciales . Por lo tanto, los usuarios definirán las funciones requeridas antes de que estos expertos tengan la oportunidad de considerar las limitaciones de una aplicación o un marco de software específico . El apoyo de la alta gerencia a tales iniciativas de los usuarios finales depende de su actitud ante la dependencia existente o potencial de un proveedor .

Véase también

Referencias

  1. ^ Scaffidi, C.; Shaw, M.; Myers, B. (1 de septiembre de 2005). "Estimación de la cantidad de usuarios finales y programadores de usuarios finales". Simposio IEEE de 2005 sobre lenguajes visuales y computación centrada en el ser humano (VL/HCC'05) . págs. 207–214. doi :10.1109/VLHCC.2005.34. ISBN 978-0-7695-2443-6.S2CID14608501  .​
  2. ^ Little, Greg y Robert C. Miller. "Traducción de comandos de palabras clave a código ejecutable". Actas del 19.º simposio anual de la ACM sobre software y tecnología de interfaz de usuario. ACM, 2006.
  3. ^ Bruckman, Amy y Elizabeth Edwards. "¿Deberíamos aprovechar el conocimiento del lenguaje natural? Un análisis de los errores de usuario en un lenguaje de programación de estilo lenguaje natural". Actas de la conferencia SIGCHI sobre factores humanos en sistemas informáticos. ACM, 1999. APA
  4. ^ ab Burnett, Margaret M. ; Scaffidi, Christopher (enero de 2024). Desarrollo del usuario final. Interaction-Design.org.en "Enciclopedia de la interacción hombre-computadora".
  5. ^ Hornsby, Peter (3 de agosto de 2009). "Cómo permitir a los usuarios crear su propio software". UXmatters . Consultado el 31 de enero de 2014 .
  6. ^ Abraham, R.; Burnett, M; Erwig, M (2009). "Programación de hojas de cálculo". Enciclopedia Wiley de Ciencias de la Computación e Ingeniería . págs. 1–10.
  7. ^ Kruck, S. y Sheetz, S., 2001. Teoría de la precisión de las hojas de cálculo Archivado el 18 de agosto de 2018 en Wayback Machine . Revista de educación en sistemas de información.
  8. ^ Scaffidi, C., Shaw, M. y Myers, B., 2005. Estimación del número de usuarios finales y programadores de usuarios finales Archivado el 12 de septiembre de 2011 en Wayback Machine . Simposio IEEE de 2005 sobre lenguajes visuales y computación centrada en el ser humano (VL/HCC'05), págs. 207-214.
  9. ^ Paternò F., 2013, ISRN Ingeniería de software, desarrollo del usuario final: estudio de un campo emergente para empoderar a las personas
  10. ^ Ghiani, G., Manca, M., Paternò, F., Santoro, C.: Personalización de aplicaciones dependientes del contexto mediante reglas de acción de activación. ACM Transactions on Computer-Human Interaction, vol. 24, número 2, artículo n.° 14, abril de 2017.
  11. ^ Plataformas de desarrollo de código bajo
  12. ^ Lieberman, H., Paternò, F., Klann, M. y Wulf, V. (2006). Desarrollo del usuario final: un paradigma emergente. En: Desarrollo del usuario final, Lieberman, H., Paternò, F. y Wulf, V. (eds.), Springer Netherlands, 2006, ser. Human-Computer Interaction Series, vol. 9, capítulo 1, págs. 1-7, doi :10.1007/1-4020-5386-X_1
  13. ^ Ko, Andrew J.; Abraham, Robin; Beckwith, Laura; Blackwell, Alan; Burnett, Margaret; Erwig, Martin; Scaffidi, Chris; Lawrance, Joseph; Lieberman, Henry (1 de abril de 2011). "El estado del arte en ingeniería de software para el usuario final". ACM Comput. Surv . 43 (3): 21:1–21:44. CiteSeerX 10.1.1.159.8597 . doi :10.1145/1922649.1922658. ISSN  0360-0300. S2CID  9435548. 
  14. ^ H. Lieberman, BA Nardi y D. Wright. Grammex: Definición de gramáticas mediante ejemplos. En la conferencia de la ACM sobre Factores humanos en sistemas informáticos (resumen, demostraciones) (CHI '98), Los Ángeles, California, EE. UU., páginas 11-12. ACM Press, abril de 1998.
  15. ^ Maria Francesca Costabile, Daniela Fogli, Piero Mussio, Antonio Piccinno. Desarrollo de usuario final: el enfoque del taller de modelado de software . En Lieberman, H., Paternò, F., Wulf, V. (Eds) (2004) Desarrollo de usuario final: empoderar a las personas para emplear de manera flexible la tecnología avanzada de la información y la comunicación, © 2004 Kluwer Academic Publishers, Dordrecht, Países Bajos.
  16. ^ Costabile, MF, Fogli, D., Letondal, C., Mussio, P., Piccinno, A., Usuarios expertos en el dominio y sus necesidades de desarrollo de software", Conferencia UAHCI, Creta, 22 al 27 de junio de 2003, 232-236.
  17. ^ Gerhard Fischer Desarrollo de usuario final y metadiseño: fundamentos para culturas de participación . Apuntes de la conferencia sobre desarrollo de usuario final en informática, 2009, volumen 5435/2009, 3-14,
  18. ^ Scaffidi, Christopher; Brandt, Joel; Burnett, Margaret; Dove, Andrew; Myers, Brad (2012). "SIG: Programación del usuario final". Resúmenes ampliados de CHI '12 sobre factores humanos en sistemas informáticos . Chi Ea '12. págs. 1193–1996. doi :10.1145/2212776.2212421. ISBN 9781450310161. Número de identificación del sujeto  17748945.
  19. ^ Leonardi, Nicola; Manca, Marco; Paternò, Fabio; Santoro, Carmen (2019). "Programación de acción de activación para personalizar el comportamiento de los robots humanoides". Actas de la Conferencia CHI de 2019 sobre factores humanos en sistemas informáticos . págs. 1–13. doi :10.1145/3290605.3300675. ISBN . 978-145035970-2.S2CID140220651  .​
  20. ^ Sarkar, Advait; Blackwell, Alan; Jamnik, Mateja; Spott, Martin (julio de 2014). "Enseñar y probar: una técnica de interacción simple para el modelado exploratorio de datos por parte de los usuarios finales". Simposio IEEE de 2014 sobre lenguajes visuales y computación centrada en el ser humano (VL/HCC) . pp. 53–56. CiteSeerX 10.1.1.695.2025 . doi :10.1109/VLHCC.2014.6883022. ISBN .  978-1-4799-4035-6.S2CID14845341  .​
  21. ^ Haynes, John L. (otoño de 1985). «Diseño de circuitos con Lotus 1-2-3». BYTE . pp. 143–156 . Consultado el 19 de marzo de 2016 .
  22. ^ Roy Chowdhury, Soudip; Rodríguez, Carlos; Daniel, Florian; Casati, Fabio (2010). Computación consciente de la sabiduría: sobre la recomendación interactiva del conocimiento de la composición. Icsoc'10. pp. 144–155. ISBN 9783642193934.
  23. ^ Sutcliffe, Alistair (julio de 2005). "Evaluación de los costos y beneficios del desarrollo para el usuario final". ACM SIGSOFT Software Engineering Notes . 30 (4): 1–4. doi :10.1145/1082983.1083241.
  24. ^ Andersen, Renate; Mørch, Anders I. (2 de marzo de 2009). "Desarrollo mutuo: un estudio de caso en el desarrollo de productos de software iniciado por el cliente". Desarrollo del usuario final . Apuntes de clase en informática. Vol. 5435. págs. 31–49. CiteSeerX 10.1.1.598.9066 . doi :10.1007/978-3-642-00427-8_3. ISBN .  978-3-642-00425-4.
  25. ^ Fischer, Gerhard (1994-01-01). "Poner a cargo de los problemas a los propietarios con entornos de diseño orientados al dominio". Requisitos centrados en el usuario para entornos de ingeniería de software . Springer, Berlín, Heidelberg. pp. 297–306. CiteSeerX 10.1.1.310.8814 . doi :10.1007/978-3-662-03035-6_23. ISBN  978-3-642-08189-7.
  26. ^ Fischer, Gerhard; Giaccardi, Elisa (1 de enero de 2006). Lieberman, Henry; Paternò, Fabio; Wulf, Volker (eds.). Desarrollo del usuario final. Serie de interacción hombre-ordenador. Springer Países Bajos. págs. 427–457. doi :10.1007/1-4020-5386-x_19. ISBN 9781402042201.
  27. ^ Liberman, Enrique; Paternò, Fabio; Klann, Markus; Wulf, Volker (1 de enero de 2006). Liberman, Henry; Paternò, Fabio; Wulf, Volker (eds.). Desarrollo de usuarios finales. Serie de interacción persona-computadora. Springer Países Bajos. págs. 1–8. doi :10.1007/1-4020-5386-x_1. ISBN 9781402042201.S2CID 15559793  .
  28. ^ Erickson, Thomas; Kellogg, Wendy A. (1 de marzo de 2000). "Translucidez social: un enfoque para diseñar sistemas que respalden los procesos sociales". ACM Trans. Comput.-Hum. Interact . 7 (1): 59–83. doi :10.1145/344949.345004. ISSN  1073-0516. S2CID  5943805.
  29. ^ Leshed, Gilly; Haber, Eben M.; Matthews, Tara; Lau, Tessa (1 de enero de 2008). "CoScripter". Actas de la Conferencia SIGCHI sobre factores humanos en sistemas informáticos . CHI '08. Nueva York, NY, EE. UU.: ACM. págs. 1719–1728. doi :10.1145/1357054.1357323. ISBN 9781605580111.S2CID 5989563  .
  30. ^ Intharah, Thanapong; Turmukhambetov, Daniyar; Brostow, Gabriel J. (1 de enero de 2017). "Ayuda, parece confuso". Actas de la 22.ª Conferencia internacional sobre interfaces de usuario inteligentes . IUI '17. Nueva York, NY, EE. UU.: ACM. págs. 233–243. doi :10.1145/3025171.3025176. ISBN 9781450343480.S2CID16596496  .​
  31. ^ Fischer, G.; Giaccardi, E.; Sí, Y.; Sutcliffe, AG; Mehandjiev, N. (1 de septiembre de 2004). "Metadiseño: un manifiesto para el desarrollo del usuario final". Comunitario. ACM . 47 (9): 33–37. doi :10.1145/1015864.1015884. ISSN  0001-0782. S2CID  11675776.
  32. ^ Harrison, Warren (julio-agosto de 2004). "Los peligros de la programación para el usuario final". IEEE Software . 21 (4): 5. doi :10.1109/MS.2004.13.
  33. ^ Pliskin, Nava; Shoval, Peretz (1987). "Prototipado para el usuario final: usuarios sofisticados que respaldan el desarrollo del sistema". Base de datos SIGMIS de la ACM . 18 (4): 7–17. doi : 10.1145/1017816.1017817 . S2CID:  18183262.
  34. ^ Brandt, Joel; Guo, Philip J.; Lewenstein, Joel; Klemmer, Scott R. (1 de enero de 2008). "Programación oportunista". Actas del 4º taller internacional sobre ingeniería de software para el usuario final . WEUSE '08. Nueva York, NY, EE. UU.: ACM. págs. 1–5. doi :10.1145/1370847.1370848. ISBN 9781605580340. Número de identificación del sujeto  17479074.
  35. ^ "Ingeniería de software para el usuario final: hallazgos empíricos". Consorcio de usuarios finales que moldean un software eficaz . Consultado el 28 de mayo de 2008 .

Lectura adicional

Enlaces externos