Nuestro Blog

Nuestro equipo de especialistas quiso compartir algunos artículos sobre tecnologías, servicios, tendencias y novedades de nuestra industria en la era de la transformación digital.

La tercerización de Software como alternativa para aprovechar cualquier Negocio

La tercerización de Software como alternativa para aprovechar cualquier Negocio

La tercerización es una solución empresarial basada en la transferencia de recursos y responsabilidades a otra empresa que se dedica precisamente a la prestación de dichos servicios. En el mundo de las tecnologías de la información, la subcontratación de software se ha convertido en una práctica cada vez más común debido a las ventajas que representa.

Software Outsourcing Advantages

Illustration by Tiempo Development

 

El proceso de subcontratación está en estrecha relación con el crecimiento y los avances en el área de la tecnología de la información y los sistemas de información de las organizaciones, así como también con el impacto que estos elementos tienen en las relaciones comerciales, laborales y gubernamentales. La globalización, acompañada del acortamiento de las distancias físicas y la posibilidad de trabajar con equipos y organizaciones en diferentes países, han contribuido al avance de esta práctica durante los últimos 20 años. Hoy en día, la tercerización de servicios de TI es una solución importante que permite a las empresas de diversos sectores potenciar los servicios que ofrecen.

 

¿Tercerización de software o soluciones internas?

It is no longer necessary for a company to have an area for each process, or technological infrastructure, to grow. In addition to a great advantage in cost reduction, the main opportunity offered by the outsourcing of technology services is related to innovation. Companies like Huenei have teams for the ideation, design, and development of custom software products to achieve the best solutions for customers.

On the other hand, in-house development often implies that the team becomes outdated with respect to the advances of the industry and the global market. This means that service providers like Huenei can offer innovative and current results that constitute a point of differentiation for client companies.

Additionally, outsourcing in software development gives companies the possibility of focusing their activities on the core of their business, without neglecting the quality of the products developed by suppliers. This is precisely what it is all about, giving the company the possibility to focus on the development of its strategic activities, free from worrying about adjacent tasks.

 

Software Outsourcing Modalities

Las empresas ya no necesitan contar con un sector para cada proceso o infraestructura tecnológica para crecer. Además de una gran ventaja en términos de reducción de costos, la principal oportunidad que ofrece la tercerización de servicios tecnológicos tiene que ver con la innovación. Existen empresas como Huenei que cuentan con equipos para la concepción, el diseño y el desarrollo de productos de software personalizados con el fin de lograr las mejores soluciones para los clientes.

Por otro lado, el desarrollo interno a menudo lleva a los equipos a volverse obsoletos respecto de los avances de la industria y el mercado global. Esto significa que los proveedores de servicios como Huenei pueden ofrecer resultados innovadores y actuales que constituyen un punto de diferenciación para las empresas clientes.

Asimismo, la tercerización en el desarrollo de software brinda a las empresas la posibilidad de enfocar sus recursos en el núcleo de sus actividades sin descuidar la calidad de los productos desarrollados por los proveedores. De eso se trata precisamente: de darle a cada empresa la posibilidad de centrarse en el desarrollo de sus actividades estratégicas, liberándolas de tener que ocuparse de las tareas adyacentes.

 

Modalidades de tercerización de software

En los últimos años, diferentes países han demostrado cierto nivel de especialización o dominio en la tercerización de servicios en diferentes ámbitos. Por ejemplo, la prestación de servicios financieros para América y otros países del mundo generalmente se enfoca en países como México, Argentina, India y otros países asiáticos a través de la modalidad de servicios compartidos. Es común encontrar la prestación de servicios descentralizados de Centro de atención en Colombia o Perú para mercados de habla hispana. Y son países como Argentina, Chile y Brasil los que se caracterizan por ofrecer servicios de desarrollo de software y tecnología de alto nivel.

En este sentido, las empresas pueden optar por tres enfoques a la hora de seleccionar un proveedor de servicios de tercerización en función de su ubicación: Onshore, nearshore u offshore.

Onshore. Básicamente se refiere a la contratación de servicios tecnológicos de la mano de una empresa que se encuentra ubicada dentro del mismo territorio nacional. Un ejemplo de este campo es un proyecto realizado por Huenei para Aeropuertos Argentina 2000 (Argentina), que se basó en el desarrollo de un sistema de relevamiento de pasajeros con análisis automático de respuestas y presentación de indicadores en paneles de control.

Nearshore. Se refiere a empresas que tercerizan servicios a organizaciones en otros países, pero que son cercanos, ya sea geográficamente, en términos de zona horaria, idioma, cultura u otros aspectos de relevancia. Por lo general, esto facilita la implementación y reduce la desigualdad en la transferencia de conocimientos y las horas de capacitación. Como ejemplo, cabe mencionar el proyecto que llevó adelante Huenei para la Contraloría General de la República (Chile), en el cual se desarrolló una aplicación móvil para que los ciudadanos puedan acceder a información sobre las obras públicas que realiza el Gobierno de Chile.

Offshore. Otro método de desarrollo de tercerización es el conocido como offshore, que consiste en contratar los servicios de empresas en otros países distantes en términos de cultura, geografía, ubicación, idioma, etc. Al igual que la modalidad nearchore, esta estrategia trae importantes ventajas, pero por lo general implica una mayor reducción de costos, lo cual justifica las limitaciones culturales horarias y lingüísticas en la relación entre las personas. Para ejemplificar esta alternativa, podemos hablar de una plataforma de asistente de voz que Huenei desarrolló para SoundHound (Estados Unidos); el proyecto consistió en el desarrollo de un sistema de reconocimiento de voz.

