4 Beneficios de crear aplicaciones con Kotlin

Kotlin, el lenguaje moderno para el desarrollo de aplicaciones Android, trae consigo muchas ventajas al momento de crear aplicaciones. Y si ya lo has utilizado, de seguro concuerdas con esta opinión. Cabe mencionar que Kotlin fue creado a partir de las limitaciones que se presentaban en el lenguaje Java. Es así que el equipo de JetBrains (creador de Kotlin) más allá de optar por otro lenguaje de programación, decidió crear el suyo propio, uno más moderno, expresivo, conciso y fácil de aprender. Resultado de este trabajo duro, obtenemos a Kotlin, llamado así en honor a una “isla rusa”.

Ahora, veamos qué beneficios nos otorga este lenguaje en el desarrollo de aplicaciones Android:

1. Código conciso

Con Kotlin nos ahorramos un montón de código innecesario, es decir, código que no aporta valor. Lo que hace que el código sea más fácil de leer. Si eres programador, sabrás que pasamos más tiempo leyendo código que creándolo, por lo que necesitarás más tiempo para ser productivo. Poniendo un ejemplo para respaldar lo conciso que es, veamos el caso del método setOnClickListener. Mientras que en Java tomaría unas 5 líneas de código para definirlo (Figura 1), en Kotlin solo tomaría 1 (Figura 2).

Figura 1

view.setOnClickListener(object : View.OnClickListener {
    override fun onClick(p0: View?) {
        print("Hello World")
    }
})

Figura 2

view.setOnClickListener({ v -> print("Hello World") })

2. Código más seguro

Uno de los mejores beneficios que se promocionó para Kotlin fue sin duda el null safety. Si has realizado una app móvil, sabrás que estas se cierran por completo cuando sucede una excepción de referencia nula, sí, los famosos NullPointerExcepction o NPE. Y para ser honestos, no es que Kotlin los evite al 100%, al igual que Java dependerá mucho del programador. Pero sí es verdad que el lenguaje está creado para ayudarte a prevenirlos. Tal es el caso de que no puedes inicializar una variable como nula (Figura 3), por lo menos no directamente. Si deseas que una variable sea nula, necesitas especificar que esa variable sea anulable (Figura 4).

Figura 3

var a: String = "abc" // la variable a solo admite Strings
a = null // error de compilación

Figura 4

var b: String? = "abc" // la variable b permite 2 tipos de valores, nulos y Strings
b = null //se puede asignar un null a la variable 
print(b) // imprime el valor null

Y para reforzar esta idea, el equipo de Android nos dice que las apps para Android que contienen código de Kotlin tienen un 20% menos probabilidades de fallar.

3. Soporte en Android Jetpack y otras bibliotecas

Hace un tiempo algunos programadores iOS tenían quejas porque se sentían abandonados por parte de Apple, y es que se podría decir que la documentación de iOS no es tan robusta como la de Android. En ese orden de ideas durante el 2018 las cosas en Android cambian con el lanzamiento de Jetpack, que vendría a ser un conjunto de librerías que ayuda a los desarrolladores a crear apps de la forma correcta, permitiendo a los devs ser más productivos y que puedan enfocarse en lo que realmente interesa. Parte de la productividad es hacer que sus librerías sean más concisas al utilizarlos, pero lo conciso no queda ahí. Si quieres serlo aún más, puedes utilizar las extensiones de Kotlin para Jetpack u otras librerías como Android KTX.

4. Interoperabilidad con Java

Es cierto que Kotlin apareció apenas hace unos años, también es cierto que Java sigue funcionando en Android. Y que si entras a trabajar a una empresa, lo más seguro es que encuentres proyectos en Java. Entonces ¿no debería aprender Java antes que Kotlin?, pues la respuesta es ¡aprende Kotlin! Ya que es interoperable con Java, es decir, si aprendes Kotlin estarás preparado para dar soporte a un proyecto hecho en Java utilizando Kotlin, sin necesidad de migrar todo el código. Ahora, si tienes el tiempo para aprender los dos lenguajes, pues en hora buena. Pero no te recomendaría utilizar Java para proyectos nuevos, ya que perderás todas las bondades que trae el lenguaje, como hacerlo expresivo, conciso y seguro.

¿Un lenguaje perfecto?

Kotlin no es un lenguaje perfecto, pero nos ha demostrado que vale mucho la pena y mucho más si eres programador Android. Además de ser un perfil altamente demandado. El framework de Android evoluciona y mejora día a día, las librerías ya existentes y las nuevas, incluidas su documentación, tienen prioridad para Kotlin. Últimamente se escucha mucho acerca de Jetpack Compose y Multiplatform, pues ¿qué crees? estos solo tendrán soporte para Kotlin.

Si aún crees que todas las ventajas que comentamos no es suficiente para mostrarte el poder Kotlin, te dejo un dato extra publicado en la web de Android: Actualmente más de 60 apps de Google se compilan con Kotlin. Algunos ejemplos son: Home, Play, Drive y Mensajes. Un ejemplo de éxito es el del equipo de Google Home, en el que la migración de un nuevo desarrollo de funciones a Kotlin redujo en un 33% en el tamaño de la base de código y en un 30% la cantidad de fallas de NPE. ¿Y tú? ¿Qué esperas para empezar a programar con Kotlin?

Desarrollando Proyectos Frontend con Angular

El frontend es el encargado de desarrollar los elementos visuales del lado del cliente. Cuenta con una participación fundamental en el desarrollo del proyecto, por lo cual es una de los servicios con mayor demanda en el Outsourcing TI.

En la actualidad existen varios frameworks y librerías para realizar este tipo de proyectos, Angular es una de ellas. Este framework fue desarrollado por Google y lanzado en el 2016 para la creación de aplicaciones web de una sola página, también conocidas como web SPA (Single Page Application). Además, debemos tener en cuenta que Angular viene a ser la evolución de AngularJS; sin embargo, no son lo mismo.

En este post conoceremos más de Angular, algunas características y las ventajas de este popular framework.

Características de Angular

Como lo mencionamos al inicio Angular nos ayuda en la creación de SPA, esto nos ayudará a mejorar la velocidad de carga y la navegación de las aplicaciones web. Asimismo, nos trae un patrón de diseño MVVM (model–view–viewmodel), lo que muestra el concepto base que tiene Angular que es el Two-way data binding.

Por otro lado, el lenguaje de programación que utiliza Angular es TypeScript, este lenguaje fue desarrollado por el equipo de Microsoft. Una de las principales ventajas de usar TypeScript es que se tiene un código más ordenado, ya que es tipado. Este lenguaje se usa solamente en la etapa de desarrollo, ya que al pasar a producción, se transforma – la palabra correcta es ‘transpila’ – en JavaScript.

Angular ha configurado un modo estricto que mejora la capacidad de mantenimiento y ayuda a detectar errores con anticipación durante el desarrollo con TypeScript. Esta configuración viene por defecto desde su versión 12. Finalmente, otra característica de este framework es que nos ofrece una base para poder desarrollar aplicaciones escalables, robustas y optimizadas siguiendo el paradigma de programación modular.

Ventajas de Angular

Una de las ventajas de usar Angular es el corto tiempo que toma en crear una aplicación. Esto debido a que nos brinda una base que ayuda a crear aplicaciones escalables en muy poco tiempo. Además, la estructura de Angular basada en componentes hace posible que estos sean reutilizables, ahorrando mucho código para la creación y el mantenimiento del mismo.

Además, la llegada de la versión 9 de Angular trajo consigo un cambio importante. Se cambió el motor de renderizado que se usaba y llegó Ivy, lo que tuvo un impacto positivo en el rendimiento y desarrollo de las aplicaciones. Otro beneficio es la flexibilidad para trabajar con librerías y/o framework de terceros. Esto ayuda en la capacidad de crear aplicaciones web increíbles. Además de ello, si se integra con Ionic, se pueden crear aplicaciones multiplataforma.

Con el pasar de los años, la web evoluciona y las tecnologías deben estar preparadas para esos cambios. El equipo de Google que trabaja en Angular saca versiones cada 5 a 6 meses aproximadamente mejorando mucho la performance, core, entre otros detalles. Hace unas semanas se lanzó la versión 12 de Angular, lo que lo convierte en un framework muy estable.

El Framework más utilizado

Angular es un framework que te da la flexibilidad para poder crear distintas aplicaciones extraordinarias y de manera rápida. Su uso ha crecido mucho en los últimos años y su comunidad es muy grande. Esto hace que en la actualidad sea uno de los frameworks más utilizados por los desarrolladores. En este contexto, el desarrollador con conocimiento en Angular es uno de los perfiles más demandados para servicios de TI, como es el caso del Outsourcing.

En DOAPPS contamos con el servicio de Outsourcing TI. Si quieres empezar con el desarrollo de un proyecto no dudes en contactarnos a hola@doapps.pe.

Desarrollador Flutter: Recomendaciones para destacar en el mercado

En este año 2021, con la última llegada de Flutter 2.0, se anunciaron grandes noticias. Llegó Flutter web estable y Flutter escritorio que aún no se puede considerar una versión estable en su totalidad. Flutter es una tecnología que está en un crecimiento constante y se está consolidando como uno de los mejores frameworks para desarrollo multiplataforma. Actualmente si quieres ser un desarrollador móvil, debes considerar mucho agregar a tu stack este framework; pero ¿qué debes considerar al aprender Flutter para que te tomen en consideración?

Las empresas no quieren desarrolladores que realicen proyectos zombies, que van a paso lento, están muertos y difícilmente los puedes arreglar. También, las empresas, están en constante búsqueda del mejor talento. En ese sentido surge el outsourcing de TI que te brinda la opción de seleccionar al mejor talento que se adecúe de mejor manera a tu proyecto.

En este artículo te comentaremos algunas tecnologías, librerías, patrones de diseño y recomendaciones que no necesariamente son para Flutter, pero te ayudarán a marcar una diferencia de los demás programadores.

Buenas prácticas

Algunos se preguntarán ¿por qué patrones de diseño?, ¿me ayuda?, ¿debo aprenderlo? Un patrón de diseño se puede considerar un esqueleto para estructurar tu código, el cual ayudará normalmente a que tu proyecto sea escalable. En Flutter es normal realizar código espagueti sin darte cuenta. El código espagueti refiere a que tengas una clase con más de mil líneas de códigos totalmente innecesarios ¡es el inicio para proyectos zombies!

En la actualidad tenemos el patrón de diseño Bloc. Es un sistema de gestión de estado para Flutter recomendado por los desarrolladores de Google. Ayuda en la gestión del estado y en el acceso a los datos desde un lugar central en su proyecto. Si conoces otros patrones de diseño como MVVM, MVP, MVC u otros, se te facilitará aprenderlo. Los patrones de diseño no son esqueletos estáticos, también como desarrollador debes investigar y estructurar el código según sea conveniente para el proyecto.

Tecnologías recomendadas

  • GitFlow: Es un flujo de trabajo para ramificar la publicación de cambios, asignando funciones específicas a todas las ramas. Donde la rama master son las versiones estables normalmente, la rama develop es una rama en desarrollo de cambios estables y los feature donde se realizan todos los cambios. Cabe destacar que no tiene funcionalidades nuevas de las que ofrece GIT, pero te ayudará a organizar el versionamiento de tu código mejor.
  • Bugsnag: Monitorea la estabilidad de las aplicaciones y tiene un gran alcance tanto para plataformas móviles, web, escritorio, Tvs, etc. Te ayudará a tomar decisiones basadas en los datos, como la línea de código donde se presentó el error, el modelo y marca del dispositivo, que usuario fue el que tuvo el problema y muchos datos más.
  • Postman: Es una herramienta para el testing de API Rest. En la actualidad muchos backend ya usan herramientas para facilitar el testing y documentan su código con Swagger, Loopback y otros. Pero en caso no tenga una documentación momentánea, te ayudará a comprender el funcionamiento de cada ruta.
  • Firebase: Es una plataforma en la nube para el desarrollo web y móvil. Te ayudará a crear tu propio backend sin renunciar a la calidad del sistem, y te ayudará a desarrollar el sistema, a crecer, monetizar y analizar tu aplicación.
  • Pasarela de pago: Son proveedores de servicio para realizar un aplicativo de comercio electrónico normalmente; hay muchos proveedores como Stripe, Culqui, Mercado de pago, Paypal, Payu, etc. Se recomienda realizar o probar alguno de estos servicios, puesto que te ayudará a comprenderlo e integrarlo en tu sistema; además que la lógica de implementación es similar en cada uno de los proveedores.
  • Very Good: Esta es una herramienta para Flutter, la cual, si estás iniciando te ayudará a comprender mejor las buenas prácticas de programación. Very Good te generará un código personalizado, entonces únicamente debes escribir un comando y ya tendrás un esqueleto del aplicativo en Flutter 2.0 totalmente escalable y con una buena arquitectura.

Librerías que deberías conocer

  • Get It: Librería la cual te ayudará a inyectar dependencias desde cualquier lugar.
  • Hive: Base de datos NoSQL muy potente que te ayudará a resolver problemas complicados, tiene función para escuchar cambios en tiempo real.
  • SQFlite: Base de datos SQL potente. Aún no tiene un soporte para Flutter web y está basado en SQLite.
  • Bloc: Paquete que busca facilitar la implementación de patrones de diseño mediante la UI, Cubit y la data.
  • Very Good Analysis: Paquete proporcionado por Very Good que te ayudará a mantener un código limpio y mostrarte alertas de posibles lugares donde puedas reducir código o mantenerlo de una mejor manera.

Te recomendamos

En la actualidad debes complementar tus conocimientos de Flutter con algún lenguaje nativo. Por ejemplo ser capaz también de desarrollar en Swift o Android con Kotlin, porque puede que lleves un proyecto que implique el uso de recursos del celular y actualmente para trabajarlo en Flutter debes saber algunas configuraciones específicas nativas en su respectivo paquete del lenguaje.

Siempre revisa los requerimientos para un desarrollador móvil Flutter en LinkedIn, Bumerán, Indeed y otros. Esto te ayudará a ver las nuevas tecnologías que piden en el mundo laboral y el por qué las piden, tú decides si estancarte o continuar. Finalmente, revisa y lee las actualizaciones del frameworks en determinados tiempos, por ejemplo cada mes. De esta forma, podrás destacar en el mercado en esta tecnología.

¿Qué diferencia existe entre el Frontend y Backend?

Desde que me introduje en el mundo de la tecnología, estos conceptos te lo explican de la siguiente manera: “El Frontend es el lado del cliente, el Backend es todo el lado del servidor”. Pero esa definición está muy por encima de lo que realmente es, hay mucho más por conocer. Ambos son fundamentales para el funcionamiento de una app móvil o sitio web, siendo también los perfiles más demandados en servicios de TI como outsourcing. Sin embargo, tienen preocupaciones opuestas.

Por medio de este post conoceremos información más sólida sobre las definiciones y diferencias que pueden existir entre el Frontend y el Backend.

¿Qué es Frontend?

¡Empecemos por el Frontend! Como lo mencioné en anteriores líneas, es el encargado de todo lo visual; es decir, es quien ve al usuario. Por lo tanto, debe tener un fuerte conocimiento en tecnologías como el Lenguaje de Marcado de Hipertexto (HTML), JavaScript y Hojas de Estilo en Cascada (CSS). Ellos son los encargados de desarrollar los elementos de la experiencia de usuario en la página web o aplicación; incluyendo también botones, menús, páginas, enlaces, gráficos y más. Ahora desmenucemos estas tecnologías más a fondo para tener una idea más sólida de cada una:

  • HTML: El Lenguaje de Marcado de Hipertexto o HTML es el núcleo de un sitio web y proporciona el diseño y la funcionalidad generales. La versión más reciente se lanzó a fines de 2017 y se conoce como HTML5. La versión actualizada incluye más herramientas dirigidas a desarrolladores de aplicaciones web, así como ajustes realizados para mejorar la interoperabilidad.
  • CSS: Las Hojas de Estilo en Cascada brindan a los desarrolladores una forma flexible y precisa de crear diseños de sitios web atractivos e interactivos. Ahora, existen preprocesadores de CSS como serían Sass, Less y Stylus, los cuales extienden las funcionalidades de un CSS común. Permitiéndonos tener variables, funciones, mixins, reutilizar códigos, tener más flexibilidad al momento del desarrollo, etc. 
  • JavaScript: Este lenguaje basado en eventos es útil para crear elementos dinámicos en páginas web HTML estáticas. Permite a los desarrolladores Frontend acceder a elementos separados de la página HTML principal, así como responder a eventos del lado del servidor.

Sin embargo, hoy en día se tiene todo más rápido. Por eso, existen los frameworks para hacer más fácil la creación de una web y mucho más veloz de lo que era antes. Los más usados son Angular y React, lo que nos permiten hacer una web estructurada con componentes para dividir los problemas. Estos marcos permiten a los desarrolladores mantenerse al día con la creciente demanda de software empresarial sin sacrificar la calidad, por lo que se están ganando su lugar como herramientas de desarrollo estándar.

Uno de los principales desafíos del desarrollo Frontend, que también se conoce con el nombre de “desarrollo del lado del cliente”, es el rápido ritmo de cambio en las herramientas, técnicas y tecnologías utilizadas para crear la experiencia del usuario para aplicaciones y sitios web.

¿Qué es Backend?

Está formado por el servidor que proporciona los datos a petición, la aplicación que los canaliza y la base de datos que organiza la información. Por ejemplo, cuando un cliente busca zapatos en un sitio web, está interactuando con la interfaz. Después de seleccionar el artículo que desean, ponerlo en el carrito de compras y autorizar la compra, la información se guarda dentro de la base de datos que reside en el servidor. Unos días después cuando el cliente verifica el estado de su entrega, el servidor extrae la información relevante, la actualiza con datos de seguimiento y la presenta a través del Frontend.

¿Recuerdas que el Frontend tiene algunas herramientas para hacer su trabajo? Pues el backend también las tiene. La principal preocupación de los desarrolladores Backend es crear aplicaciones que puedan encontrar y entregar datos a los desarrolladores Frontend. Muchos de ellos utilizan bases de datos confiables de nivel empresarial como Oracle, Teradata, Microsoft SQL Server, IBM DB2, EnterpriseDB y SAP Sybase ASE. También hay otras bases de datos populares como MySQL, NoSQL y PostgreSQL. Asimismo, existe una amplia variedad de marcos y lenguajes utilizados para codificar la aplicación de lado del servidor como Ruby on Rails, Java, JavaScript, Go, Python y PHP.

Complemento perfecto

Mientras que Frontend esto lo que ve el usuario, que Backend es la infraestructura que lo soporta. La principal diferencia es que cada uno tiene una obligación distinta y diferentes herramientas para el desarrollo del proyecto. Ambos se complementan para brindar una solución tecnológica de alta calidad, siguiendo las mejores prácticas para llevar un sistema al máximo potencial.

Situación actual del Outsourcing TI en Perú

El Outsourcing de Talento TI se ha ido consolidando y ha sido promovido especialmente por las grandes empresas del sector financiero del Perú. No obstante, los procesos de transformación digital que se han venido dando durante los últimos años ha permitido que se diversifique a otros sectores, y que a su vez, aparezcan nuevos jugadores para ir satisfaciendo la demanda del mercado.

En el siguiente artículo vamos a profundizar acerca de las oportunidades que nos representa en este momento el Outsourcing de talento TI en el país.

Actualidad

Es una realidad que la mayoría de empresas que puede contratar un servicio de Outsourcing suelen estar dentro del sector de la mediana y gran empresa. Los beneficios del Outsourcing suelen ser más convenientes en estos sectores por diversos factores. Por ejemplo, el desarrollo de algunos proyectos de temporalidad corta que no requieren un perfil permanente como parte del equipo o el desarrollo de proyectos en los que se requiere ampliar el equipo con perfiles muy específicos.

Mientras que si enfocamos la mirada a las pequeñas y microempresas, nos encontraremos que es más probable que se opte por la contratación directa del talento. O en su defecto, se contrate una agencia para el desarrollo de cualquier proyecto de tecnología.

Oportunidades

Si bien existen gran cantidad de empresas de Outsourcing de talento TI, la mayoría de ellas ofrece el servicio a compañías locales. A diferencia de otros países como Argentina con un sector de software más consolidado, existe una gran cantidad de compañías que ofrecen talento al exterior. Siendo los países angloparlantes su mejor mercado.

El ejemplo de Argentina es el idóneo para poder trazarnos una figura hacia donde podemos apuntar. Si bien necesitamos cubrir la demanda de talento TI a nivel local, estamos ignorando un gran mercado que se ha abierto justo ante nuestros ojos con mayor fuerza desde el inicio de la pandemia. La oportunidad de exportar talento peruano hacia el extranjero.

A causa del Covid y otros factores, las fronteras no son más una barrera y más bien representan una oportunidad de poder pactar con clientes de cualquier parte del mundo. Pero no solo ello, viceversa, se ha abierto también la posibilidad de que accedamos al talento mundial desde nuestras fronteras.

Pero no solo el tradicional Outsourcing se vislumbra como una oportunidad, sino también el desarrollo de productos digitales peruanos que puedan ser utilizados a nivel mundial. Los beneficios en ambos casos son inmejorables. Tal es el caso del acceso a mercados con mejor poder adquisitivo que el nuestro, lo que nos permitirá tener ingresos más altos; también se aprovechan las facilidades tributarias que ofrece la exportación de servicios; accedemos y ofrecemos el mejor talento en tecnología mejorando el desarrollo local; pero principalmente exponemos que el talento local es competitivo y puede desempeñarse en cualquier proyecto a nivel mundial.

Retos

Todo lo anterior expuesto no se puede llegar a dar si no superamos uno de los retos más grandes que tenemos en frente: el dominio del inglés. Lamentablemente en el Perú aún existen instituciones de educación básica y superior que no tienen mucho enfoque en la enseñanza del idioma inglés. Esto nos representa una desventaja a la hora de poder ser competitivos a nivel internacional; pero es una desventaja superable, sin duda alguna.

Son cada vez más los profesionales en tecnología que vienen mejorando su desenvolvimiento en inglés; lo que a su vez se ve reflejado en la mejora de nuevas oportunidades. De hecho, ya van aumentando cada vez más las empresas locales que ofrecen Outsourcing de talento TI a empresas estadounidenses, británicas o incluso europeas.

Internacionalización

La situación actual nos representa una gran oportunidad para internacionalizar el talento local hacia el extranjero. No solo una oportunidad para Perú, sino también para el resto de países de Latinoamérica. La exposición que se logrará con ello permitirá a su vez que localmente se desarrollen más y mejores productos digitales; lo que ocasionará que se siga promoviendo aún más el ecosistema de desarrollo de software local.

Si tu empresa tiene interés en trabajar junto con el mejor talento del país, tenemos el servicio de Outsourcing TI a tu disposición. Puedes escribirnos a hola@doapps.pe para mayor información.

Outsourcing en talento Tech: Ventajas y Desventajas

El Outsourcing de TI ha sido clave de éxito de muchas empresas en todo el mundo que no son especialistas en tecnologías. Y es que para poder optimizar las operaciones de gestión de áreas específicas y reducir costos, muchos negocios invierten en este tipo servicios. Ya sea de forma constante o puntual, subcontratar este servicio de TI aporta múltiples ventajas y beneficios a las empresas. Sin embargo, es importante primero evaluar adecuadamente si se cubre las necesidades de la empresa solicitante o los requerimientos del proyecto a desarrollar. Y así, elegir estratégicamente si el Outsourcing en talento Tech es ideal o no para el negocio.

A continuación en este post te brindaremos una comparación de las ventajas y desventajas del Outsourcing en perfiles TI.

Ventajas

Reducción de costos

Este se podría decir que es el principal beneficio del Outsourcing TI. Se reducen los costos de tu empresa, ya que se eliminan todos los gastos relacionados con la contratación, cursos de actualización, seguros de salud, impuestos y planes de jubilación, entre otros. El ahorro obtenido al eliminar el costo de contratar un equipo de TI es muy significativo. Es más, a menudo este equipo no cuenta con todo el conocimiento necesario para la solución de problemas, por lo que una agencia especialista en tecnologías puede ofrecer mejores resultados para tu negocio.

Mayor productividad

Mediante el Outsourcing de talento tech, el proveedor es quien se encarga de la administración del equipo que desarrollará las soluciones para la empresa, se garantiza que te dediques exclusivamente a tu negocio. Es decir, se priorizan los tiempos hacia un enfoque en la implementación de estrategias para mantenerte competitivo. Además, se reducirá el tiempo para la realización de tareas, lo que aumentará la eficiencia de tu empresa. De esta forma, el Outsourcing TI te garantiza la oportunidad de ser más productivo y eficiente, y canalizar tus estrategias para ser más competitivo y exitoso.

Aumento de competitividad

Al trabajar junto con una agencia con experiencia en el mercado de tecnologías de la información, la externalización del servicio aumentará la competitividad de tu empresa. Esto debido a que el proveedor es experto en su rubro, además que está al tanto de los nuevos avances en tecnología y tiene un mejor filtro al momento de contratar talento tech. Lo que permite que tu empresa se mantenga en una buena posición estratégica en un mercado cada vez más competitivo y globalizado; y en el que además las nuevas tecnologías cobran una mayor importancia cada día.

Mínimo riesgo

Los riesgos siempre están presentes en cualquier organización. Es por ello que con un equipo subcontratado competente y capaz de aportar soluciones que cubran las necesidades de la empresa, es muy posible reducir dichos riesgos y aumentar la eficiencia de la empresa. Asimismo se tiene la garantía que los procesos de TI los llevarán a cabo un equipo bajo el seguimiento de una compañía experta en tecnología y con la responsabilidad de asumir cualquier tipo de riesgo.

Desventajas

Falta de control y comunicación

Si bien puedes proporcionar pautas o instrucciones con relación a lo que tu empresa necesita, estás cediendo una fracción del total de control cuando se subcontrata. Esto se debe a que la persona no está trabajando directamente con tu empresa, es decir, es un contratista en lugar de un empleado. Además, con un equipo externalizado la comunicación puede ser menos fluida, lo que puede conllevar a una serie de malos entendidos. Es por ello que resulta importante contratar un equipo de profesionales comprometidos y bajo el seguimiento de una empresa con experiencia en el mercado de desarrollo y tecnologías.

Amenaza de seguridad de datos

Cuando se subcontrata a un desarrollador, por ejemplo, esta persona está teniendo cierto acceso a información de la empresa interesada. Claro, esto depende del tipo de proyecto y del rol que el empleado tenga. Es por eso que se vuelve imprescindible elegir a un proveedor de confianza y con experiencia en desarrollo de proyectos de gran envergadura y manejo de datos. Además, es importante estar atento a las condiciones y términos en los acuerdos de confidencialidad a los contratos de servicios para poder mitigar dichos riesgos; y a su vez, garantizar la seguridad de los datos de tu empresa.

Gastos ocultos

En diversas ocasiones puede ocurrir que el costo ahorrado con el uso de Outsourcing de talento tech no sea el esperado. Esto debido a que puede que a tu empresa le resulte más conveniente contratar a un equipo TI por sí misma o porque tu proyecto no requiere de perfiles tan específicos. En ese sentido es importante también trabajar junto con profesionales que te puedan asesorar en aquel servicio de TI que le brinde los mejores resultados a tu empresa. Por otro lado, otro gasto oculto se encuentra si se desea cambiar de proveedor de servicios por resultados insatisfactorios, además del retraso del proyecto.

Un proveedor confiable

Así como es importante conocer las necesidades de tu empresa o proyecto a realizar para poder conocer si el Outsourcing de talento Tech es la mejor opción, lo es también elegir un buen proveedor. Esto debido a que existen datos que están siendo expuestos y se requiere de profesionales que puedan velar por la seguridad de tu negocio. Además, trabajar junto con empresas especialistas en TI con experiencia en desarrollo y gestión de proyectos te permitirá aprovechar las ventajas mencionadas y disminuir los riesgos en cuanto a descontrol, seguridad y gastos imprevistos.

Descubre los tipos de Outsourcing en perfiles TI

Descubre los tipos de outsourcing en tecnología y por qué es una tendencia en el mundo tech.

Actualmente existe una forma muy difundida de brindar servicios de TI. Además de la ya conocida y establecida área interna de Tecnología, Tecnologías de la Información, Sistemas o similares; hay una demanda creciente a nivel mundial de servicios de Outsourcing en TI. Empresas de todo nivel requieren este servicio que a su vez representa una oportunidad muy interesante de línea de carrera para el talento latinoamericano; debido a que tienen la oportunidad de trabajar para empresas top a nivel regional o mundial.

Ahora bien, existen diferentes formas de brindar el servicio de Outsourcing de TI. En este post conoceremos un poco más de su clasificación y los diferentes modelos existentes.

En la actualidad

Pero antes, es importante saber que este tipo de servicios no pretende reemplazar al servicio clásico, on-site, sino más bien complementarlo. Hoy en día hay un déficit de profesionales de tecnología y los datos son claros. Según la Comisión Europea, en el año 2020 se previó un déficit de postulantes en el rubro de tecnología, dejando así medio millón de vacantes no cubiertas. Y ahora esas oportunidades están deseosas de ser cubiertas por un profesional como tú.

Dicho esto, esa es una señal clara que el entorno de TI está en crecimiento. Precisamente allí es donde entra a tallar el Outsourcing, mediante el cual las empresas establecen el marco de trabajo y las facilidades para que sus colaboradores, sean estos ingenieros, soporte técnico, desarrolladores, gestores de producto entre otros, puedan trabajar para empresas top y con una alta retribución y perfeccionamiento de sus cualidades como profesional. Además de tentar un salario acorde a su conocimiento y técnica.

Tipos de Outsourcing

Ahora bien, ya sea porque una empresa no cuenta con el presupuesto suficiente para invertir en nuevas tecnologías o por requerimientos específicos de un proyecto, se buscan alternativas dentro del Outsourcing; todo ello dependiendo de las necesidades y requerimientos de dicha empresa. Al Outsourcing TI se les puede clasificar de dos maneras. Primero, según el lugar desde donde se brindan los servicios respecto de la empresa contratante:

  • Off-Shore: Cuando la compañía hace su búsqueda en lugares que pueden ser muy lejanos geográficamente con el cual puede tener acceso al mejor talento de una zona geográfica con costo laboral menor. Por ejemplo, de países de Latinoamérica o India. Este tipo es muy común hoy en día y genera un beneficio mutuo, tanto para la empresa contratante como para el trabajador al obtener la experiencia de un proyecto de clase mundial y con un salario muy superior a la media local.
  • On-Shore: Esta búsqueda la hace la empresa dentro de su misma localidad o país, con esto se eliminan las barreras idiomáticas y culturales.
  • Near-Shore: Es un modelo que busca talento a países con el mismo idioma y con la misma o poca diferencia horaria. Se podría decir que es un equilibrio entre las opciones anteriormente mencionadas.

Segundo, pueden ser clasificados por su rol o función dentro de la empresa que lo solicita. Tenemos los tres siguientes:

  • Staff Augmentation: Modelo utilizado cuando se busca hacer crecer a una ya existente área o departamento de tecnología. Es decir, se combina el talento de la empresa con uno externo, y a su vez, enriqueciendo el ambiente profesional y cultural.
  • Equipos dedicados: Equipos completos de trabajo dedicados a una empresa contratante; lo cuales podrían ser en remoto o en la misma empresa.
  • Por proyecto: Cuando la empresa ya sea por tiempo o imposibilidades prácticas o técnicas no puede hacerse cargo de un proyecto por sí mismo. Entonces, adopta la estrategia de hacer que un equipo con experiencia en el tema ponga manos a la obra.

Oportunidad de crecimiento

El Outsourcing TI es una opción idónea para aquellas empresas que buscan atraer el mejor talento de otras localidades, y por ende, enriquecer sus proyectos. Además de acceder a servicios más ágiles y con mayor experiencia en el rubro de la tecnología. Mientras que para los profesionales de TI es, sin duda, un campo que están mirando con suma atención al representar una oportunidad inigualable de crecimiento y desarrollo profesional.

Ahora que ya conoces un poco más de este interesante tema, coméntanos cuál te parece más atractiva.

Reclutando Developers: ¡Conoce nuestro proceso!

En los últimos 3 años hemos iterado en nuestra forma de evaluar el nivel de una o un software developer con el objetivo de minimizar la brecha entre el nivel deseado y el nivel real del talento. ¡Y sí que no ha sido tarea fácil!

Sin embargo, esto nos ha permitido optimizar nuestro proceso de outsourcing de talento tech. Por eso, en este post nos enfocaremos en las etapas que son esenciales y nos han funcionado para seleccionar al mejor talento en el último año.

Antes de abordar nuestro proceso, es importante entender que en la industria del software existen diversas formas de clasificar a los developer por su nivel de expertis y dentro de cada organización esto puede variar para efectos de un mejor control de la escala salarial. Sin embargo, la comunidad ya tiene identificado 3 niveles que son más o menos un estándar dentro de la industria. Estos son Junior (Jr), Middle o Semi Senior (Ssr) y Senior (Sr).

Como lo mencionaba al inicio, el mayor problema que tenemos a la hora entrevistar developers es validar el nivel con el que cuenta. Lo que suele suceder es que cada developer usualmente realiza un autodiagnóstico y determina en cuál de los 3 niveles se encuentra y esto les facilita el hecho de postular a puestos en donde se requieran estos niveles.

Nos enfocaremos en los procesos que ejecutamos una vez recibida las postulaciones.

1. Revisión del CV

En este punto debemos asumir que en la convocatoria se definió un perfil con las funciones y requisitos. En este proceso debemos enfocarnos en revisar el curriculum vitae para validar que el postulante cumpla con la mayoría de los requisitos especificados para este perfil. Los principales puntos suelen ser formación académica, años de experiencia en el puesto, conocimiento de las tecnologías y nivel del idioma inglés. Si el postulante cumple con los requisitos mínimos que solicita el puesto entonces pasa a la siguiente etapa.

2. Phone Interview

Para realizar la pre selección realizamos un proceso al cual denominamos Phone Interview. Esta etapa consiste de una llamada telefónica realizada por uno los líderes del equipo de ingeniería, quien en menos de 15 minutos conversará con el candidato y le realizará preguntas sencillas, pero estratégicas que permiten determinar si el candidato cumple con los requisitos mínimos para continuar con el proceso.

Se valida en cierto punto el conocimiento técnico que estipuló en su hoja de vida e información adicional como su condición laboral actual. Una vez finalizado el Phone Interview la persona a cargo registra el resultado de la entrevista; y en caso el resultado sea positivo, este perfil será revisado por el área de reclutamiento para agendar el Onsite Interview.

3. Onsite Interview

