¿Por qué fracasan hoy el 70% de los proyectos de software?
31 agosto, 2018¿A que nos referimos con Experiencia de Usuario o UX?
2 septiembre, 2018En otra entrada de este blog he tratado de explicar cuales son los problemas más comunes a los que nos enfrentamos a la hora de desarrollar software con éxito. Aparte de unas cifras espeluznantes que deberían hacer poner los pelos como escarpias a todas las industrias, hemos conocido los pecados capitales que todos cometemos a diario. Toca concentrarse ahora en buscar las claves para encontrar una solución. A continuación os muestro cuales son las principales:
Las claves para desarrollar buen software
Tener una razón y un sponsor
Debe haber un problema que solventar. Debe haber una necesidad que cubrir. Debe haber alguien dispuesto a liderar y pelearse por el proyecto. Debe haber un beneficio esperado para realizarlo (tangible o intangible). Debe haber una motivación clara y alguien que tire, por qué si no, mejor no comiences.
Poner al usuario en el centro y hacerle caso
El usuario sabe lo que le gusta. El usuario sabe lo que no le gusta. Así, es clave empatizar con él y conocer cual es su entorno. También es crucial contar con su criterio y su validación en todo el proceso, evitando las asunciones e ir a la fuente, es decir, hablando continuamente con nuestro cliente. Miremos y comprobemos en vez de hablar de oídas. Por qué debemos contar con él continuamente durante el proceso de definición y creación. Recuérdenlo.
Diseñar y tocar las cosas antes de lanzarnos
Evitemos charlas y discusiones intangibles que nunca llevan a nada. Pongámonos manos a la obra y trabajemos en algo tangible desde el inicio. Hagamos tangibles las ideas con prototipos, sean como sean, comenzando por dibujos y acabando por prototipos de “alta resolución” para opinar y avanzar. Es el método del prueba y error. Mejor equivocarse antes e identificarlo a tiempo que esperar al final… El fallo es necesario.
Entender bien los problemas y no tan solo registrarlos
La base de todo el proceso de desarrollo de un buen proyecto de software es la observación y el dialogo. No nos debe dar miedo preguntar nunca. No nos debe dar miedo asumir nuestras miserias internas. Por qué el papel lo aguanta todo. Contrastemos lo que vamos identificando con acciones específicas sobre las que podamos recibir feedback de calidad. Pensemos globalmente y vayamos acotando para acabar focalizándonos en lo realmente importante.
Testear y validar. Testear y validar. Y así una y otra vez…
El camino al éxito normalmente no es una línea recta. El proceso de entender > crear > aprender debe ser lo más rápido posible. Antes validamos y avanzamos. Antes detectamos los errores. Antes decidimos que es lo que nos gusta o lo que no. La alternativa son tiempos interminables y poca información.
Maximizar la creatividad y aprovechar el conocimiento colectivo
Salgamos de nuestra zona de confort para jugar y permitámoslo todo sin juzgar las ideas. Solo de esta manera aparecerán nuevas soluciones a los problemas tradicionales. Si haces siempre lo mismo, obtendrás siempre lo mismo. El pensamiento integrativo es la clave en este caso. Todas las ideas de todos valen por qué cien mentes piensan mejor que una sola. La innovación abierta es importante. Aprovechemos entonces el pensamiento colectivo y vayamos probando. Pero no confundamos: hay que tomar decisiones y avanzar al ritmo adecuado.
Crear valor de manera ágil mientras solucionamos problemas
Construyamos de manera iterativa implicando al usuario para poder ir entregando cosas tangibles que puedan ser valiosas y usables para los usuarios lo antes posible. No esperemos al final para puedan disfrutar de los entregables acabados. No esperemos tampoco al final para cambiar algo que sabemos que no está en línea con los deseos del cliente. Solo así podremos asegurarnos de que lo que hemos diseñado juntos se materializa convenientemente. Es un ejercicio brutal de transparencia que debemos aprovechar.
Las diferentes claves para conseguir vencer a los problemas clásicos del desarrollo de software parecen estar claras ya. Ahora tan solo nos falta encontrar un proceso que nos asegure el poder llevarlas a la práctica. Mi propuesta en este sentido es la siguiente:
Los 7 pasos del proceso
Paso 1 – Descubrir y empatizar
Aquí es donde nos preguntamos ¿Quién es realmente mi usuario? ¿Qué le pasa? ¿Cómo se comporta?
Debemos entonces descubrir y entender las asunciones, preferencias y sesgos de la organización y las personas respecto al tema o los temas específicos que queremos solventar mediante observación y entrevistas.
Paso 2 – Diseñar
Las preguntas a responder son ¿Cuáles son las necesidades de mi usuario? ¿Cuáles son sus percepciones?
Aquí vamos a identificar e interpretar las tendencias y patrones observados respecto a las necesidades y percepciones de los usuarios
Paso 3 – Idear
Nos preguntamos en este paso por ¿Qué se me ocurre para cubrir esas necesidades? ¿Cómo puedo salirme de la norma y ser disruptivo?
Nos interesa poder generar sets de mapas conceptuales divergentes, provocativos y diferentes a partir de los datos, los hechos, la creatividad, la intuición y la investigación
Paso 4 – Prototipar
Las preguntas en esta ocasión son ¿Cómo puedo representar mis ideas? ¿Cómo puedo hacerlo lo más real posible?
Nos centramos en construir representaciones tangibles en forma de prototipos (lo más realista posible) de un número significativo de las ideas obtenidas para obtener feedback
Paso 5 – Testear
Llegados a este punto debemos respondernos a ¿Qué ha parecido bien? ¿Qué no ha gustado? ¿Cómo puedo ajustarlo?
Se trata en esta ocasión de compartir las ideas materializadas con los usuarios (principalmente los implicados en las fases anteriores) para conocer su reacción ante los prototipos planteados
Paso 6 – Construir
Y finalmente en este paso debo preguntarme por ¿Cómo puedo aportar valor cuanto antes? ¿Cómo puedo asegurar la calidad del producto?
Culminamos el proceso con el desarrollo y la implementación de la idea seleccionada de forma ágil e iterativa siguiendo los estándares de calidad que se consensuen con los usuarios
Si recapitulamos después de todo lo que hemos aprendido respecto a la problemática en el fracaso de los proyectos de software y las posibles soluciones que podemos aplicar, nos encontramos rápidamente en una disyuntiva. Podemos elegir por un lado hacer lo de siempre, aplicando un proceso lento, opaco y cargado de incertidumbre que normalmente acaba con un resultado no demasiado favorable a los intereses del usuario. Ésta ha sido hasta ahora la opción más sencilla y más evidente a tenor del desconocimiento de la gran mayoría de usuarios a la hora de elegir.
Pero a día de hoy podemos elegir hacer las cosas de manera diferente. Podemos escoger un proceso iterativo basado en la transparencia y la colaboración estrecha con el usuario en todo momento. Esta es la opción que os he planteado en este texto y con la que se puede asegurar un resultado tangible y usable para el usuario a su finalización ¿Es lo que el quería de inicio? Nunca lo sabremos por que dudo que ni el mismo lo supiera de inicio. Lo habremos descubierto y materializado juntos. En este punto os quiero recomendar el curso gratuito de Coursera sobre este tema. Podeis encontrarlo aquí
¿Qué ganamos aplicando esta opción? Pues tal como he dicho, aseguramos el tiro. Lo que obtienes es válido, aunque para ello tengas que dar mil vueltas. Por qué no siempre el camino lineal es el más efectivo. Muchas veces tienes que ir comprobando si lo que estás gestando tiene la forma que deseas para que en caso de que no sea así, tener la oportunidad de modificarlo. Por eso, si no llegas al final es que el proyecto no era necesario. Mejor eso que llegar al final para darse cuenta de que no funciona.
Otro aspecto importante es que garantizamos el uso futuro de lo que se crea. El resultado es algo consensuado entre todos por lo que se minimiza el riesgo de rechazo. Y aseguramos la implicación total de los usuarios aún a costa de una mayor inversión de su tiempo.
Y por último y tremendamente importante, reducimos el tiempo y el coste. Prototipamos y validamos con los usuarios reduciendo el tiempo de desarrollo y la posibilidad de cambios. Esas son las fases donde tradicionalmente se gasta más tiempo. Pero ojo, No hacer caso de estas recomendaciones (una razón, un sponsor, mimar al usuario, prototipar…) puede hacernos caer en una excesiva iteración y por consiguiente en que nos comamos el tiempo ganado.
Finalmente, os regalo un video en tono distendido y jocoso que sintetiza en cuatro minutos todo lo que hemos visto aquí respecto a los problemas que provocan que el 70% de los proyectos de software salgan mal y a las soluciones que podemos aplicar para que esto no vuelva a pasar nunca. Espero que lo disfruten y lo recomienden en las redes.
TRANSCRIPCIÓN DEL VIDEO
¿Sabían ustedes que, según una reputada consultora americana de investigación de IT, en el año 2011 el 80% de los proyectos de software no salían bien? Increíble ¿no?
Pero tranquilos. 5 años después, esta misma consultora en un simposium sobre IT y Ciberseguridad celebrado recientemente en Londrés al que asistieron un montón CIOs, CEOs, CTOs y otras Cs similares, rebajó la cifra a un tranquilizador 72%
Para acabar de animarnos, otra prestigiosa consultora estratégica global, afirmaba no hace mucho que el 17% incluso van tan mal que ponen en riesgo la existencia misma de la compañía
Esto señores, se traduce en unas pérdidas anuales de 142 millones de Euros para la economía Europea. Un 5% de su PIB… Mucho dinero tirado por el retrete ¿no?
Reconozcámoslo. Lo que obtenemos de estos proyectos normalmente es algo más caro de lo que pensábamos, por lo que hemos tenido que esperar un montón, que no se parece demasiado a lo que pensábamos y que casi nadie va a usar.
Ahora pensemos por un momento en un mundo idílico en el que todos los informáticos saben gestionar proyectos, usan las metodologías adecuadas, tienen las herramientas adecuadas y en que evidentemente los unicornios existen. Para llegar a esta situación entonces todos debemos reconocer que cometemos pecados.
¿Cuáles son los más evidentes?
La soberbia por ejemplo. Nos creemos el más listo de la clase. Tendemos a pensar por los demás y creernos que tenemos la solución a todo. Caemos siempre en la tentación de decir que tenemos que hacer para curarnos en vez de decir que nos duele.
Pecamos además de Gula. Siempre lo queremos todo. Con frecuencia abarcamos más de lo que podemos analizar, gestionar, tratar o digerir. Y eso se traduce en detalle, tiempo y errores.
Otro pecado es la pereza. Es el muéstrame que yo ya escojo. Es la mejor opción cuando no sabemos lo que queremos ni lo que no queremos, pero lamentablemente no aplicable a algo tan intangible como el software.
Y también pecamos de envidia. Culo veo, culo quiero… Queremos siempre lo que vemos en otras partes, aunque no entendamos bien que es ni para qué sirve… Pero recordemos que la gente cuando habla de software no miente, pero tampoco dice toda la verdad.
Pese a todo lo dicho hay espacio para la esperanza en este mar de lágrimas. Sabemos que cosas hacer para mejorar este negro panorama y darle la vuelta a las estadísticas
¿Quieren saberlas?
Pues la primera es poner al usuario en el centro de todo para observarlo y escucharlo. Él es el rey y la clave de nuestro éxito. Debemos evitar siempre las asunciones y las conjeturas e ir directamente a la fuente del saber…
La segunda es una apuesta decidida por diseñar y tocar las cosas antes de lanzarnos al vacío. Debemos crear prototipos realistas que podamos ver con nuestros propios ojos. Ya lo decían: Manos ocupadas, cabecita despierta…
La tercera es obcecarnos en testear y validar. De esta manera detectamos errores, aprendemos y avanzamos. Recordemos que el camino al éxito normalmente no es una línea recta así que apliquemos el tradicional ciclo de prueba, error, prueba, error…
La cuarta es simplemente crear y entregar valor de manera ágil. Trabajemos juntos durante todo el camino asegurando que lo que hemos diseñado juntos se materializa, sin tener que esperar al final para disfrutar
Y recordemos. Hagámoslo saliendo de nuestra zona de confort, jugando y permitiéndolo todo sin juzgar las ideas, dándonos el tiempo y el espacio necesario para ser realmente creativos e innovadores.
Parece simple ¿no? Pues esto que les he explicado señores es la base de cualquier proyecto centrado en garantizar una Experiencia de Usuario óptima y que miles de compañías están aplicando ya, no solo Apple. Es conseguir la cuadratura del círculo combinando la tecnología, las necesidades del usuario y los objetivos de negocio cosa que ocurre cuando el Design Thinking se encuentra con la metodología Agile. Así pues descubramos, definamos e ideemos para después prototipar y testear, y una vez lo tenemos claro construyamos y entreguemos valor continuamente para conseguir el éxito que buscamos todos.
Moraleja: Los proyectos de software pueden salir bien… pregúnteme cómo