Como conclusión de todo lo que se mencionó en este artículo, podemos estar de acuerdo en que el avance de las tecnologías y la globalización han llevado al rápido desarrollo de la industria de la tercerización. Cada vez son más las empresas que deciden tercerizar diferentes servicios, y el desarrollo de software es una de los principales sectores en los cuales es visible esta tendencia. La tercerización representa grandes ventajas para las empresas que necesitan productos de software para lograr sus objetivos y crecer, independientemente de la modalidad que elijan. Si busca soluciones de tercerización para su organización, lo invitamos a conocer nuestros servicios de Equipos especializados, Aumento de personal y Proyectos llave en mano para determinar cuál es la que mejor se adapta a las necesidades de su proyecto y de su empresa.

¿Cuál es el lenguaje de programación más importante en 2021?

¿Cuál es el lenguaje de programación más importante en 2021?

A medida que la programación se torna indispensable en la mayoría de los trabajos actuales, es posible que te preguntes dónde enfocarse en tu nuevo camino para aprender a programar, y teniendo en cuenta la enorme cantidad de lenguajes que existen, tomar la decisión correcta puede ser una aventura intrincada. Es por eso que decidimos escribir sobre cuál es el lenguaje de programación más importante en 2021.

En este artículo analizaremos por qué Python, el lenguaje que se está apoderando de todas las industrias, desde las artes y el diseño hasta la bioingeniería y la fabricación, puede ser una alternativa importante para los principiantes en 2021.

What's the most important programming language in 2021?

Image by Chris Ried on Unsplash

¿Qué es Python y para qué puede servir? 

La programación es la forma en que nos comunicamos con las computadoras y Python es una de las muchas formas en que podemos decirles qué hacer, al igual que JavaScript, HTML, R y SQL. La clave de Python es su relativa facilidad de uso y su enfoque orientado a objetos.

Los números hablan por sí solos: según el índice TIOBE, que mide la popularidad de los lenguajes de programación por medio de motores de búsqueda y clasificaciones, Python está a punto de convertirse en el lenguaje más popular antes de C y Java por primera vez en 20 años desde que se utiliza el índice.

Python fue obra de Guido van Rossum y, desde su lanzamiento en 1991, no ha dejado de evolucionar hasta convertirse en un lenguaje útil para crear aplicaciones web, conectar sistemas de bases de datos, modificar archivos, realizar cálculos matemáticos, manejar big data e incluso trazar prototipos.

La instalación gratuita de Python y la ejecución de código en Mac, Linux o Windows no toma más de 10 minutos. La versión más reciente del lenguaje se llama Python 3 y tiene una sintaxis más simple que la versión anterior; también sirve mejor para el desarrollo de trabajos de aprendizaje automático, inteligencia artificial y ciencia de datos.

La mayoría de la gente dice que programar en Python es similar a hablar en inglés de manera simple, y es por eso que el lenguaje suele resultar tan intuitivo desde el principio. Al mismo tiempo, es un lenguaje de programación orientado a objetos, es decir que permite representar el mundo real utilizando estructuras con comportamientos.

La programación orientada a objetos es simple porque permite a los programadores vincular estados, que representan las características de los objetos, con comportamientos y sus respectivos objetos divididos por clase. Veamos un ejemplo:

Object-oriented programming

Las librerías de Python, que son módulos de código reutilizables, son otra gran ventaja competitiva que hace que este lenguaje tenga un rendimiento superior. Hay más de 137.000 librerías que pueden eliminar la necesidad de escribir código desde cero, y la mayoría de ellas son de código abierto.

Un aspecto notable de las librerías es que pueden ayudarlo a completar tareas que de otro modo tendría que realizar en un lenguaje diferente. Por ejemplo, la librería Pandas es de gran utilidad para la creación de modelos y el análisis de datos, tareas que por lo general se suelen realizar con lenguajes más específicos como R.

Cómo aprender Python: Los mejores cursos, aplicaciones y libros 

Contrariamente a la creencia popular de que la programación solo es útil para trabajos relacionados con la tecnología, Python puede ser la siguiente habilidad que necesita para llevar adelante sus proyectos, incluso si su campo de trabajo no está relacionado con la tecnología de la información.

El código Python está en todas partes: está presente en la vida cotidiana cada vez que Amazon, Netflix, Youtube o Spotify nos recomiendan algo según nuestras preferencias, e incluso cuando hablamos con un bot o miramos Instagram o Snapchat. En Huenei, realizamos todo tipo de desarrollos de software con este increíble lenguaje.

Al mismo tiempo puede servir para fines profesionales, como análisis y visualización de datos, aprendizaje automático y minería de datos, así como también aspectos más personales, como potenciar el rendimiento de sus finanzas personales mientras se mantiene al día con los precios del bitcoin. Así que aquí tenemos una lista de los recursos más útiles disponibles para aprender este lenguaje:

Freecodecamp.org es uno de los mejores recursos en Internet para aprender a programar de forma gratuita. Esta plataforma web fundada por una organización sin fines de lucro ofrece una abundante biblioteca de cursos a la cual acceden más de 350.000 estudiantes cada mes.

