
[09/08/2021] Las plataformas de desarrollo de código bajo y sin código actuales permiten a los equipos de desarrolladores de software -e incluso a quienes no codifican- entregar, soportar y ampliar una amplia gama de aplicaciones. Se utilizan para crear aplicaciones móviles, ofrecer experiencias a los clientes, optimizar los flujos de trabajo, modernizar las aplicaciones previas, automatizar las integraciones de datos y soportar visualizaciones de datos, por nombrar los usos más comunes.
[Reciba lo último de CIO Perú suscribiéndose a nuestro newsletter semanal]
Los principales atractivos de las herramientas de desarrollo de código bajo y sin código son que pueden ser utilizadas con éxito por desarrolladores "ciudadanos” menos capacitados; que pueden producir aplicaciones más rápido que con los SDK nativos; y que pueden producir aplicaciones por menos dinero. Muchos (pero no todos) de los sistemas comerciales de código bajo y sin código compensan sus ahorros en costos laborales con sus pagos por licencia o suscripciones.
Costos y ahorros de las herramientas sin código y con bajo código
Si está creando aplicaciones para consumidores o clientes, evite los sistemas de desarrollo que le cobran por usuario, y evite los sistemas de desarrollo que no ofrecen un rendimiento similar al nativo. Si el sistema de desarrollo genera aplicaciones con un rendimiento lento o una apariencia y sensación no nativas, es muy posible que los consumidores las rechacen.
Para darle una estimación aproximada, los desarrolladores de software, a nivel de licenciatura en Estados Unidos, ganan entre 150 y 120 mil dólares al año (un promedio de 72 mil dólares), y las aplicaciones de consumo simples, creadas desde cero en código nativo, toman entre seis y 25 meses de trabajo (un promedio de 12 meses de trabajo), por lo que es probable que el desarrollo de aplicaciones nativas simples cueste alrededor de 72 mil dólares. El desarrollo de aplicaciones nativas complejas puede costar más de un millón de dólares.
Si utiliza un sistema de desarrollo de código bajo, que reduce el tiempo de desarrollo de una aplicación simple a un mes de trabajo (cuesta seis mil dólares), pero le cobra una licencia de 10 dólares por usuario, una vez que tenga 6.600 usuarios, su costo total excederá el costo del desarrollo nativo. Una vez más, esa es una estimación aproximada.
En este caso, una herramienta de desarrollo que le cobre por aplicación, por servidor, por desarrollador o por año de desarrollador podría ser mejor para usted. Por otro lado, si está creando muchas aplicaciones para uso interno de unos cientos de empleados, las matemáticas podrían favorecer el pago por usuario.
Las expectativas de los empleados sobre las aplicaciones tienden a ser más bajas que las expectativas de los consumidores, y los empleados realmente no tienen la opción de usar una aplicación cuando es necesario para realizar su trabajo. Puede que se quejen, pero igual lo usarán.
Desarrollo sin código frente a desarrollo de código bajo
Si está utilizando una herramienta de desarrollo sin código, normalmente puede arrastrar y soltar componentes en su paleta de diseño al contenido principal, hasta que se estrelle contra una pared de ladrillos cuando descubra que la herramienta carece de algo que necesita. En ese momento, es posible que se le haya acabado la suerte o que pueda comprar u obtener el componente que necesita del desarrollador de la herramienta o de un proveedor externo.
Considerando que en una herramienta sin código se necesita escribir fragmentos de código, en una herramienta de desarrollo de código bajo, si bien la curva de aprendizaje puede ser un poco más pronunciada, las barreras para extender la herramienta suelen ser menores. En lugar de tener que comprar otro componente, a menudo puede escribir algunas líneas de código para llamar a un sistema, código abierto o API de proveedor.
En algunos ambientes de código bajo, el código es opcional. En otras palabras, el ambiente se puede utilizar para el desarrollo sin código, hasta cierto punto. Los usuarios de negocio pueden realizar el 95% del trabajo de desarrollo, y un programador completa el código necesario para el 5% restante. Estos números variarán según la aplicación y la herramienta.
A menudo, el código que necesita escribir para una herramienta de código bajo es semánticamente similar a un lenguaje que quizás ya conozca. Por ejemplo, Microsoft Power Fx se basa en Microsoft Excel, y Xbasic de Alpha Software surgió de Microsoft Basic. Muchas herramientas de código bajo usan un lenguaje que tiene una relación cercana con JavaScript o incorpora un verdadero motor de JavaScript como V8.
Existe una escuela de pensamiento en el sentido de que el desarrollo sin código es solo un desarrollo de código bajo comercializado para usuarios de negocio. Existe una escuela de pensamiento más realista, en el sentido de que todos los equipos de desarrollo de código bajo y sin código necesitan desarrolladores profesionales que contribuyan a un esfuerzo grupal para proporcionar las partes que los usuarios de negocio no pueden construir por sí mismos: esquemas de base de datos, desarrollo de componentes, arquitectura, diseño de experiencia de usuario y revisión de calidad.
Tipos de herramientas sin código y de código bajo
Antes de comenzar a comprar una herramienta de desarrollo de código bajo o sin código, debe hacerse algunas preguntas sobre la aplicación propuesta para ver si el código bajo o sin código tiene sentido para usted. Le sugiero que escriba sus respuestas para referencia posterior.
* ¿Está creando una aplicación para desktop? ¿Para Windows? ¿Para Mac? ¿Para Linux? ¿Para todo lo anterior?
- ¿Está creando una aplicación web? ¿Para navegadores desktop? ¿Para tabletas? ¿Para smartphones? ¿Para todo lo anterior?
- ¿Está creando una aplicación móvil? ¿Para iPhones? ¿Para iPads? ¿Para Android? ¿Para todo lo anterior?
- ¿Está pensando en escribir código nativo para dispositivos móviles? ¿Utilizar tecnología web híbrida? ¿Usar un shell nativo y contenido web? ¿Para todos los dispositivos mencionados?
- ¿Tiene un presupuesto? ¿Cuál es? ¿Tiene una fecha límite? ¿Qué tan lejos está? ¿Cuántos desarrolladores tiene? ¿Cuáles son sus habilidades? ¿Su presupuesto, fecha límite y recursos son consistentes con sus objetivos para la aplicación? ¿Cómo hizo sus estimaciones?
- ¿Necesita una base de datos detrás de su aplicación? Si es así, ¿es una base de datos existente o una nueva? ¿Actualizarán los clientes la base de datos?
- ¿Su aplicación necesita ser compatible con la comunicación con el cliente? ¿Necesita otras características especiales?
- ¿Está creando una aplicación para uso interno? ¿Para clientes o consumidores? ¿Para socios de negocios? ¿Para todos los usos mencionados?
- ¿Está reemplazando o modernizando un proceso de negocio existente? ¿Está intentando computarizar un formulario en papel existente?
Como implica este aluvión de preguntas, existen muchos tipos de ambientes de destino para las aplicaciones. También hay muchos tipos de paradigmas de diseño para herramientas de desarrollo sin código y de código bajo.
Los objetivos de tiempo de ejecución incluyen aplicaciones desktop para Windows, macOS, Linux y, en ocasiones, incluso DOS. Los objetivos móviles incluyen Android, iOS y sus variantes para tabletas y relojes. Los objetivos de las aplicaciones web incluyen prácticamente todo lo anterior, con las consideraciones adicionales de compatibilidad con el navegador (Chrome, Edge, Safari, Firefox y Opera) y la capacidad de manejar diferentes tamaños de pantalla de manera receptiva. Las aplicaciones web híbridas combinan una aplicación de shell nativa con contenido web.
Los paradigmas de diseño incluyen la personalización de aplicaciones prototipo; ambientes de diseño de arrastrar y soltar con hojas de propiedades y pequeños fragmentos de código; descripciones de campos declarativos; conversión de formularios escaneados; conversión de diseños gráficos o de estructura alámbrica; y generación de formularios a partir de esquemas de bases de datos. Los controles pueden tener diseños absolutos o relativos y pueden tener diseños de flujo o contenedores para grupos de controles. Los propios controles pueden ser nativos de la plataforma o implementados como parte del tiempo de ejecución de la herramienta.
Las capacidades de back end pueden incluir autenticación y conexiones a bases de datos, servicios en la nube y aplicaciones empresariales. Las aplicaciones móviles pueden soportar mensajes de texto, notificaciones automáticas, geolocalización, servicios de foto y video, proveedores de identidad social e integración con redes sociales. Las aplicaciones que utilizan servicios de back end pueden estar diseñadas para funcionar incluso cuando tienen conectividad intermitente y pueden saber cómo resolver los conflictos de datos que pueden surgir cuando más de un usuario intenta actualizar una base de datos sin conexión.
Plataformas líderes de desarrollo de código bajo y sin código
Había más de 400 proveedores en el espacio de desarrollo sin código y con código bajo la última vez que revisé. Gartner cubre alrededor de 250 de ellos, y parece estar agitándose mientras trata de dividirlos en categorías cambiantes. Muchos de los proveedores y algunos de los productos abarcan varias definiciones de categoría.
No creo que las herramientas de gestión de procesos de negocio (BPM, por sus siglas en inglés) y automatización robótica de procesos (RPA, por sus siglas en inglés) deban agruparse con otras herramientas de código bajo y sin código en este momento, aunque existe cierta superposición de tecnología. En mi opinión, la diferencia es que las herramientas BPM y RPA automatizan y organizan otros sistemas como su propósito principal; las herramientas normales de desarrollo de código bajo pueden usar sistemas empresariales, pero solo como un medio para otro fin.
Por ejemplo, una herramienta para automatizar el proceso aburrido, repetitivo y de múltiples sistemas de cumplir con las responsabilidades de un préstamo es la RPA; una aplicación de tableta, que utiliza un agente de servicio de campo para registrar una inspección de ascensor, puede reemplazar los formularios en papel, acelerar el proceso y eliminar algunas transcripciones en la oficina, pero no automatiza el proceso lo suficiente como para calificar como RPA.
Seleccioné los siguientes siete proveedores de desarrollo de código bajo y sin código como ejemplos, y los enumeré alfabéticamente. Tenga en cuenta que la inclusión en esta lista no es una recomendación y la exclusión no es una condena.
- Software Alpha: Alpha Anywhere es una herramienta de desarrollo de aplicaciones rápido, de código bajo y de extremo a extremo para el desarrollo de aplicaciones móviles híbridas, web y desktop, que está orientada a bases de datos, y puede ser utilizada por desarrolladores con una variedad de habilidades. Alpha TransForm es una herramienta sin código a código bajo para el desarrollo de formularios móviles con capacidades fuera de línea que incluyen sincronización automática cuando se reanuda la conexión.
- Appian: Appian ofrece un diseñador visual sin código y herramientas de bajo código para el desarrollo de aplicaciones web y móviles con integración de datos empresariales sin código. Appian ofrece, por separado, una plataforma de automatización para BPM y RPA.
- Claris: Claris FileMaker es un sistema de desarrollo de código bajo para el desarrollo de aplicaciones desktop, web y móviles que incluye su propia base de datos. Cuenta con plantillas integradas, diseño de arrastrar y soltar y una interfaz de usuario gráfica intuitiva. Claris Connect es una plataforma de automatización construida sobre el mismo núcleo que FileMaker.
- Mendix: Mendix Studio es un ambiente de desarrollo, basado en navegador WYSIWYG, para desarrolladores ciudadanos. Mendix Studio Pro es un ambiente de desarrollo, basado en desktop, que incluye todas las capacidades necesarias para el desarrollo de software, incluida la capacidad de agregar código personalizado cuando sea necesario. Mendix también ofrece una plataforma de automatización y un centro de datos.
- Microsoft: Microsoft Power Apps es un creador de aplicaciones de bajo código para Windows 10 que usa plantillas, diseño de arrastrar y soltar; y Power Fx, un lenguaje de programación similar a Excel. Power Apps incluye un modelo de lenguaje que puede generar código Power Fx a partir de descripciones de lenguaje natural. Los desarrolladores profesionales pueden ampliar Power Apps con Azure Functions y conectores personalizados. Power Automate es una plataforma RPA separada con un motor de flujo de trabajo.
- OutSystems: OutSystems le permite arrastrar y soltar elementos visuales para crear interfaces de usuario, procesos comerciales, lógica de negocios y modelos de datos para sus aplicaciones web y móviles, y personalizarlos con código cuando sea necesario. Ofrece unas setenta plantillas y patrones prediseñados. OutSystems Forge contiene miles de módulos de código prediseñados que puede colocar en su aplicación y extender en el IDE si lo desea.
- Salesforce: Salesforce Lightning es una plataforma de desarrollo de aplicaciones de código bajo que se arrastra y suelta para la plataforma Salesforce. Lightning también puede conectarse a sus otras aplicaciones y datos. Lightning App Builder les permite a los usuarios empresariales señalar y hacer clic para crear aplicaciones; los componentes web Lightning les ayudan a los desarrolladores a crear elementos reutilizables.
Factores clave para elegir una plataforma de desarrollo sin código o con código bajo
¿Recuerda la larga lista de preguntas que se hizo anteriormente? Aquí es donde debe consultar sus respuestas. No existe un sistema de desarrollo de código bajo o sin código único que se adapte a todos, a pesar de que sentirá la presión de estandarizar un sistema en toda su empresa. Puede descubrir que diferentes departamentos necesitan diferentes productos de desarrollo, para diferentes propósitos.
- ¿Tiene sentido el modelo de tarifas para usted? Para las aplicaciones de consumo, es probable que no pueda justificar los sistemas de código bajo que cobran tarifas por usuario. Muchos proveedores de código bajo publican sus precios en sus páginas web. Para otros, debe llamar a sus departamentos de ventas. Este no es el momento de ser tímido: pregúnteles sobre los precios y compare las respuestas entre los proveedores que está revisando.
- ¿La plataforma de código bajo/sin código es compatible con todos sus objetivos de implementación deseados? Si no es así, siga buscando. Si ninguna de sus opciones es compatible con todos los objetivos de implementación deseados, considere la posibilidad de reducir su lista de objetivos a los dispositivos o navegadores más importantes.
- ¿La plataforma de código bajo/sin código se adapta a las habilidades de sus desarrolladores? Piense en crear una aplicación con un equipo, en lugar de depender de una sola persona (el "unicornio”) para tener todas las habilidades necesarias. Si no tiene todas las habilidades necesarias para esta herramienta, siga buscando, puesto que otra herramienta podría ser más adecuada para su equipo. Si ninguna de sus opciones de herramientas se ajusta a las habilidades de su equipo, entonces está buscando capacitación, contratación o ambas.
- ¿La plataforma código bajo/sin código mejorará su cronograma de desarrollo? Uno de los principales argumentos de venta del desarrollo de código bajo es un tiempo más corto de comercialización. Si esa es una consideración importante para usted, entonces necesita averiguar cuánto tiempo tomará realmente terminar su proyecto. Pídale al proveedor un cronograma basado en sus requisitos y su experiencia histórica. Hágale la misma pregunta a un desarrollador contratado que haya utilizado la herramienta. Tenga cuidado de incluir la documentación y las fases de prueba, así como el desarrollo inicial y la implementación final en sus estimaciones de tiempo.
- ¿Se ampliará la plataforma de código bajo/sin código? Algunas soluciones de código bajo introducen cuellos de botella que limitan la cantidad de usuarios simultáneos que pueden ejecutar su aplicación; otros están diseñados para manejar cargas muy grandes. En algunos casos, puede evitar los cuellos de botella, del lado del servidor, ejecutando varios servidores detrás de un balanceador de carga. El proveedor debería poder decirle cuántos usuarios pueden manejar una implementación típica, pero para su implementación final debe realizar una prueba de carga.
- ¿La plataforma código bajo/sin código cumplirá con las expectativas de sus usuarios? Los consumidores esperan respuestas inferiores a un segundo de sus aplicaciones, una apariencia y una sensación nativas. En un smartphone, uno de los comportamientos para probar es desplazarse por una lista larga: el desplazamiento debe ser rápido cuando se mueve con fuerza, pero siente que la lista tiene "impulso” y se ralentiza antes de detenerse.
- Realizar una prueba de concepto. No es suficiente aprender un producto de código bajo de forma pasiva durante su período de evaluación gratuita. Elija un subconjunto simple de lo que realmente desea construir y cree una aplicación de prueba de concepto. Le sugiero que haga todo lo posible del desarrollo de POC internamente; sólo pídale ayuda al proveedor cuando su propio personal esté estancado.
Realizar un desarrollo de código bajo es un viaje que puede generar muchas recompensas. Por un lado, demasiadas empresas insisten en que sus aplicaciones móviles deben estar escritas en código nativo, y luego se sorprenden cuando gastan un millón de dólares y emplean un año en una aplicación de iOS y otros 500 mil dólares y seis meses en una aplicación de Android casi idéntica. Vale la pena explorar las alternativas de código bajo, tanto por el ahorro de costos como por la reducción del tiempo de comercialización.
Por otro lado, demasiadas empresas piensan que los usuarios de negocio pueden realizar el desarrollo de código bajo sin la ayuda de desarrolladores profesionales o administradores de bases de datos, y luego se sorprenden cuando el proyecto falla. Si evita ambos extremos y establece objetivos claros, es muy probable que pueda formar un equipo que sepa (o aprenda) cómo crear aplicaciones de código bajo de forma rápida y eficaz.
Basado en el artículo de Martin Heller (InfoWorld) y editado por CIO Perú
Puede ver también: