¿Qué significa que el software sea reactivo?

En el 2014 Gartner escribió que era obvio que la antigua arquitectura de 3 capas es obsoleta.

Años atrás hablábamos de la arquitectura de 3 capas, un proyecto en un servidor y un trafico “moderado”, hoy hablamos de programas que sirven muchos clientes, entre ellos web, móvil, otros programas (API), IoT entre otros.

Según Ericsson Mobility Report, se espera que Internet de las cosas (IoT) sobrepase los teléfonos móviles y sea la categoría más grande de dispositivos conectados en 2018.

En Setiembre del 2014 apareció el manifiesto reactivo con el fin de aclarar la confusión de aquel entonces sobre el término “reactivo” y a la vez construir una base sólida para un estilo de desarrollo que cumpla con las características que el software moderno (alineado a la demanda de hoy) debe tener.

¿Entonces, que significa que el software sea reactivo?

En lineas generales y de acuerdo al manifiesto podemos decir:

  • Que el sistema responda de manera oportuna (a diferencia de sistemas que toman varios segundos y en algunos casos hasta minutos en responder al usuario)
  • Que el sistema permanezca responsivo cuando enfrenta fallas (en contraste a que el sistema deje de funcionar por completo y requiera intervención humana)
  • Que el sistema se mantenga responsivo bajo variaciones en la carga de trabajo (en contraste a detenerse por completo o que el servidor devuelva un código de error por sobre carga)
  • Capaz de enviar, recibir y enrutar mensajes en diferentes condiciones de la red (la comunicación entre componentes se realiza a través de mensajes lo que asegura el bajo acoplamiento)

Muchas de las soluciones reactivas han existido desde 1970, el hecho que no hayan sido tan populares en aquel entonces como lo están siendo ahora se debe a varios factores, entre ellos la necesidad de utilizar mejor los recursos y la escalabilidad.

Que los sistemas sean reactivos hoy es una necesidad, no podemos resolver los problemas de hoy con las técnicas y herramientas de ayer.

 

Más información en:
https://www.oreilly.com/learning/why-reactive

¿Qué significa que el software sea reactivo?

Te presentamos a CLU, nuestro nuevo chatbot de Facebook

Hoy en día, la transformación digital es un tema de interés para muchas empresas, creemos que el papel que desempeñan las empresas de software en este tema debe ser ejemplar a medida de lo posible y por eso en este post queremos contarles nuestra experiencia con la creación de nuestro chatbot de Facebook llamado CLU.

Semanalmente nos escriben a través de nuestro fan page de Facebook solicitandonos cotizaciones, en este primer contacto usualmente les pedimos que nos describan lo que quieren desarrollar y que nos brinden un correo para luego ponernos en contacto con ellos.

La iniciativa de crear a CLU nace en una primera instancia para automatizar este proceso, rápidamente notamos que era una muy buena oportunidad para automatizarlo por la estructura del mismo.

En un inicio la primera misión de CLU era atender las solicitudes de cotización, sin embargo hay otras consultas que nos realizan por nuestro fan page como por ejemplo, solicitarnos más detalle sobre los servicios que brindamos y las tecnologías que usamos, por eso decidimos incluir una opción más que brinde dicha información a quien la solicite.

En esta primera versión CLU podrá ayudar a nuestros visitantes con solicitudes de cotización y brindar información sobre nuestros servicios, sin embargo tenemos planeado otras acciones próximamente, pronto les contaremos más sobre eso.

CLU funciona a través de un menú predeterminado y frases como “quiero solicitar una cotización”, “regresar al menú”, “cuales son sus servicios”. Ahora mismo CLU está en un proceso de aprendizaje, sus respuestas irán mejorando con el tiempo y nosotros lo iremos actualizando para que cada vez la conversación se sienta más natural.

Puedes conversar con CLU a través de las siguientes 3 opciones:

  1. Ingresar al messenger haciendo clic aquí
  2. Ir a nuestro fan page en www.facebook.com/evolbit y hacer click en el botón “Enviar mensaje”
  3. Escaneando el siguiente código

 

¿Listo para crear tu chatbot?

Si tienes consultas sobre los chatbots o te interesa implementar uno para tu empresa, escríbenos para ayudarte a implementar la mejor opción para tu negocio.

Si lo puedes pensar, nosotros lo podemos hacer.

Te presentamos a CLU, nuestro nuevo chatbot de Facebook

Las aplicacionеs para buscar еmplеo

El constantе dеsarrollo dе las nuеvas tеcnologías suponе una gran ayuda еn las tarеas diarias. Todo еs más fácil gracias a los avancеs tеcnológicos, también la búsquеda dе еmplеo quе, dе un tiеmpo a еsta partе, sе llеva a cabo, mayoritariamеntе, a través dе algún dispositivo еlеctrónico. Las aplicacionеs, son un buеn еjеmplo: haciеndo un buеn uso dе еllas, aumеntarán significativamеntе las posibilidadеs dе еncontrar un trabajo. Por su partе, las еmprеsas también sе bеnеfician dе las nuеvas tеcnologías quе facilitan еl trabajo a los dеpartamеntos dе Rеcursos Humanos.

Tеniеndo todo еsto еn cuеnta, a continuación os dеjamos un listado con algunas dе las apps gratuitas más intеrеsantеs para buscar empleo. Utilizarlas еs muy sеncillo y son un complеmеnto pеrfеcto dе la búsquеda tradicional.

– LinkеdIn: еn los últimos años ha ido cobrando protagonismo hasta situarsе como una dе las mayorеs rеdеs profеsionalеs dеl mundo, pеro no sólo еs еso, también еs un portal dе еmplеo quе pеrmitе a sus usuarios rеlacionarsе con profеsionalеs dе su sеctor, compartir noticias, еmplеos y еxpеriеncias.

– Emplеa: Un poquito difеrеntе pеro también muy útil, еs la plataforma dе búsquеda dе еmplеo dе Univеrsia. ahí podréis consultar las ofеrtas disponiblеs е inscribiros еn las quе más sе adaptеn a vuеstro pеrfil. Todo еllos con la garantía y profеsionalidad dеl еquipo dе Univеrsia.

– Jobееpеr: еs una fantástica para buscar ofеrtas dе trabajo еn еl ámbito intеrnacional. еstá prеsеnta еn más dе 35 paísеs y adеmás dе sеr totalmеntе gratuita, no nеcеsita rеgistro. Gracias a sus filtros, podrás acotar еl tipo dе еmplеo quе más tе intеrеsa y rеcibir notificacionеs instantánеas cada vеz quе aparеzca una ofеrta quе sе adaptе a los quе buscas. Sе puеdе dеscargar tanto еn Googlе Play como еn applе Storеs.

– CasualJobs: Sin nеcеsidad dе pеrdеr tiеmpo еn rеgistros, lo mеjor dе еsta aplicación son sus más dе mil catеgorías profеsionalеs, quе pеrmitеn filtrar la búsquеda dе manеra muy еspеcífica.

– Eurеs: еl sеrvicio еuropеo dе еmplеo cuеnta también con su propia aplicación, dondе еncontraréis ofеrtas dе trabajo еn toda еuropa. adеmás, tiеnе una opción para la acotación dе la búsquеda a través dе filtros, catеgorías y paísеs.

– Jobandtalеnt: pеrmitе tanto la importación dеl CV como la sincronización con LinkdIn, lo quе agilizará la crеación dеl pеrfil. еstá disponiblе tanto para Iphonеs como para dispositivos android.

Las aplicacionеs para buscar еmplеo

Los chatbots llegaron para quedarse

¿Qué son los chatbots?

Los chatbots son programas que pretenden imitar una conversación con los usuarios. Utilizan el procesamiento de lenguaje natural e inteligencia artificial para procesar una respuesta apropiada de acuerdo al input del usuario.

Cada vez más presentes

Cada día los chatbots son más comunes, las empresas los integran entre sus procesos para automatizar tareas, el BCP por ejemplo cuenta con uno llamado Arturito que permite a los usuarios consultar sus saldos, gestionar notificaciones, entre otros.

Cuando hablamos de reemplazar a un humano por un chatbot para realizar tareas cotidianas, las ideas que pueden venir a la mente son la optimización a nivel económico porque no reciben un sueldo y la optimización a nivel de servicio ya que no duermen y pueden atender 24/7. Si bien es cierto visto desde un punto de vista general hay que tener en cuenta el grado de “inteligencia” que un bot tiene, ya que de acuerdo a esto, el usuario puede sentirse frustrado o tener una gran satisfacción cuando interactúe con él.

Desde el anuncio de Facebook hasta Noviembre del año pasado se habían reportado 34,000 chatbots (ver noticia), lo cual es un buen indicador y definitivamente despierta mucho más el interés tanto de las empresas en implementar uno como de los desarrolladores en crearlos.

Hoy existen varias plataformas que facilitan la inteligencia artificial a los desarrolladores, por ejemplo, de paga tenemos IBM Watson (ver demo) y libre tenemos wit.ai.

Definitivamente los chatbots han llegado para quedarse, son parte de un futuro muy cercano y hay que estar muy atentos para sacarle provecho.

Si quieres implementar un chatbot y quieres conocer más a fondo lo que implica, no dudes en comentar o ponerte en contacto con nosotros.

Los chatbots llegaron para quedarse

Recomendaciones para clientes en el desarrollo móvil

Este post está dirigido principalmente a las personas que contratan (o buscan contratar) a una empresa o freelancer para desarrollar una aplicación móvil. Con estas simples recomendaciones para clientes en el desarrollo móvil, será mucho más fácil llevar a cabo el desarrollo y participar activamente con el equipo encargado para evitar reprocesos.

Solicita un prototipo de la aplicación

El prototipo no debe ser muy elaborado ni muy simple tampoco, debe ser lo suficientemente claro como para que tú y el equipo encargado de desarrollar el app lo entiendan, este prototipo servirá para evitar malos entendidos y evidenciar puntos clave de la aplicación.

Pregunta si es posible utilizar Firebase para reducir el precio y complejidad

Firebase es una base de datos que permite almacenar directamente desde el celular, simplificando el desarrollo y en algunos casos eliminando por completo la necesidad de desarrollar código en el servidor, lo que significa, menos horas de un perfil de desarrollador backend y un ajuste en el precio.

Solicita siempre que instalen la aplicación en tu celular

Muchas empresas/freelancers muestran los avances en sus celulares de prueba y a veces lo instalan en el celular del cliente casi al final del proyecto porque “ya se puede probar”. Si solicitas que te instalen la aplicación y además recibir actualizaciones de la misma cada semana, podrás probarla en el momento que quieras, las veces que quieras. Estarás mucho más al tanto y podrás dar feedback. La instalación para tí como cliente debe ser simple, puedes usar herramientas como TestFairy o TestFlight.

Lee y asegúrate que el equipo desarrollador lea las recomendaciones de Apple para publicar una aplicación

Cuando la aplicación sea revisada por Apple, ellos definitivamente van a observarla si tu aplicación no cumple con algunos de los puntos que ellos mencionan en el guideline, lo que significa que demorarás más para hacer tu aplicación pública. La información que necesitas leer para publicar tu aplicación se encuentra en https://developer.apple.com/app-store/review/guidelines/. Tambien te recomendamos leer los tips para diseño https://developer.apple.com/design/tips/.

Comparte la aplicación con personas de confianza

Mientras más personas vean tu aplicación, más oportunidades de mejora encontrarás, por eso intenta compartir tu aplicación con personas de confianza que puedan dedicar un tiempo a usarla y luego darte feedback. Puedes solicitar al equipo de desarrollo que agregue a las personas que consideres necesarias (un número razonable).

Conversa con tu equipo para que la aplicación sea revisada sin conexión a Internet

Muchas veces los desarrolladores solo consideran el caso de la aplicación con conexión y no controlan los casos de pérdidas de conexión. La consecuencia de no controlar estas situaciones muchas veces significa que la aplicación se cierra sola (crash) o que el comportamiento se vuelve impredecible, por esa razón, asegúrate que el equipo haga una demostración sin conexión y quitando la conexión de un momento a otro en puntos críticos de la aplicación. Las aplicaciones siempre deben mantenerse responsivas e informar al usuario todo el tiempo.

Esperamos que les sean útiles estas recomendaciones.

Somos reactivos!

Recomendaciones para clientes en el desarrollo móvil

¿WaterScrumFall? El enfoque mixto da malos resultados

¿Qué metodología es la más usada y eficiente, ágiles, cascada o híbrida?

Hace unos meses atrás, Hewlett Packard Enterprise (HPE), realizó una encuesta llevada por YouGov acerca de las metodologías usadas para el desarrollo de proyectos de software. La encuesta se realizó a 403 profesionales, entre ellos desarrolladores, testers, project managers y operaciones de TI.

La encuesta reveló que solo un pequeño grupo usa cascada en su forma pura, un 50% utiliza ágil de forma pura y un 82% utiliza ágil de forma pura o híbrida.

Además, la encuesta mide el éxito de los proyectos a través de 6 indicadores, calidad y rendimiento, time to market, velocidad de entrega, alcance, seguridad, and costo/uso de recursos. Como era de esperarse, el resultado es satisfactorio para ágil de forma pura, demostrando que los proyectos desarrollados de esta forma, son más exitosos.

Según la encuesta, los proyectos ágiles dan mejores resultados que los proyectos híbridos, las compañías que tienen estas prácticas deberían de reconsiderarlo.

Si quieres descargar el reporte completo, haz clic aquí.

¿WaterScrumFall? El enfoque mixto da malos resultados

Digital Ocean estrena sus nuevos balanceadores de carga

 

Balanceadores de carga de Digital Ocean

Digital Ocean estrena sus nuevos balanceadores de carga, los cuales como el resto de sus productos, seguramente darán mucho que hablar. Digital Ocean es una empresa que se ha caracterizado por tener un excelente servicio, rápido, económico y con un uptime muy bueno.

Si bien casi todos en la industria utilizan los balanceadores de Amazon, los nuevos balanceadores de Digital Ocean son una buena opción a considerar, veamos algunos puntos importantes a tener en cuenta.

  • Su precio es de $20 o $0.03 por hora.
  • Los balanceadores están disponibles por región y de momento no está soportado balancear entre instancias de regiones diferentes.
  • Los protocolos soportados son HTTP, HTTPS, TCP.
  • Las algoritmos de balanceamiento son Round Robin y Least connections.
  • Se pueden crear utilizando el API.

Como vemos, de momento cuenta con todo lo necesario para un proyecto simple, y por el precio ofrecido será cuestión de probarlo para ver los resultados.

Digital Ocean estrena sus nuevos balanceadores de carga

Evolbit es system integrator partner de MongoDB

Evolbit es system integrator partner de MongoDB

Evolbit es system integrator partner de MongoDB, es oficial y aparece en la lista de partners de MongoDB.

https://www.mongodb.com/partners/evolbit

Esta noticia nos llena de entusiasmo y nos motiva a continuar brindando el servicio que damos, con mucho esfuerzo para marcar una diferencia!

Somos reactivos!

Evolbit es system integrator partner de MongoDB

La calidad de servicio en las empresas de software

Muchos han pasado por experiencias no tan gratas con empresas/freelancers de servicios de desarrollo software, o no han completado los proyectos, o el tiempo de duración se ha extendido más del esperado, o alguna otra razón que hace que la calidad de servicio disminuya enormemente.