Además de Python, en freecodecamp.org también se puede aprender JavaScript, CSS y HTML, y cada vez que el usuario completa un módulo, recibe un certificado. Otro beneficio es que cuenta con salas de chat y comunidades online donde se puede pedir ayuda y despejar dudas.

  • Sololearn (Android/ iOS) (Free / Pro version) 

El mejor aspecto de esta aplicación para aprender Python es que permite comunicarse con otros estudiantes en cada lección, lo cual la convierte no solo en una plataforma de aprendizaje sino también en una red social; de este modo nunca se sentirá solo mientras intenta resolver un error.

Sololearn utiliza cuestionarios como método de evaluación, y cada sesión contiene un glosario terminológico. También ofrece desafíos y competencias a través de los cuales el usuario obtiene puntos que luego podrá mostrar.

Este curso puede llevarlo de principiante a experto en el desarrollo de programas para el análisis de datos con Python 3. Y como su nombre lo indica, es sencillo para aquellos que nunca han tenido un acercamiento a este lenguaje. Se puede asistir al curso como oyente de forma gratuita u optar por una evaluación paga con un certificado.

El contenido incluye conceptos fundamentales que se explican en el libro de texto “Python for Everybody” (Python para todos) y enseña cómo manejar estructuras de datos, acceder a datos web y usar bases de datos. Al final, podrá recibir un certificado de finalización después de haber completado el proyecto final del último módulo.

Si bien aprender un lenguaje de programación en un solo día parece muy poco realista, si lo que busca es un enfoque práctico, este libro te resultará ideal, ya que te hará poner manos a la obra desde el comienzo.

Después de enseñarte cómo instalar algún software necesario, te enseñará conceptos básicos como variables, operadores, enteros, flotantes y cadenas al mismo tiempo ofrece ejemplos.

Casos de uso de Serverless Computing

Casos de uso de Serverless Computing

La revolución de la informática sin servidores ha llegado para quedarse, y es que esta novedosa tecnología permite desarrollar aplicaciones sin tener que pasar por la gestión y administración de un servidor. Bajo este modelo, las aplicaciones pueden ser agrupadas y cargadas a una plataforma para luego ejecutarlas y escalarlas en la medida en que se incrementa la demanda de las mismas.

Si bien es cierto que la “Serverless Computing” no suprime el uso del servidor cuando se ejecuta un código, si elimina todas las actividades relacionadas al mantenimiento y actualización del mismo. Estableciendo un modelo eficiente donde los desarrolladores logran desvincularse de esas tareas rutinarias para enfocarse en actividades más productivas, y con ello, elevar la eficiencia operacional de la empresa.

¿Qué es la función como servicio (FaaS)?
La función como servicio FaaS es un modelo que permite ejecutar diversas acciones informáticas en función a los eventos, y gracias a ella, los desarrolladores pueden administrar las aplicaciones logrando “baipasear” el uso de servidores durante su gestión.
En el mundo de la informática, las funciones son las encargadas de administrar los estados de un servidor, por esta razón, el modelo FaaS, desarrolla una nueva lógica que posteriormente es ejecutada en otros contenedores ubicados en la nube.

En términos generales, la función como servicio FaaS, nos permite el diseño de aplicaciones en una nueva arquitectura donde el servidor pasa a un segundo plano y la ejecución de códigos por eventos se convierte en el pilar fundamental del modelo. Esto quiere decir, que los procesos subyacentes que ocurren normalmente en un servidor no se ejecutan continuamente, pero se encuentran disponibles en caso de necesitarse.

Esto último se convierte en una clara ventaja del modelo FaaS al permitir a los desarrolladores escalar de forma dinámica, es decir, implementar la automatización de la aplicación para que se reduzca o incremente en función a la demanda real.

Además de lo anterior la función como servicio (FaaS) incrementa la eficacia y rentabilidad de las operaciones, ya que el cobro por parte de los proveedores no ocurre cuando existe inactividad sino cuando se consumen recursos.
Todo esto hace que el modelo FaaS se convierta en un elemento innovador dentro del reciente campo de la arquitectura serverless al minimizar la inversión en infraestructura, aprovechando las ventajas competitivas de la informática en la Nube

La evolución de la informática sin servidor
Con el advenimiento de la nube en la primera década del año 2000, las personas tuvieron la oportunidad de almacenar y transferir datos en la red, dejando a un lado los discos duros de sus ordenadores.

Esto, indudablemente generó importantes ventajas para el usuario, quien tuvo la oportunidad de acceder de manera inmediata a su información utilizando cualquier dispositivo conectado al internet.

Sin embargo, para los desarrolladores había un elemento que faltaba en esta ecuación, se trata del lugar donde se implementaban las aplicaciones o software. En este sentido, se implantó un modelo de “Máquina virtual”, en donde se podía apuntar a un “Servidor Simulado”, generando una importante flexibilización en las actualizaciones y migraciones, y con ello, se pudo dejar a un lado los problemas asociados a las variaciones del hardware.

A pesar de este avance, las “máquinas virtuales” tenían algunas limitaciones en su funcionamiento, y esto dio pie a la creación de los contenedores, una nueva tecnología que permitía a los administradores fragmentar el sistema operativo con la finalidad de mantener varias aplicaciones activas de forma simultánea, sin que una interfiriera en la otra.

