Imagine un software que cambia y crece según las necesidades del usuario. ¿Podrá la industria SaaS adaptarse a esta nueva forma de fabricar productos?
Imagínese que está sentado en su estación de trabajo, con un café en la mano; abres una hoja de cálculo de Excel y comienzas a calcular algunos números para un informe que debería estar listo al final del día. Recuerda un nuevo algoritmo sobre el que leyó recientemente que es perfecto para el tipo de análisis que tiene en mente. Sin embargo, existe un problema: Excel no tiene una función para este algoritmo.
Puede codificar a mano, claro, o puede aprovechar los servicios SaaS, abrir el asistente de Bing y preguntar si puede editar su código fuente de Excel para agregar nuevas funciones. Después de unos segundos de buscar en la web y unos minutos de escribir código nuevo y compilar todo, tienes tu nuevo Excel con una nueva función solo para ti. Bienvenido a la era del software maleable.
Si este ejemplo suena a novela de ciencia ficción es porque lo es. La cantidad de desafíos involucrados para hacer que algo como esto funcione es enorme, pero no insuperable. Y aunque todavía estamos a décadas de ver algo tan sofisticado, apuesto a que comenzaremos a ver algunas implementaciones de IA realmente interesantes en torno a la personalización del software en el corto plazo.
La idea de software personalizado no es nada nuevo, ya sea cambiando la estética, retocando/modificando el software para satisfacer nuestras necesidades, o creando una interfaz que priorice la accesibilidad. Pero eso es como cambiar el color y los asientos de tu auto. Al final, sólo te estás adaptando por comodidad, pero el chasis y el motor subyacentes permanecen sin cambios.
El paradigma del software tradicional
Casi todo el software moderno se basa en una única suposición: "los diseñadores saben más". Esto, en sí mismo, no es algo malo. Después de todo, gastamos billones de dólares en investigación para comprender la mejor manera de desarrollar software para nuestros usuarios. Hay cientos, si no miles, de libros y talleres sobre UI, UX, GUI y otros temas relacionados con la experiencia del usuario.
Hablemos un poco sobre los frameworks más populares para el desarrollo front-end. Angular y React, ambos respaldados por grandes corporaciones (Google y Meta), están construidos desde cero para brindar a los desarrolladores una flexibilidad increíble y, con suficiente creatividad, pueden permitirles crear una aplicación web poderosa y personalizada.
Excepto que, como cualquier otro marco sobre la faz de la tierra, Angular y React son tercos y cuanto más te desvías del estándar del marco, más dolores de cabeza traerás a tu vida. Esto es especialmente relevante en el desarrollo angular. La mayoría de los desarrolladores tomarán el camino de menor resistencia, dando forma a su visión de cómo el marco espera que usted cree la aplicación. Nuevamente, no es algo malo en sí mismo considerando cuánto pensamiento y planificación se invirtió en la construcción de estas estructuras.
Ahora agregue otra solución probada a su pila tecnológica, algo como Bootstrap o Bulma, y tendrá una página web hermosa y útil que se parece a cualquier otra aplicación web del mercado. Por un lado, esto es genial porque los usuarios ya saben qué esperar. Una vez que vea una barra de navegación, las verá todas. Por otro lado espero que tengas una buena idea para potenciar tu producto, porque tu estética no llama la atención de nadie.
No quiero parecer un desarrollador con superioridad moral; de hecho, todo lo contrario. Seré el primero en admitir que soy parte del problema. Es fácil caer en la mentalidad de que "el desarrollador sabe más". Estas son algunas de las razones:
- Falacia del costo hundido : la mayoría de nosotros hemos gastado décadas y miles de dólares estudiando y aprendiendo a codificar, crear aplicaciones y crear experiencias de usuario. En este punto, inconscientemente defendemos nuestra posición de poder, diciéndonos a nosotros mismos que sabemos qué es lo mejor.
- Enfoque único: como dice el refrán, no se puede complacer a todos, entonces, ¿qué se hace cuando se intenta llegar al público más amplio posible? Sigues la norma, el tipo de servicio más común que atraerá al mayor número de personas. Desafortunadamente, esto también significa no considerar los valores atípicos.
- Búsqueda de tendencias: cuando vemos el éxito de alguien, lo más común en el mundo es querer un pedazo de ese pastel. Basta mirar a Hollywood y cómo Marvel ha obligado a todos a intentar impulsar su propio universo cinematográfico. Las tendencias son señales de hacia dónde se mueve la cultura y, para ser honesto, los desarrolladores e inversores son tan susceptibles al FOMO (miedo a perderse algo) como el usuario promedio.
En realidad, es muy fácil. Tenemos acceso a los datos, leemos y escuchamos conocimientos clave de la industria y vemos cómo lo logran los productos exitosos. Es obvio que somos nosotros los que realmente sabemos hacerlo. ¿Qué pasa cuando TI se ve inundada de tickets porque la gente no entiende nuestros sistemas? Son sólo los usuarios siendo usuarios.
Y este es quizás el mayor culpable detrás de esta mentalidad de "yo sé más": las ideas tóxicas que nosotros, los desarrolladores, tenemos hacia los usuarios. Sí, tenemos una mejor idea del software; sí, entendemos las limitaciones; Sí, hay que fijar expectativas para evitar exigencias que estén a un paso de “convertir el plomo en oro, por favor”. Pero la perspectiva lo es todo y, a veces, estamos tan encerrados en nosotros mismos que no podemos ver cómo una visión exterior puede cambiar nuestros paradigmas para mejor.
La alternativa: software maleable
El software maleable es un concepto acuñado por Philip Tchernavskij en su tesis doctoral de 2019 . Este enfoque tiene como objetivo aumentar el poder de los comportamientos de adaptación existentes, permitiendo a los usuarios separar y recombinar su interfaz. El software maleable implica interfaces que permiten a los usuarios reorganizar, agregar o eliminar elementos en la granularidad de los elementos individuales de la interfaz de usuario.
Además, el software maleable podría, en teoría, servir como filosofía base para crear aplicaciones que se escalen y cambien según los deseos del usuario.
Como puede decirle cualquier desarrollador o cualquiera que haya contratado a un desarrollador de software para un proyecto grande, el software tiende a inflarse con el tiempo. Échale un vistazo a Twitter. Lo que una vez comenzó como una aplicación simple para compartir tus ideas en 120 caracteres o menos se ha convertido en una hidra complicada: compartir videos, Historias tipo Instagram, espacios, marcas de verificación azules y marcas de verificación doradas. Algunas de estas funciones permanecen hoy, mientras que otras han ido y venido, como el último producto de Google.
Aunque la hinchazón no es lo mismo que el crecimiento, estos dos conceptos están profundamente correlacionados. Al principio, Excel no era el monstruo que es hoy, pero a medida que agregamos más y más funciones, el software creció en complejidad y terminamos con el gigantesco que tenemos hoy.
Ahora bien, no se trata de no saber cuándo parar. Para seguir siendo competitivos en el mercado actual, las empresas están tratando de ofrecer una solución que los gobierne a todos (perdón por el juego de palabras de El Señor de los Anillos ), lo cual es extraordinario para aquellos que ya forman parte de la comunidad, pero un infierno para los recién llegados.
Seamos honestos. La primera vez que abriste una hoja de cálculo de Excel probablemente te sentiste abrumado por la cantidad de opciones, y sólo después de horas y horas de sufrimiento y búsqueda de tutoriales descubriste cómo hacer algo que te habría llevado unos minutos si lo supieras. donde buscar.
Como ex psicólogo y científico de datos, fui un gran usuario de SPSS de IBM, un fantástico software de estadística que tiene todas las herramientas analíticas que puedas imaginar. Entonces, ¿por qué cambié a Python y R? Primero, porque me gustan mis soluciones de código abierto y, segundo, porque quería tener más libertad para vincular mi análisis de datos a otras funcionalidades.
Pero en tercer lugar, y lo más importante, porque no quería navegar por cuatro menús para obtener los promedios de algunas de mis variables. Con Python, sólo necesito unas pocas líneas de código que puedo reutilizar como desee. A veces sólo necesito un análisis descriptivo rápido sin la molestia de tener que abrir una aplicación pesada.
Este es un caso de uso de software maleable: poder cambiar y adaptar la interfaz para satisfacer mis necesidades como analista de datos. Pero hay más. En los últimos años, ha habido una tendencia creciente a explorar cómo los usuarios podrían escribir sus propias aplicaciones, agregarles funcionalidades y escalarlas como mejor les parezca. Esto también es parte de la filosofía maleable.
Conozco biólogos, sociólogos, psicólogos y matemáticos, y todos tenemos una cosa en común: todos necesitamos software para hacer nuestro trabajo. Pero el tipo de pruebas que realizo son diferentes a las que necesita un biólogo o un sociólogo. Entonces, ¿qué pasaría si en lugar de tener un software con todas las herramientas, tuviéramos un software básico al que pudiéramos agregar funcionalidad según fuera necesario?
Como escribió Kay en 1984: "Ahora queremos editar nuestras herramientas ya que editamos nuestros documentos anteriormente". Es simple. En lugar de tener “Facebook nuevo” o “Facebook viejo”, podríamos construir “mi experiencia Facebook” y con la conectividad que tenemos hoy los usuarios podrían compartir sus modelos, de la misma manera, la comunidad cervecera casera crece a medida que las personas comparten sus recetas.
Por supuesto, ahí está el elefante gigante: ¿cómo lo hacemos? Aquí es donde surge la violación de la alfabetización digital. La personalización significa que en algún momento tendremos que dar instrucciones a una computadora (coordenadas, condicionales), entonces, ¿cómo logramos esta piedra filosofal del diseño de software? Irónicamente, la respuesta puede estar donde menos la esperamos.
¿Son los videojuegos un software maleable?
Lo admito, soy un gamer y aprovecharía cualquier oportunidad para hablar de juegos, pero en este caso es un ejemplo fantástico. Durante décadas, los videojuegos han proporcionado herramientas para que los usuarios jueguen y jueguen, dando lugar a la llamada comunidad de modding. Si bien esto ha cambiado un poco en las últimas décadas, la personalización todavía está arraigada en el ADN de los juegos.
Déjame contarte la historia de una de las franquicias más importantes de la historia de los videojuegos, League of Legends, un MOBA gratuito donde equipos de 5 jugadores compiten entre sí, intentando destruir la base contraria. Hoy League of Legends es una franquicia multimedia valorada en millones.
Desde sus humildes comienzos, la idea detrás del juego, que es League of Legends, comenzó como un mapa personalizado para el juego Warcraft 3. La comunidad tomó las herramientas de modificación del juego y creó una experiencia nueva y única, muy diferente del juego original. y que creó un género completamente nuevo.
Parte de la popularidad de World of Warcraft (el rey de los MMORPG con una vida útil de más de 15 años) es su personalización. Con algunas habilidades de Lua, puedes crear y cambiar la interfaz como quieras. Algunos de los complementos creados por la comunidad fueron tan disruptivos que Blizzard (la compañía detrás del juego) se vio obligada a cambiar sus API y prohibir algunas de las herramientas.
E incluso sin modificaciones, la mayoría de los juegos tienen opciones para cambiar el diseño de la GUI, cómo se controla el juego y cómo se ve. ¿Quieres tener una experiencia de 120 FPS? ¿O prefieres jugar a 30 FPS con gráficos realistas? Depende de usted, el jugador, elegir qué opciones gráficas desea habilitar y deshabilitar para una experiencia óptima.
Así que aquí hay dos lecciones que aprender: Primero, podemos crear opciones y controles deslizantes, así como interfaces gráficas flexibles que nuestros usuarios pueden usar dentro de ciertas restricciones. Además, podemos crear API fáciles de usar para que la comunidad juegue y cree un software mejor maleable.
Y luego está la tercera opción: la IA. A medida que la IA mejora, es posible que un usuario ni siquiera necesite saber cómo codificar para crear su interfaz perfecta o agregar funcionalidad a su software. Simplemente pasa las instrucciones a una interfaz similar a ChatGPT y deja que la IA haga su magia.
¿Qué significa todo esto para SaaS?
El concepto de software maleable, tal como lo concibió Philip Tchernavskij, puede tener implicaciones de gran alcance para el desarrollo de software, incluida la forma en que abordamos el software como servicio (SaaS) y la subcontratación de SaaS. Básicamente, el software maleable tiene como objetivo permitir a los usuarios modificar y adaptar sus interfaces, cambiando, agregando o eliminando elementos según sea necesario. Al extrapolar esta filosofía, podemos imaginar un futuro en el que las aplicaciones estén diseñadas para evolucionar y escalar según los deseos y requisitos de los usuarios. Pero, ¿cómo podría esto alterar potencialmente el modelo SaaS actual?
Experiencia de usuario personalizada
Una de las formas clave en que el software maleable puede alterar SaaS es remodelando fundamentalmente la experiencia del usuario. Hoy en día, muchas aplicaciones SaaS son esencialmente soluciones únicas. Tienen un conjunto de características y funciones, y los usuarios deben adaptar sus flujos de trabajo y procesos a las limitaciones del software. Sin embargo, con el software maleable, la dinámica de poder cambia. Los usuarios pueden modificar y dar forma al software para satisfacer sus necesidades y preferencias únicas. Esto podría conducir a una experiencia de usuario mucho más personalizada, lo que resultaría en una mayor satisfacción y retención del usuario.
Escalabilidad y adaptabilidad
Las empresas de SaaS a menudo enfrentan desafíos con la escalabilidad de SaaS a medida que agregan más funciones y capacidades a su software para satisfacer las diversas necesidades de los clientes. Esto a menudo da como resultado un software complejo e inflado que puede resultar difícil de navegar y comprender, especialmente para los nuevos usuarios. Sin embargo, el software maleable podría proporcionar una solución a este problema al permitir a los usuarios agregar o eliminar funciones según sus requisitos específicos. Esto significa que el software puede escalar y adaptarse en sincronía con las necesidades de los usuarios, reduciendo la complejidad y la sobrecarga innecesarias.
Colaboración y comunidad
El software maleable también podría fomentar un sentido más fuerte de comunidad entre los usuarios. A medida que los usuarios personalizan y adaptan su software, es posible que se sientan inclinados a compartir sus “plantillas” o personalizaciones con otros. Esto podría dar como resultado un ecosistema colaborativo donde los usuarios comparten, prestan y desarrollan el trabajo de los demás. Un ecosistema de este tipo podría impulsar la innovación y la participación de los usuarios, lo que daría como resultado un entorno SaaS más rico y dinámico.
democratización del desarrollo
Actualmente, el desarrollo de nuevas funciones o modificaciones de las aplicaciones SaaS está principalmente en manos del proveedor de software. Sin embargo, el software maleable podría democratizar este proceso, poniendo las herramientas de modificación y personalización directamente en manos de los usuarios. Esto se alinea con la creciente tendencia del desarrollo ciudadano, donde los usuarios no técnicos pueden crear o modificar aplicaciones utilizando plataformas de código bajo o sin código.
Desafíos y consideraciones
Si bien el software maleable presenta muchas oportunidades interesantes, también presenta algunos desafíos y consideraciones. Por ejemplo, puede haber problemas potenciales relacionados con la seguridad, el control de calidad y la asistencia al usuario. Si los usuarios modifican y personalizan el software ellos mismos, puede resultar difícil para el proveedor garantizar que el software permanezca seguro y funcione correctamente. Además, brindar soporte al usuario puede volverse más complejo si cada usuario trabaja con una versión única y personalizada del software.
Además, la brecha en la alfabetización digital puede plantear un desafío. Si bien algunos usuarios pueden disfrutar de la oportunidad de modificar y personalizar su software, otros pueden encontrarlo desalentador o abrumador. Por lo tanto, será crucial que los proveedores de SaaS desarrollen herramientas y recursos intuitivos y fáciles de usar para ayudar a los usuarios en este proceso.
En conclusión, el concepto de software maleable podría provocar un cambio significativo en el panorama SaaS. Al poner más control en manos de los usuarios, esto podría conducir a una experiencia de usuario más personalizada y flexible, promover la colaboración y la comunidad, y democratizar el proceso de desarrollo. Sin embargo, estos beneficios deben equilibrarse con los desafíos potenciales en torno a la seguridad, el control de calidad, la asistencia al usuario y la alfabetización digital.
Fuente: BairesDev