Por más que no nos guste adimitirlo, estas situaciones son comunes en este rubro. Por esa razón, a continuación vamos a revisar algunos casos en los que la calidad de servicio se ve afectada para luego ver unas breves y honestas recomendaciones para tratar evitar estos casos.

Los cambios

Es normal que los proyectos tengan cambios, por eso hoy, las prácticas ágiles son muy usadas, ya que aceptan el cambio como algo natural, sin embargo, algunas empresas justifican su falta de proactividad con los documentos de especificación y así no realizar cambios naturales y lógicos (dentro de lo aceptable) y “dejandolos para el final” para luego decir “te he entregado lo que acordamos inicialmente” generando disconformidad en los clientes.

Falta de conocimiento

Cuando la empresa contratada carece de conocimiento sobre un tema ofrecido (ni tampoco lo comunica), tiende a demorarse más tiempo del esperado y en algunos casos cortan temporalmente la comunicación mientras buscan una solución.

Ofrecimiento de tiempos inalcanzables

Por ganar el proyecto, las empresas suelen ofrecer tiempos que parecen sacados de una película de ciencia ficción. En estos casos las empresas intentan ocultar los retrasos evitando contestar el teléfono o los correos dejando al cliente expectante sobre su proyecto.

Ganar a un cliente “más grande”

Algunas empresas aún practican la filosofía de “el que paga más tiene más prioridad”. Esta situación es muy critica, ya que todos los clientes deben tener el mismo trato, no se deben sacrificar a los “clientes pequeños” para complacer a los “más grandes”.

Estos son algunos de los casos más comunes que conocemos en los que las empresas degradan su calidad de servicio.

Nos gustaría cerrar el post con algunas recomendaciones, todas muy simples, no son más que la forma en la que nos gusta trabajar y esperamos que puedan ayudar a otras empresas/personas para evitar pasar por situaciones como las mencionadas anteriormente.

  • Se honesto: Si hay un tema que el equipo no domina, lo mejor es ser transparente y decirlo, esto generará confianza y ayudará a trabajar sin tensiones. Por otro lado, si un cambio va a demandar mucho esfuerzo, es justo que el cliente lo note (con nuestra orientación) y lleguen a un buen acuerdo.
  • No tengas preferencias: Todos los clientes merecen el mismo trato, solo piensa, si tu fueras el cliente, ¿te gustaría ser tratado diferente por ser un cliente pequeño?.
  • No ofrezcas tiempos que no puedes cumplir: A veces es mejor dar un paso al costado y rechazar un proyecto si el tiempo es demasiado corto. Siempre existirán los proyectos “para ayer” pero nuestra responsabilida es orientar al cliente hacia un escenario real.
  • Utiliza prácticas ágiles que te permitan tomar el cambio como algo natural, mantén una buena comunicación con tu cliente y llega a tratos justos cuando una situación irregular aparezca, la clave es la transparencia.

Brindar un servicio de calidad a nuestros clientes no es algo opcional, por eso es muy importante obtener feedback de nuestros clientes, quien mejor que ellos para ayudarnos a identificar las oportunidades de mejora en nuestro servicio.

La calidad de servicio en las empresas de software

Libros gratis de O’Reilly

La colección gratis de O’Reilly cuenta con muchos temas de interés y en este post hemos seleccionado los relacionados a la programación funcional y los sistemas reactivos.

Los pueden descargar desde los siguientes enlaces:

Object-Oriented vs. Functional Programming
http://www.oreilly.com/programming/free/object-oriented-vs-functional-programming.csp

Functional Programming in Python
http://www.oreilly.com/programming/free/functional-programming-python.csp

Why Reactive?
http://www.oreilly.com/programming/free/why-reactive.csp

Developing Reactive Microservices (requiere registro)
https://info.lightbend.com/COLL-20XX-Developing-Reactive-Microservices_Landing-Page.html?lst=OR

Reactive Microservices Architecture
http://www.oreilly.com/programming/free/reactive-microservices-architecture-orm.csp

 

Libros gratis de O’Reilly