Al observar esta realidad, podemos notar que todas esas tecnologías mantienen el paradigma del “donde se ejecuta una aplicación” como su estructura fundamental. Bajo este escenario surge Serverless Computing, la cual promete otro nivel de abstracción que centra su mirada en el código en sí, y con ello, resta importancia al lugar donde se aloja dicho código.

Con el advenimiento a finales del año 2014 del servicio AWS Lambda de Amazon, se crea un hito en la arquitectura serverless, ya que finalmente los desarrolladores podían centrar sus esfuerzos en la creación de software sin tener que preocuparse por el hardware, el mantenimiento del sistema operativo, la ubicación de la aplicación, así como su nivel de escalabilidad.

Casos de uso de la informática sin servidor
A continuación mencionaremos algunos casos exitosos de empresas que aplicaron la tecnología serverless, o informática sin servidor, dentro de sus organizaciones:

Caso 1. Major League Baseball Advanced Media (MLBAM)
La Major League Baseball ha utilizado la tecnología de informática sin servidor para ofrecer, a todos sus fanáticos, datos de los juegos de béisbol en tiempo real a través de su producto “Statcast”. Esta adquisición ha incrementado la velocidad de procesamiento de MLBAM, así como también la posibilidad de manejar mayor cantidad de datos.

Caso 2. T-Mobile US
T-Mobile US, es una operada de telefonía móvil con una fuerte presencia en el mercado norteamericano. Esta ha empresa ha decido apostar por la tecnología serverless consiguiendo importantes beneficios en cuanto a la optimización de recursos, a la simplicidad del escalado, y en la reducción de parches informáticos, aumentando con esto su capacidad real para responder de una forma mucho más eficiente a todos sus clientes.

Caso 3. Autodesk
Autodesk es una empresa que desarrolla software para la industria de la arquitectura, la construcción y la ingeniería. Recientemente esta organización decidió aplicar la tecnología serverless, con el objetivo de administrar su desarrollo, así como el tiempo de comercialización de todos sus productos. En consonancia con esta política, Autodesk creo la aplicación “Tailor”, como una respuesta eficiente a la gestión de las cuentas de sus clientes.

Caso 4. iRobot
iRobot es una empresa que diseña y fabrica dispositivos robóticos destinados al uso dentro del hogar y también en las industrias. Desde que la organización decidiera involucrarse con la tecnología de la informática sin servidor, la capacidad de procesamiento de datos de sus robots se incrementó sustancialmente, permitiendo además la captación de flujos de datos en tiempo real. De esta manera la novedosa arquitectura serverless les permite concentrase en sus clientes y no en las operaciones.

Caso 5) Netflix
Netflix se ha convertido en uno de los proveedores de contenido multimedia online bajo demanda más grande del mundo. Siendo consecuente con su espíritu innovador, esta empresa ha decidido utilizar el serverless computing para generar una arquitectura que ayude a optimizar los procesos de codificación de sus archivos audiovisuales, así como el monitoreo de sus recursos.

Conclusiones
Cuando observamos la evolución del serverless computing, y como este ha logrado impactar de manera significativa los procesos informáticos en general, entendemos que este novedoso sistema se convertirá rápidamente en el siguiente paso del mundo de la computación en la nube, auspiciando un futuro prometedor que enfila sus baterías hacia la adopción de un enfoque operativo multimodal.

¿Qué es Serverless Computing?

¿Qué es Serverless Computing?

La innovación en el mundo de la informática ocurre a un ritmo vertiginoso en todas y cada una de sus áreas, generándose importantes avances en los procesos relacionados con la “Severless Computing”, o también denominada “Arquitectura Serverless”, o simplemente, “Informática sin Servidor”.

Bajo ese contexto cada día son más las empresas que dirigen su mirada hacia la “Nube”, como una forma de optimizar la creación y ejecución de aplicaciones y procesos, minimizando el uso de servidores. De esta manera, la informática sin servidor se convierte en un elemento clave para el desarrollo adecuado de la arquitectura interna de un software.

Si bien es cierto que el severless computing disminuye el uso de un servidor, este no desaparece en su totalidad, simplemente se optimiza y redirige su uso por parte del proveedor de la nube, quien será finalmente el responsable de todas las actividades rutinarias que se asocian al mantenimiento de los servidores.

Historia
La creación de una aplicación web durante sus inicios requería del uso de hardware que permitiera la ejecución de un servidor, convirtiéndose en algunas ocasiones en un proceso complicado y costoso. Posteriormente, con el advenimiento de la nube, las empresas y los desarrolladores tuvieron la posibilidad de alquilar espacios en servidores remotos para realizar sus actividades.

Sin embargo, este proceso tampoco resultó del todo eficiente, ya que las empresas contrataban un espacio superior al necesario para darle estabilidad al sistema en caso de picos de demandas muy elevados, incurriendo de esta manera en gastos adicionales, por esta razón, surgió la necesidad de contar con una plataforma que le permitiera a los desarrolladores pagar solo por el servicio utilizado.

En este sentido, la historia de la informática sin servidor es reciente, encontrándose los primeros reportes de esta tecnología en un artículo del especialista en aplicaciones descentralizadas y desarrollo sin servidor, Ken Fromm, publicado en octubre 2012 cuyo título es “Why the Future of Software and Apps is Serverless”, o en español, “Por qué el futuro del software y las aplicaciones no tiene servidor”.

Para noviembre de 2014, la empresa Amazon lanza al mercado su servicio “AWS Lambda”, el cual permite a los desarrolladores ejecutar códigos y administrar de forma automática todos sus recursos sin la necesidad de manejar la infraestructura que subyace durante estos procesos.

Luego de esto en julio del 2015, Amazon crea “API Gateway”, un servicio para la creación y mantenimiento de API REST, HTTP y WebSocket, donde los desarrolladores puedan generar Interfaz de Programación de Aplicaciones que accedan a Amazon Web Services o a otros servicios web, así como también a los datos almacenados en la nube. Finalmente en octubre de 2015, nace “Serverless Framework” como el primer marco desarrollado para crear aplicaciones en AWS Lambda.

Visión general de la arquitectura sin servidor
El Serverless Computing, o la arquitectura sin servidor, no implica la total inexistencia de un servidor como tal, ya que en realidad lo que se busca con este sistema es que el proveedor de la nube administre adecuada y eficientemente todos los procesos relacionados con el servidor en sí.
En este sentido, una de las características que resalta de Serverless Computing es el abandono de la forma tradicional de gestionar los servidores en una empresa, para sustituirlo por la administración automatizada que lleva a cabo el proveedor de la nube.

Esto significa, que el proveedor de la nube es el responsable de administrar todos los recursos organizacionales durante la ejecución de una actividad en particular, quedando relegada la antigua acción administrativa que realizaban los usuarios dentro de la organización.

Bajo este novedoso esquema, las actividades informáticas de una empresa se facturan en función a la necesidad de recursos para cada tarea en particular, generándose un claro contraste con el antiguo modelo donde se contrataban espacios que a menudo no se utilizaban, obteniendo con esto un importante ahorro de capital, ya que solo se paga lo que efectivamente se utiliza.

Además de lo anterior, en el modelo Serverless Computing ya no es necesario hacer reservas de servidores, evitándose con esto que los desarrolladores vallan al servidor mediante una Interfaz de Programación de Aplicaciones (API) para agregar recursos, ya que será el proveedor de la nube el total responsable de realizarlo automáticamente.

Ventajas
La informática sin servidores presenta una serie de ventajas cuando se compara con el modelo tradicional, y entre ellas podemos mencionar las siguientes:

  • La informática sin servidor reduce significativamente los costos operativos del desarrollador, ya que permite pagar solo por el espacio utilizado.
  • Aumenta la productividad de las empresas, quienes tendrán la posibilidad de asignar aquellas tareas relacionadas a la administración de servidores a terceros, y con ello enfocarse directamente en el desarrollo de las aplicaciones.
  • Los tiempos asociados a la comercialización disminuyen en una plataforma Severless Computing, ya que los desarrolladores tendrán la opción de modificar o agregar paulatinamente los códigos.
  • Los proveedores de este novedoso servicio pueden gestionar todo lo relacionado al escalado de códigos bajo la demanda real.
  • Permite enfocarse en unificar el desarrollo de software y la operacionalización del mismo, es decir adoptar la práctica de ingeniera de sistema “DevOps”.
  • Optimiza el desarrollo de aplicaciones gracias a la incorporación de componentes esenciales del modelo BaaS que ofrecen otros proveedores.

Desventajas
En cuanto a las desventajas o inconvenientes de la informática sin servidores podemos mencionar lo siguiente:

  • Existe una importante restricción en la capacidad interactiva de los proveedores de la nube que influye directamente en la personalización y flexibilización de los sistemas.
  • Se genera dependencia de los proveedores del servicio.
  • Pudiese ocasionar algunos problemas asociados a la falta de control de servidores propios.
  • El ingreso a máquinas virtuales y sistemas operativos se ve limitado.
  • Implementar una arquitectura serverless implica un esfuerzo económico ya que, por lo general, se requiera actualizar los sistemas para que estén acordes con las demandas del proveedor.

¿Qué función desempeña el proveedor de nube en la informática sin servidor?
Los proveedores de nube juegan un rol fundamental en la arquitectura serverless, ya que son ellos los encargados de ejecutar los servidores, y al mismo tiempo, asignar recursos para los desarrolladores.
En este sentido, los proveedores de nube ofrecen dos métodos principales dentro del esquema de la informática sin servidores, llamados “Function as a Services” (FaaS) y “Backend as a Services” (BaaS).

El primer método, “Function as a Services” (FaaS), le permite a los desarrolladores aplicar micro servicios cuando escriben y actualizan los diferentes códigos a implementar en la nube, simplificando con esto la incorporación de datos, la reducción de los tiempos de ejecución, así como, la gestión oportuna del proveedor.

En segunda instancia, el método “Backend as a Services” (BaaS), se fundamenta en la prestación de servicios a terceros basado en la Interfaz de Programación de Aplicaciones (API) establecida por el proveedor, destacándose entre ellos, las bases de datos, los servicios de autenticación, y los procesos de cifrado.
Finalmente, vale la pena destacar que grandes proveedores de nube funcionan bajo la modalidad “Function as a Services” (FaaS), como por ejemplo AWS Lambda de Amazon, Azure Functions de Microsoft, IBM Cloud Functions y Google Cloud.

Conclusión
Sin lugar a dudas el Severless Computing, ha producido un impacto significativo en el mundo de la informática, al permitir que los desarrolladores se enfoquen en la creación de software sin tener que preocuparse por la administración de las aplicaciones ni por el código de producción de las mismas, ya que será el proveedor de la nube el encargado de administrar de manera eficiente los recursos necesarios para esa importante actividad.

¿Querés conocer más sobre el tema? Visitá nuestra página IT Continuity para entender más sobre los servicios que ofrecemos relacionados a la infraestructura, y Software Development, para aquellos relacionados a desarrollo a medida.

Casos de uso de Blockchain Empresarial

Casos de uso de Blockchain Empresarial

En artículos anteriores, realizamos una “Introducción a Blockchain Empresarial” y resumimos “Aspectos técnicos sobre Blockchain“. En esta última entrega de la serie, nos enfocaremos en los patrones de uso más difundidos y analizaremos el caso emblema, fuera de lo que es Finanzas Descentralizadas (DeFi), de la Cadena de Suministros.

Casos de uso

Bancos y Finanzas
Las DeFi incluyen activos digitales, protocolos, contratos inteligentes y Aplicaciones Distribuidas (dApps). Es el caso de uso original e implica todo lo relacionado a criptomonedas y al mundo financiero en general. Podemos mencionar la red global de pagos electrónicos Ripple, con el apoyo de instituciones como Santander, Itaú, American Express y muchas otras. Otro ejemplo es Santander One Pay FX, una red Blockchain para agilizar las transferencias internacionales.

Cadenas de suministro
Después de DeFi, es el caso de uso más difundido. Blockchain permite la trazabilidad completa de cualquier bien, desde el productor hasta el consumidor final, ya sean materias primas, alimentos o medicamentos, en el caso de la Farmacovigilancia. Es común además la utilización de dispositivos IoT (Internet of Things) para el registro automatizado en las distintas etapas del flujo. Ya existen numerosos casos de éxito en diversas industrias, tales como la alimenticia (donde Walmart y posteriormente IBM Food Trust son el caso más emblemático que analizaremos), la farmacéutica (Novartis), la automotriz (Ford, BMW, Tesla), entre otras.

Auditoría
Aprovechando la inmutabilidad, una de las características distintivas de Blockchain, se almacenan transacciones que no puedan ser modificadas posteriormente, lo que permite una auditoría completa de información crítica. Esto se utiliza en la Prevención de Fraudes, Gestión de Reclamos, Seguros (BBVA), Salud (EHR, manejo de Historias Clínicas, con proyectos como MedicalChain & MedRec) y Farmacovigilancia (por ejemplo, el proyecto Pharmaledger).

Administración Pública
Actualmente hay muchos gobiernos en el mundo que investigan cómo aprovechar los beneficios de Blockchain en sistemas de Identidad Ciudadana, votaciones, presupuestos y licitaciones públicas para aumentar la eficacia y transparencia del Estado. Latinoamérica se esfuerza por no quedarse atrás, y ya existen muchos desarrollos en marcha.
En Argentina existen varios proyectos sobre la red Blockchain Federal Argentina (BFA), como las sesiones de Diputados del Congreso, Registro de Quejas del Banco Central, Carpeta Ciudadana de la Ciudad de Buenos Aires, entre otros. También Brasil, Perú y Uruguay están realizando avances. A nivel global, Emiratos Árabes, en particular Dubai, planea convertirse para el 2021 en una ciudad gobernada completamente con Blockchain, sin papeles, a través de su proyecto Smart Dubai.

Información Certificada
Muchas instituciones utilizan Blockchain para la certificación y validación de todo tipo de registros educativos (Carpeta Ciudadana en Buenos Aires), laborales y personales.

Compartición de datos
En un nuevo modelo centrado en el ser humano, las personas toman control de su información, la centralizan y son ellas las que deciden a quienes darles acceso. Por ejemplo, los pacientes son dueños de su Historia Clínica completa y pueden dar acceso al profesional que lo necesite (EHR » MedicalChain & MedRec), los ciudadanos pueden compartir sus credenciales (proyectos Identidad Digital Soberana en Argentina, Data Sharing Toolkit en UAE, etc.).

Tokenización de activos
Se utiliza Blockchain para la gestión de activos digitales, en el intercambio de todo tipo de bienes entre individuos o entidades, tales como entradas a espectáculos (UEFA & Ticketmaster), puntos de programas de fidelidad (American Express), inmuebles (UK Land Registry en Inglaterra), etc.

Propiedad intelectual
Esta tecnología es usada para crear registros con fecha, hora y autoría, para optimizar el manejo de la Propiedad Intelectual. Usada por Kodak con Tracking de fotos y Spotify Mediachain para atribuir de forma precisa cada canción a sus creadores.

Caso de uso: Cadena de suministro de alimentos
Entre los numerosos casos de uso de Blockchain, su aplicación en una cadena de suministro es una de las más emblemáticas, con desarrollos en todas las industrias.

En una cadena de suministro de alimentos, existen múltiples actores involucrados: agricultores, ganaderos, proveedores, cooperativas, empacadoras, transportistas, exportadores, importadores, mayoristas, minoristas y, por último, el consumidor final. La seguridad sanitaria es una de las mayores preocupaciones en la industria alimentaria. Al igual que la industria farmacéutica, el sector alimentario se enfrenta a una mayor presión regulatoria de organismos gubernamentales.

