Design Thinking en la Ingeniería de Software

 

El Design Thinking en la Ingeniería de Software es una aproximación centrada en el usuario para el desarrollo de productos y soluciones tecnológicas. El diseño centrado en el usuario es un enfoque holístico que busca crear productos y servicios que sean significativos, útiles y fáciles de usar para los usuarios finales, al tiempo que se adapten a sus necesidades cambiantes a lo largo del tiempo. Aunque tradicionalmente se asocia más con el diseño de productos físicos, sus principios y metodologías son igualmente aplicables en el ámbito del desarrollo de software. A continuación, presento una breve descripción de cómo se integra el Design Thinking en la ingeniería de software. Esto se da mediante las 7 fases de la metodología, las cuales se integran en un contexto metodológico para desarrollo de software:

1. Comprensión del usuario: El primer paso es comprender a fondo las necesidades, deseos y problemas del usuario final. Esto implica realizar investigaciones, entrevistas y observaciones para obtener información cualitativa sobre los usuarios y sus contextos.

2. Definición del problema: Una vez que se comprenden las necesidades del usuario, se define claramente el problema a resolver. Esto implica identificar los puntos problemáticos clave que el software debe abordar para mejorar la experiencia del usuario.

3. Ideación: En esta etapa, se generan ideas para posibles soluciones. Se fomenta la creatividad y se busca la diversidad de perspectivas para explorar una amplia gama de posibilidades. Técnicas como lluvias de ideas, mapas de empatía y prototipado rápido son comunes en esta fase.

4. Prototipado: Se crean prototipos de las soluciones más prometedoras. Estos prototipos pueden variar en complejidad, desde simples maquetas hasta prototipos funcionales de baja fidelidad. El objetivo es obtener retroalimentación temprana del usuario para iterar y refinar las soluciones.

5. Pruebas con usuarios: Los prototipos se prueban con usuarios reales para evaluar su efectividad y usabilidad. La retroalimentación de los usuarios se utiliza para refinar aún más las soluciones y garantizar que satisfagan realmente las necesidades y expectativas del usuario.

6. Implementación: Una vez que se ha validado la solución con los usuarios, se procede a la implementación completa del software. El enfoque en el usuario continúa durante esta fase, asegurándose de que el producto final siga siendo intuitivo y fácil de usar.

7. Evaluación continua: El proceso de Design Thinking no termina con la implementación del software. Se fomenta una mentalidad de mejora continua, con la recopilación constante de comentarios de los usuarios y la iteración del diseño para abordar nuevas necesidades y oportunidades.

Integrar el Design Thinking en la Ingeniería de Software ayuda a garantizar que los productos tecnológicos no solo sean funcionales y eficientes, sino también significativos y satisfactorios para los usuarios finales. Ahora bien, veamos dos ejemplos de aplicación de Design Thinking en la Ingeniería de Software:

Ahora, expondré algunos ejemplos de cómo se aplica el Design Thinking en la Ingeniería de Software, aclarando que son las etapas, pero que desarrollar cada una de ellas conlleva mayor detalle que no describo aquí, posiblemente en otra netrada presentaré algunas herramientas software para este fin, veamos a continuación dos ejemplos, el primero de ellos es sobre una app médica y el segundo es sobre un learning management system (LMS), un sistema de aprendizaje en línea. Pero primero, les presento esta imagen generada con Microsoft Copilot (no es gran cosa, pero bueno, uniendo las palabras Design Thinking e Ingeniería de Software la obtuvimos).