A raíz de la pandemia el Onsite Interview ahora es 100% remoto, pero la dinámica se mantiene. Se trata de una entrevista por videollamada que tiene como objetivo conocer un poco más sobre la formación y experiencia del candidato así como saber sus intereses y motivaciones sobre el puesto. Esta entrevista la realizamos en inglés siempre y cuando el nivel de inglés sea un requisito para el puesto.

Además, esta entrevista definitivamente sirve para evaluar en gran medida los soft skills de los postulantes e incluye una sección de preguntas técnicas que, a diferencia de las realizadas vía telefónica, miden el nivel técnico del candidato en mayor profundidad. Generalmente el Onsite Interview tiene de 2 a 3 entrevistadores y una vez finalizada la entrevista los entrevistadores llegan a un consenso para dar la calificación final.

4. Live Coding Interview

En DOAPPS aplicamos el Live Coding Interview solo para perfiles de nivel Middle en adelante. La dinámica consta de una sesión de 30 a 45 minutos donde el evaluador técnico tiene el objetivo de determinar el seniority del developer. Días previos se le comunica la dinámica al postulante quienes deberán seleccionar un proyecto de su portafolio, el cual será examinado en vivo durante la sesión.

Durante la entrevista el candidato compartirá su pantalla y el entrevistador realizará un tour por el código fuente. A medida que se adentra en el código se realizarán preguntas sobre las decisiones técnicas que tomó para abordar ciertos problemas algorítmicos; y en algunos casos, el entrevistador solicitará realizar algún refactor de algún segmento de código que considere se pueda mejorar.

Finalizada la evaluación el entrevistador le dará feedback al entrevistado ya sean sugerencias o consejos ante alguna oportunidad de mejora encontrada. Si el candidato obtuvo resultados positivos a lo largo del proceso solo quedaría iniciar con los trámites necesarios para el proceso de contratación.

¡Trabaja con nosotros!

En DOAPPS estamos en constante búsqueda de talento tech. Si eres software developer y estás en búsqueda de oportunidades, puedes revisar nuestras redes sociales donde usualmente publicamos nuestras ofertas laborales. O si eres una empresa que requiere talento tech para desarrollar un nuevo producto digital dentro de tu organización o simplemente quiere ampliar tu staff pueden revisar nuestro servicio de Hire Dedicated Developers o escribirnos a hola@doapps.pe.

Outsourcing de TI: Todo lo que necesitas saber

Las tecnologías se han convertido en un recurso indispensable para el desarrollo de las empresas. Cada día son más las que optan por su inversión debido al exponencial crecimiento en sus resultados. Sin embargo, debido a la complejidad de los proyectos y la alta inversión en ciertas infraestructuras, el servicio de Outsourcing de TI se vuelve la opción ideal para muchas de ellas. Por eso, gran mayoría de las compañías prefieren dejar la parte operativa tecnológica en manos de especialistas y profesionales subcontratados con el fin de obtener mejores resultados.

El Outsourcing de TI es un tema en tendencia y amplio, por lo que hay mucho por conocer. Por eso, en este post queremos compartirte de qué trata el servicio, sus beneficios y algunos perfiles más populares y esenciales que suelen demandarse.

¿Qué es el Outsourcing de TI?

En términos generales, el outsourcing es la expresión en inglés que hace referencia a la subcontratación o tercerización de algún proceso de tu negocio. Este puede ser realizado eficientemente o bajo mejores resultados por otra empresa especializada en dicha necesidad. Esto con el fin de que tu empresa pueda enfocarse en su core business, delegando aquellas actividades secundarias a un tercero.

Ahora, cuando se habla de Outsourcing de TI, se trata del uso de proveedores especialistas en tecnologías de la información para el reclutamiento y colocación de talento de los perfiles tecnológicos; así como la entrega de infraestructuras de TI que tu negocio necesite. Es decir, dichos especialistas se harán cargo de los aspectos y necesidades tecnológicas de tu organización.

Algunos perfiles

Al día de hoy existe una gran variedad de perfiles de tecnología; debido a los requerimientos del software a desarrollarse por su nivel de complejidad y a la diversidad de programas que surgen continuamente. Por ejemplo, algunas de las tecnologías más populares en son HTML, Angular JS, React JS, Java, etc. A continuación comentaremos algunos perfiles considerados importantes y demandados por empresas que buscan desarrollar un proyecto de software o cubrir algún puesto de TI en su compañía de forma esporádica.

  • Frontend Developer: Es un desarrollador de software especializado en tecnologías web específicamente las que están del lado del cliente. Un frontend domina las tecnologías que se ejecutan en el navegador web tales como HTML, CSS y JS. De igual forma domina uno o más framework que le permiten crear aplicaciones web escalables. Los frameworks y/o bibliotecas más populares que tenemos son Angular JS, React JS y Vue JS; acompañado de herramientas de testing y automatización para generar un desarrollo de calidad.
  • Backend Developer: Es un desarrollador de software especializado en el desarrollo y construcción de aplicaciones que se ejecutan en el servidor generalmente en alguna infraestructura de la nube. Un backend tiene conocimientos sobre el funcionamiento del sistema operativo y cómo configurarlo para el correcto funcionamiento de la aplicación que desarrollará. Esto significa que domina uno o varios lenguajes de programación que se ejecutan sobre determinados sistemas operativos tales como Javascript, Python, Java, entre otros.
  • Mobile Developer: Es un desarrollador de software con experiencia en la construcción de aplicaciones móviles nativas e híbridas las cuales serán soportadas por los sistemas operativos más populares del momento y estarán disponibles en las tiendas de Google, Apple y Huawei. Un mobile developer tiene dominio de los lenguajes nativos tales como Swift y Kotlin. Además de ellos tiene la capacidad de usar frameworks y tecnologías que pueden ser altamente productivas a la hora de desarrollar prototipos en corto tiempo; por ejemplo React Native y Flutter.
  • Diseñador UI: Es un diseñador especializado en el diseño de interfaces web y móviles con sólidos conocimientos de los estándares y especificaciones que se aplican a las plataformas web y móviles. Un Diseñador UI domina varias herramientas que diseño digital que se complementan entre sí para crear wireframes y mockups. Estos últimos eventualmente serán los principales recursos para los desarrolladores de software en el proceso de construcción de vistas o layouts.
  • Diseñador UX: Es un profesional especializado en la definición de interacciones entre usuarios y productos o servicios con el fin de entregar una experiencia óptima para el usuario final. Un diseñador UX conoce aspectos de negocios, investigación de mercado, diseño y tecnología requeridos para cuestionar y validar los diseños e interacciones.
  • Product Manager: Es un profesional con experiencia en la gestión de proyectos tecnológicos bajo una metodología ágil; además tiene la capacidad de dirigir un equipo conformado por diversos roles tales como programadores, diseñadores, testers, entre otros. Un product manager requiere tener conocimientos sólidos de ingeniería y de gestión de proyectos.
  • Product Designer: Es un profesional especializado en la creación y mantenimiento de productos digitales. Un Product Designer no solo dirige el equipo de diseño, sino que se involucra en la definición de objetivos del producto, validación del mercado e identificación de la audiencia que eventualmente tendrá el producto en cuestión.