Walmart es un pionero en este campo, ya que había intentado varias veces la creación de un sistema que permita la transparencia y completa trazabilidad en el sistema alimentario, pero no fue sino hasta 2016 que lo logró. Blockchain, con su libro mayor descentralizado y compartido, parecía hecho a medida de sus necesidades. Comenzó a trabajar con su socio tecnológico IBM en un sistema de trazabilidad alimentaria basado en Hyperledger Fabric. Para carne de cerdo en China, permitió cargar certificados de autenticidad, lo que brinda más confianza a un sistema donde solía ser un problema grave, mientras que para mangos en los Estados Unidos, el tiempo necesario para rastrear su procedencia pasó de 7 días… a 2 segundos!

El sistema desarrollado permite saber el origen exacto de cada ítem (para controlar brotes de enfermedades) en segundos, descartando únicamente los productos de las granjas afectadas. Por ejemplo, permite que un cliente tome un frasco de comida para bebés y vea dónde se fabricó, rastreando todos los ingredientes hasta las granjas.

Como resultado, se lanzó IBM Food Trust, involucrando a múltiples empresas como Nestlé y Unilever. Esta plataforma permite conocer en tiempo real:

  • Inventario en cada lugar.
  • Frescura de cada producto.
  • Tiempo promedio de permanencia.


Blockchain permite rastrear un producto a través de las distintas operaciones industriales, logísticas y administrativas, partiendo desde el inicio del proceso y llegando hasta el final, y viceversa.
De esta forma, se puede consolidar un registro seguro y distribuido con el historial de todos los actores de la cadena, sus intercambios durante la producción y distribución de cualquier producto, gestionando la información de manera confiable e inviolable. Las transacciones automáticas, al no tener intermediarios (por ejemplo, un banco), permiten liquidaciones más rápidas, con las condiciones pautadas en los smart contracts.

IoT y Blockchain combinados ofrecen grandes beneficios. Los sensores pueden capturar una variedad de datos en las instalaciones de fabricación o en los medios de transporte, y transmitir toda la información a un repositorio centralizado en tiempo real. Los gerentes a su vez, pueden obtener una multitud de nuevos conocimientos sobre el uso de materiales, las condiciones de transporte, etc., y aplicarlos en la planificación/optimización. Los productores pueden registrar vía IoT todo el proceso de crecimiento del producto (alimentación, pesticidas, humedad, almacenamiento, ubicación). Los transportistas pueden garantizar automáticamente que los productos se movilizan en las condiciones adecuadas de temperatura, humedad, etc., logrando una mejor visibilidad de la logística general.

Conclusiones
A lo largo de esta serie de 3 artículos, conocimos la tecnología Blockchain y su aplicación en el ámbito empresarial. Pudimos entender su funcionamiento básico, las plataformas más importantes y cómo está siendo utilizada actualmente en muchas industrias.

¿Cómo puede Huenei ayudar a su negocio con Blockchain?

  • Consultoría: Lo ayudamos a elegir la tecnología que mejor se adapte a sus necesidades.
  • Arquitectura: Definición, despliegue y puesta en marcha.
  • Desarrollo: De Contratos Inteligentes y sistemas completos basados en Blockchain.

Lo acompañamos desde el planeamiento y definición de requerimientos, hasta la puesta en marcha del proyecto final.

Cómo realizar un Discovery de Productos

Cómo realizar un Discovery de Productos

Los dos principales problemas a los que se enfrentan los proyectos de desarrollo de software usualmente son demoras en las fechas de entrega y el excederse en el presupuesto planteado, resultado de no calcular idóneamente los recursos a usar. Esto trae como consecuencia no solo un fracaso en lo comercial, sino una caída en el índice de satisfacción de las empresas.

Por ende, es vital que las compañías conozcan cómo realizar efectivamente un Discovery de producto digital antes de avanzar en establecer las bases de un proyecto. Convirtiéndose en un elemento crucial para mitigar los riesgos mencionados, independientemente de si el proyecto forma parte de un sistema empresarial a gran escala o si se trata de un desarrollo llave en mano.
Es imprescindible que tanto las compañías de outsourcing como los clientes le den la importancia necesaria a esta etapa, ya que permitirá mejorar la calidad del proyecto y del resultado final esperado.

Qué es el proceso de Discovery
Es un proceso de recopilación y análisis de información sobre un proyecto, su mercado objetivo, audiencia, entre otros. Buscando garantizar que se tenga una comprensión completa y profunda de los objetivos, el alcance y las limitaciones, ayudando a comprender a los usuarios finales, sus necesidades y requisitos.

Adicionalmente, define un tiempo establecido para recabar todos estos elementos mencionados, permitiendo que todos los miembros del equipo de desarrollo, así como del cliente, puedan reunirse y crear una comprensión compartida de los objetivos del proyecto. Sin embargo, esto va más allá que una mera reunión de kick-off. Esta visión colaborativa se trata de que todos los equipos puedan plantear desde su punto de vista, más valores y características que puedan garantizar la ejecución de este, a su vez que proporcionar valor comercial.

Quiénes están involucrados en el Discovery en desarrollo de Software
La idea es que la mayor cantidad de miembros del equipo esté involucrada, desde los programadores y testers hasta los analistas funcionales, desde un punto de vista más técnico y especializado.
Por otro lado, también debe formar parte miembros del cliente, ya que estos tienen un mayor conocimiento tanto de la industria como de sus propios consumidores, ofreciendo información valiosa que puede aumentar el índice de satisfacción de los usuarios. La lista de los equipos y representantes involucrados en el Discovery de productos quedaría así:

  • Propietario del producto (PO).
  • Gerente de proyecto.
  • Analista de negocios.
  • Arquitecto de soluciones.
  • Diseñador UX.
  • Programadores.
  • Probadores de control de calidad.
  • Usuarios finales representativos.