Ejemplo No. 1.- Desarrollo de una aplicación móvil de salud: se busca desarrollar una app en la que el usuario pueda tener comunicación con su médico. En la app, podrá registrar sus síntomas, el médico podrá verlos, el paciente podrá agendar cita con el médico, mantener su historial. Si aplicamos

  1. Comprensión del usuario: Los desarrolladores realizan entrevistas y estudios de campo con pacientes, médicos y personal de salud para comprender mejor sus necesidades y desafíos en la gestión de la salud.
  2. Definición del problema: Identifican que los pacientes tienen dificultades para hacer un seguimiento efectivo de sus síntomas y medicamentos, y que los médicos necesitan una mejor manera de monitorear y comunicarse con sus pacientes fuera de la clínica.
  3. Ideación: El equipo genera ideas para una aplicación móvil que permita a los pacientes registrar sus síntomas, medicamentos y citas, y compartir esta información de manera segura con sus médicos.
  4. Prototipado: Se crean prototipos de la aplicación con funcionalidades básicas y se realizan pruebas con usuarios para obtener retroalimentación sobre la usabilidad y la utilidad.
  5. Pruebas con usuarios: Los prototipos se prueban con pacientes y médicos reales, y se recopila retroalimentación para iterar y mejorar el diseño.
  6. Implementación: Se desarrolla y lanza la aplicación móvil, con características refinadas basadas en la retroalimentación de los usuarios.
  7. Evaluación continua: el feedback de los usuarios se revisa constantemente para buscar mejoras. Aplicar los fundamentos de la mejora continua.

Ejemplo No. 2.- Sistema de gestión de aprendizaje (LMS, por sus siglas en inglés) para una universidad:

  1. Comprensión del usuario: Se realizan entrevistas, encuestas y talleres con profesores y estudiantes para comprender cómo utilizan el sistema actual, qué funciona bien y qué necesita mejorarse.
  2. Definición del problema: Se identifica que el sistema actual es difícil de navegar y carece de funciones colaborativas, lo que dificulta la comunicación entre profesores y estudiantes y la entrega eficaz de contenido educativo.
  3. Ideación: El equipo de desarrollo genera ideas para un LMS más intuitivo y colaborativo, con características como foros de discusión, herramientas de colaboración en línea y una interfaz de usuario simplificada.
  4. Prototipado: Se crean prototipos de alta fidelidad del nuevo LMS y se prueban con profesores y estudiantes para evaluar la usabilidad y la efectividad de las nuevas características.
  5. Pruebas con usuarios: Se realizan pruebas piloto con un grupo selecto de profesores y estudiantes para obtener retroalimentación adicional y realizar ajustes antes del lanzamiento completo.
  6. Implementación: Se desarrolla e implementa el nuevo LMS, con características mejoradas basadas en la retroalimentación de los usuarios y las necesidades identificadas.
  7. Evaluación continua: el feedback de los usuarios se revisa constantemente para buscar mejoras. Aplicar los fundamentos de la mejora continua.

Estos son solo dos ejemplos que ilustran cómo el Design Thinking se puede aplicar en el desarrollo de software para crear soluciones que estén verdaderamente centradas en las necesidades y deseos de los usuarios finales. Además, te permite una mejor cohesión de tu equipo de desarrollo siempre y cuando se apliquen correctamente los fundamentos de esta metodolgía. En lo personal te recomiendo la Certificación en Design Thinking de Certiprof, yo la tengo, a pesar de ya haberlo estudiado de forma autodidácta y leído algunos libros sobre esto, estudiar para la certificación y pasar el examen me ayudó bastante a comprender aún más esto.

Finalmente, la aplicación del Design Thinking en el desarrollo de software eleva la experiencia del usuario al facilitar la creación de aplicaciones y plataformas más intuitivas. Asimismo, su uso en la definición de requisitos ayuda a identificar problemas, comprender las necesidades de los usuarios y generar diversas opciones de solución.

Es cuanto.

Si quieres citar este artículo en tu texto, documento, etc. puedes hacerlo de la siguiente forma:

Aguilar-Calderón, J. A. (30 de abril de 2024). Design Thinking en la Ingeniería de Software. ANOVA LAB MX. https://anovalabmx.blogspot.com/2024/04/design-thinking-en-la-ingenieria-de.html


Comentarios

Mi foto
José Alfonso Aguilar
Mazatlán, Sinaloa, Mexico
Me gusta aprender y escribir sobre tecnología y desarrollo. Soy Ingeniero en Sistemas Computacionales, trabajo como Profesor-Investigador en la Facultad de Informática Mazatlán, de la Universidad Autónoma de Sinaloa. México. Me gusta combinar la docencia-investigación con el giro profesional del desarrollo de software y gestión de proyectos de innovación.

Entradas más populares de este blog

Historia y versiones de HTML (HyperText Markup Language)

Elon Musk: Neural Link y el Chip en Humanos es Real !!!

Hablemos de Propiedad Intelectual