Beneficios del Outsourcing TI

No hay duda que el Outsourcing TI puede ser la opción idónea tanto para medianas como grandes empresas. Esto debido a que es considerada una estrategia para quienes necesiten implementar servicios de TI y no pueden costear un departamento propio; o para aumentar la capacidad de aquellas compañías que buscan desarrollar ciertas actividades en las cuales no están especializadas. Estos son algunos de los beneficios más comunes e importantes:

a. Ahorros económicos en el personal

Una de las principales razones para preferir tercerizar el reclutamiento y contratación de personal TI es el ahorro en costos. Este ahorro puede verse reflejado en la reducción de gastos por contratación, pues se evitan pagos como el salario, seguro, cursos de capacitación, inducción, entre otros costes relacionados. El Outsourcing de TI permite que los costos laborales sean más predecibles y estratégicos para tu negocio, pues se reducen los costos del equipo; además dicho personal es utilizado por el tiempo de vida del proyecto.

b. Ahorros económicos en infraestructura

Por otro lado, también existe un control y reducción en los costos de la infraestructura que exige un área de TI. En este caso, tanto la inversión en programas y su mantenimiento como capacitación de los mismos desarrolladores, es asumida por la empresa tercerizadora. Según algunos estudios, se puede lograr ahorrar hasta el 14% en costos operativos de medianas y grandes empresas. Esto debido a que las empresas de Outsourcing de TI pueden ofrecer acceso a personal capacitado, y junto a ello, los equipos y acceso a los mejores programas y recursos que se necesiten. Todo ello a costo mucho más bajos que la cantidad que necesitaría invertir para tenerlo por cuenta propia. De esta forma se garantiza no solo un equipo altamente calificado, sino también un entorno de TI actualizado.

c. Experiencia garantizada

Al ser la empresa tercerizadora especialista en el tema de desarrollo de software y tecnologías, la trayectoria y cartera de clientes que maneja es garantía de la calidad de desarrolladores con los que trabaja. En ese orden de ideas, un motivo por el cual las empresas de software deciden subcontratar para el desarrollo de sus proyectos es tener acceso a conocimientos y experiencia que su equipo actual no puede ofrecer. Además de ello, algunas empresas contamos con acceso a talento descentralizado; es decir, podrás contar con talento de diferentes partes del país en tu proyecto sin barreras físicas, de tiempo o idioma. Por lo que el uso de conocimientos externos y el acceso a los mejores recursos de tecnología guiará tu proyecto al éxito.

d. Aumentar la eficiencia

Al adquirir el servicio de Outsourcing de TI, se podrá tener acceso al mejor talento y a lo último en tecnología sin la necesidad de gestionarlo todo internamente desde cero. Tu empresa podrá tener la capacidad de trabajar junto con un equipo especialista para el desarrollo de software; así como cubrir alguna necesidad de tecnología de manera óptima. Además de ello, tendrás la oportunidad de reducir algunos riesgos al ser estos asumidos por la empresa proveedora de dicho servicio. Por otro lado, cuando se trata de invertir en TI, los beneficios de esta estrategia no impactan solo en una área, sino a toda la organización. Esto debido a que una gestión eficiente de dichos recursos podrá conseguir un software que permita mejorar la productividad del personal y los procesos de tu negocio.

e. Enfócate en tu negocio

Por último, uno de los principales motivos y de mayor beneficio para las empresas es el enfoque. Al delegar aquellas actividades tecnológicas secundarias o complementar tu equipo de desarrollo con un especialista de una empresa de Outsourcing TI, esto permite que tu negocio se centralice en actividades más importantes. Es decir, aquellas relacionadas con el core business de tu empresa. De esta forma, este enfoque podrá generar un mayor valor para tu negocio al concentrar mayores energías y esfuerzos en lo que sabe hacer mejor.

Manos especialistas

En conclusión, el Outsourcing de TI se vuelve una estrategia para empresas que buscan su desarrollo tecnológico, sin la necesidad de invertir en la implementación de un área de TI o en la contratación de dicho personal. De tal forma que se deja esta necesidad a manos de una empresa especialista con personal calificado y con experiencia en el rubro de tecnología. Hoy, debido a la complejidad en el desarrollo de software, existe una gran variedad de perfiles específicos dependiendo de los requerimientos del proyecto. Es por eso que, muchos gastos relacionados con la inversión y mantenimiento, tanto de personal como de infraestructuras de TI, son reducidos debido a la colaboración con una empresa externa por medio del servicio Outsourcing TI. Además de lograr un proyecto exitoso debido al acceso a conocimientos externos y obtener ciertos beneficios añadidos para el resto de la organización.

El día de hoy, por el éxito de nuestros proyectos de trabajo remoto, nuestro servicio de Outsourcing de TI se encuentra disponible tanto a nivel nacional como internacional. Por lo que si te gustaría más información acerca de este servicio, puedes escribirnos a hola@doapps.pe.