En teoría, estos deberían ser todos los miembros que participen en esta fase.
Adicional a esto, los especialistas en UX (experiencia de usuario) pueden ser sumamente útiles en el proceso de descubrimiento, ya que muchas limitaciones funcionales pueden ser informadas por los requisitos de la interfaz de usuario (UI).

Una mejor integración de este departamento de diseño con los procesos de Discovery en desarrollo de Software es a través de un taller de pensamiento de diseño, donde las partes interesadas se reúnen para discutir de manera integral las motivaciones, los requisitos y la visión del proyecto.

Proceso para crear un Discovery de productos
Para diseñar un proceso de Discovery de productos se deben conocer las necesidades iniciales, como mínimo, debe celebrarse una reunión inicial con el equipo de desarrollo para que el proyecto se pueda presentar a todos y las preguntas específicas sobre el cliente y el proyecto se puedan plantear en un entorno colaborativo.

Tengamos en cuenta que este proceso puede durar entre un par de días a semanas, por lo que no existe una lista de pasos para establecer el mejor proceso, es aquí donde cada aplicación, idea y equipo son únicos y el proceso debe poder adaptarse a sus necesidades en ese momento.
No obstante, en Huenei IT Services nos enfocamos en desarrollar los mejores productos para tu compañía, por ello, compartimos los siguientes pasos que podrían ayudarte a crear tu proceso de Discovery de software:

1. Descubre el propósito del desarrollo de software
Esta primera actividad se centra en el “por qué”.
Al comenzar la fase de desarrollo de producto digital, nos preguntamos cuál es el objetivo final del proyecto. No podemos construir un gran producto si no sabemos por qué lo estamos construyendo en primer lugar. Al comprender las expectativas de todos, descubrimos las motivaciones y el contexto necesarios para tomar decisiones enfocadas durante la ejecución del proyecto.

2. Ten una visión general del negocio
El siguiente paso consiste en analizar el modelo comercial de la aplicación y comprender la empresa que la respalda.
Consideramos que este es un momento fundamental para comprender cómo surgió esta idea de aplicación, cómo es la empresa y cómo este producto ayudará a que la empresa crezca.

3. Define las métricas
La pregunta principal de este tercer paso es cómo medir el éxito del producto una vez desarrollado.
Al establecer una línea de tiempo, la idea es identificar hitos y criterios para evaluar el éxito del producto.
Las metodologías de establecimiento de objetivos son excelentes opciones para profundizar la discusión.

4. Establece las restricciones
En esta etapa, la conversación se vuelve más realista. Ahora todos sabemos que no existen los recursos ilimitados y eso muestra un panorama donde cada proyecto tiene sus limitaciones, como una inversión restringida o una fecha de lanzamiento cercana.
Por eso creemos que es importante saber qué restricciones son las más importantes y con cuáles podemos ser más flexibles.

5. Identifica riesgos
Continuando, nuestro objetivo aquí es identificar los riesgos por los que vale la pena preocuparse, para que podamos enfocarnos en aquellos que no están fuera de nuestras manos.
Tan importante como enumerar las cosas que podrían salir mal en el proyecto es reconocer que podemos manejar algunos riesgos, pero no todos, cuáles son y cuáles podrían ser un punto de fuga de recursos, incluyendo el recurso del tiempo.

6. Comprender las necesidades de los usuarios
Las preguntas de este paso están relacionadas con los usuarios finales de la aplicación: ¿Quiénes son? Al conversar sobre nuestro usuario ideal y cómo es esta persona, podemos enumerar cómo imaginamos que interactuará con el software.
Este proceso es una gran instancia para que el equipo proponga una interfaz de usuario (UI) que sea adecuada para esos usuarios.

7. Establece procesos y acuerdos laborales
Ahora es el momento de definir cómo funcionará el flujo del proceso de desarrollo de software.
En esta etapa, el equipo puede acordar una metodología de trabajo, programar puntos de control y otras reuniones, establecer responsabilidades y acuerdos de trabajo para asegurarse de que todo esté claro y listo para comenzar.

8. Finalmente, construye un story map
La técnica de story mapping presentada por Jeff Patton es una forma clara de ver todo el recorrido del usuario que ofrece la aplicación.
En efecto, conocer sobre el Discovery en desarrollo de Software te permitirá establecer un enfoque necesario para un desarrollo eficiente y oportuno, tener claro esto desde comienzo significa lidiar con la abundante incertidumbre al inicio de cualquier proyecto, es por ello que es tan importante la comunicación, la investigación y el análisis para de esa manera, solidificar el objetivo y definir la dirección del proceso de desarrollo de productos, así como descubrir los obstáculos y riesgos.

Conclusión
Un Discovery correctamente planificado y ejecutado es vital no solo para el cliente, sino en la compañía de desarrollo responsable en llevarlo adelante. Esto no solo porque permite cumplir con los tiempos y recursos establecidos, sino que permite identificar todas aquellas necesidades de los usuarios finales y construir un producto/servicio que mejor se ajuste a sus necesidades.

Si querés conocer más sobre nuestras prácticas de desarrollo, te invitamos a visitar nuestra sección de expertise Software Development.