WhatsApp para empresas

Transmitir mensajes de interés corporativo.

Al hilo de un problema de seguridad informática que vivimos el año pasado mientras trabajaba desplazado en un cliente. La crisis que se produjo, hizo patente la necesidad de un sistema de comunicaciones corporativo y ágil para transmitir mensajes de interés general a los empleados de la compañía en momentos determinados.

Un poco de información de contexto.

Entre otros muchos canales, SMS, EMAIL, llamadas de teléfono, el CTO de la compañía propuso utilizar WhatsApp como herramienta que podría cubrir las necesidades de comunicación al personal de la empresa. La idea a priori sonaba viable y le dimos prioridad. WhatsApp es una aplicación con una gran difusión, casi todo el mundo la tiene instalada en sus móvil. Dispone de un interfaz web para facilitar su uso desde ordenadores y no solo desde elementos de movilidad. Su principal cometido es poner en contacto a personas. La estabilidad de WhatsApp parece más que probada en sus casi 10 años de servicio. Parecía un candidato adecuado y fuerte.

Desgraciadamente, en el momento del estudio nos topamos con varias pegas. La principal fue que la licencia de WhatsApp es una licencia de uso personal, WhatsApp no está diseñado para ser usado por un ente, empresa o similar. Es por este motivo que WhatsApp no permite el uso de su plataforma para el envío masivo de mensajes.

Uso legal y aceptable. Debes acceder a nuestros Servicios y usarlos solo con fines legales, autorizados y aceptables. No usarás (o ayudarás a que otros usen) nuestros Servicios en formas que: (a) (…) (e) impliquen el envío de comunicaciones ilegales o inadmisibles, como mensajería masiva, mensajería automática, marcado automático y metodologías similares; o (f) impliquen cualquier otro uso no personal de nuestros Servicios a menos que nosotros autoricemos lo contrario.

Como todavía no queríamos rendirnos prematuramente y desechar WhatsApp como herramienta, pensamos en sortear estos impedimentos legales creando un perfil personal corporativo que actuará como fuente de información y posteriormente crear un grupo donde incluir a los empleados. La empresa para la que trabajamos supera los 3000 empleados, y aquí es donde encontramos un nuevo handicap, whatsapp solo permite grupos de 256 sujetos.

Sin tirar la toalla todavía, encontramos la posibilidad de utilizar servicios de terceros que a través de whatsapp ofrecen el envío masivo de mensajes. Dos eran las empresas que destacaban ofreciendo estos servicios: MassyPhone y WhatsAppMarketing.

MassyPhone. Multiuser whatsapp web chat. Whtsapp marketing. Envío de mensajes masivos.

 

 

Después de investigar esta vía, tuvimos que descartarla por los siguientes motivos:

  • El primero es que teníamos que entregar a éstas empresas los números de teléfono de los empleados, lo que iba en contra de la política de privacidad.
  • El Segundo fue que tras investigar el funcionamiento de estos servicios descubrimos qué, como legalmente Whatsapp no permite el envío masivo de mensajes, estas empresas usan un pool de teléfonos para permitir el envío masivo sin ser inhabilitados. No nos pareció una buena práctica apostar por empresas que usan el servicio de una manera que el propio WhatsApp prohibe.
  • Además, los mensajes serían enviados desde diferentes números de teléfonos cambiantes, lo que impediría al empleado corroborar la veracidad de la fuente y abría una puerta al envío de mensajes falsos y maliciosos.

Llegados a este punto, decidimos abandonar la idea de utilizar Whatsapp para el envío de información y seguir confiando en el envío masivo de SMS, pues la alternativa no era viable.

Whatsapp para empresas

Finalmente, hoy anuncia WhatsApp que ha creado una aplicación llamada WhatsApp para empresas (o Whatsapp Business en inglés) que permite a las pequeñas y medianas empresas interactuar con personas pudiendo utilizar herramientas de automatización, organización y respuesta rápida a mensajes.

La aplicación permite crear un perfil de empresa con información interesante sobre el negocio desempeñado, horario, ubicación, etcétera. Permite establecer mensajes de ausencia donde se indique el horario para poder contactar, mensajes de bienvenida, respuestas rápidas que permite guardar en la aplicación mensajes que se envían de manera frecuente y así reutilizarlos para responder a las preguntas más rápidamente.

De momento la aplicación está sólo disponible para Android, aunque se espera una versión iOS no muy lejos en el tiempo, y solo está disponible para Indonesia, Italia, México, Reino Unido y Estados Unidos, pero se espera su expansión en pocas semanas en el resto del mundo.

Conclusión

Aunque esta nueva aplicación empresarial de Whatsapp tampoco soluciona nuestra premisa de comunicación masiva a los empleados, va avanzando en el camino adecuado para que en un futuro no muy lejano Whatsapp se convierta en la solución empresarial para la interacción empresa-empleado y empresa-cliente. Habrá que seguir con interés lo qué nos depara el futuro.

JIRA, desplegando de desarrollo a producción

Introducción

Estoy participando en un proyecto para realizar el seguimiento de tareas internas en una compañía de distribución comercial de bienes y servicios. Para llevar a cabo correctamente esta gestión de tareas decidimos instalar la solución JIRA de la compañía Atlassian. Sobre esta herramienta instalamos un par de plugins a través del marketplace y realizamos la configuración de tres workflows para el seguimiento personalizado de las tareas. Como este sistema de seguimiento no era crítico para la compañía decidimos crear dos instalaciones diferenciadas: la instalación de desarrollo, donde desarrollar y probar las configuraciones y nuevos desarrollos, y una instalación productiva donde la compañía llevaría a cabo su trabajo productivo.

A principios de este mes llegó el momento de poner en producción las instalaciones, configuraciones y desarrollos que se habían ido realizado en el entorno de desarrollo, y claro está surgieron inquietudes tipo; ¿perderemos algo a la hora de realizar el traspaso? ¿cómo comprobaremos que todo ha sido traspasado correctamente? ¿habrá que parar el entorno productivo? ¿Cuánto tiempo deberá estar parado en caso afirmativo?.

Este post es la recopilación de las diferentes alternativas que contemplé para realizar el despliegue en producción del desarrollo en JIRA.

Buenas prácticas para facilitar los despliegues entre entornos de JIRA.

En cualquiera de los métodos que se van a enumerar a continuación es una buena práctica, a la hora de desarrollar en JIRA seguir una metodología que nos lleve a documentar las diferentes configuraciones y desarrollos que realizamos. Normalmente la documentación es uno de los entregables que menos se cuida cuando se realiza la entrega de un producto software, pero sin embargo en JIRA es una pieza esencial para entender qué se ha hecho y facilitar los despliegues y migraciones posteriores.

Otra buena práctica es contar, con un entorno de desarrollo donde personalizar las configuraciones, realizar los desarrollos y probar los plugins que vamos a llevar a producción, con un entorno pre-productivo, donde si la instalación de JIRA es crítica para el negocio, poder probar que no se rompe nada con el desarrollo que queremos llevar a producción, y con un entorno productivo que es el que finalmente da servicio al negocio.

Por supuesto, y esta va a ser una buena práctica basada en el sentido común, si se está desarrollando un plugin para JIRA, el nombre de los paquetes java debe ser propio y concluyente. Sería lioso si utilizáramos como nombre com.atlassian.jira.plugins, mucho mejor sería org.mycompany.jira.plugins.

Recopilación de diferentes métodos para estos despliegues.

Una vez terminado el desarrollo, normalmente en un entorno no productivo, el siguiente paso es ponerlo en producción. Para ello existen varios caminos de los cuales elegiremos el que mejor nos cuadre con nuestra manera de trabajar. A continuación enumero aquellos métodos que tuve en cuenta en la puesta en producción del proyecto que teníamos entre manos, y después os contaré cual elegimos y el motivo.

Método manual.

Si se ha cumplido la premisa de que el desarrollo está correctamente documentado, y tenemos un inventario claro y ordenado de los cambios que se han realizado, este método proporciona varias ventajas y algún que otro pero.

La principal ventaja es que el control y conocimiento en el despliegue es total. Paso a paso se replican los cambios realizados en desarrollo y que han llevado al buen funcionamiento en dicho entorno. Si surge algún problema, se soluciona y se procede a actualizar la documentación hasta dejarla correctamente depurada.

Este método permite que el despliegue productivo lo realice personal técnico ajeno al desarrollo, que no solo valida la documentación, si no que adicionalmente adquieren conocimiento de la instalación.

Como contra, de todos los métodos que voy a enumerar, este es con diferencia el más lento de todos ellos, pudiendo llevar horas cada implantación a producción. Además, es esencial contar con un entorno pre-productivo donde depurar la documentación y poder probar que todo funciona correctamente antes de poner el software en producción.

Método basado en herramientas out-of-the-box.

Para agilizar los despliegues de los workflows, con los que hemos personalizado nuestra instalación, podemos utilizar las herramientas de exportación que se proporciona con la instalación básica de JIRA. Estas herramientas permiten exportar los workflows en un fichero empaquetado. Este fichero empaquetado se puede incluso desplegar en el Atlassian Marketplace pasando a estar disponible para replicar en otros entornos JIRA de nuestra compañía, e incluso en entornos JIRA de otras compañías.

La documentación de Atlassian explica paso a paso en la documentación la manera de proceder para la exportación e importación. Atlassian Documentation: Sharing your workflow.

Ni que decir tiene que al ser un método basado en las herramientas que proporciona el propio JIRA es un método seguro y fiable, que exporta los workflows con total garantía y que cuenta con la ventaja de que al publicarse en el Atlassian Marketplace, automáticamente queda disponible para ser utilizado en otros entornos de JIRA.

Por supuesto, al automatizar parte del proceso de despliegue, éste se hace más rápido y las implantaciones duran menos que siguiendo el método manual.

Como contra decir que la exportación e importación de JIRA solo funciona con workflows, quedando fuera ventanas, plugins y otros elementos que habría que seguir exportando manualmente.

Método basado en herramientas de terceros.

Ante la inexistencia de herramientas nativas que manejen el ciclo de vida de los desarrollos y sus despliegues a diferentes entornos, terceras empresas han desarrollado herramientas que facilitan estas tareas y que ofrecen a través de plugins, normalmente de pago.

Los plugins mejor valorados en el marketplace de Atlassian son:

Configuration Manager

El plugin fue creado para automatizar la migración de las configuraciones de proyectos teniendo en cuenta todo tipo de componentes.
El plugin está creado por Botron Software, un desarrollador de plugins certificado por Atlassian con un soporte de 8 horas al día, 5 días a la semana. El plugin está soportado por el propio Atlassian.
La versión 5.1.4 del plugin es compatible con Jira Server desde la versión 6.3 hasta la versión 7.7.0.

Entre otras cosas el plugin:

  • Permite realizar snapshots de JIRA a nivel de Proyecto, incluso a nivel de Sistema que pueden ser desplegadas en otros servidores JIRA.
  • Analiza automáticamente todos los cambios y determina si existe impacto en otros proyectos publicados en el servidor JIRA destino.
  • El despliegue de los snapshots lleva unos pocos minutos, en vez de las horas que implica llevar a cabo todas las operaciones de un despliegue manual.
  • Proporciona una trazabilidad completa de las operaciones realizadas.

A día de hoy, el licenciamiento de esta herramienta es el siguiente:

10 users
10$
25 users
500$
50 users
1000$
100 users
1800$
250 users
3200$
Project configurator

El plugin fue creado para mover proyectos, o solo sus configuraciones, de una instanacia de JIRA a otra.
El plugin está creado por Adaptavist, un desarrollador de plugins certificado por Atlassian con un soporte de 8 horas al día, 5 días a la semana. El plugin está soportado por el propio Atlassian.
La versión 2.3.0J7 del plugin es compatible con Jira Server desde la versión 7.0.0 hasta la versión 7.6.3 de JIRA. Como ventaja adicional, están compatibilizando esta versión con la versión JIRA Service Desk.

Entre otras cosas el plugin:

  • Exportar uno o múltiples proyectoen un único fichero de exportación.
  • Exportar todo el proyecto o sólo las configuraciones.
  • Proporciona trazabilidad completa de la información exportada.
  • Simular como afectan los cambios de configuraciones en la instancia destino de JIRA.

A día de hoy, el licenciamiento de esta herramienta es el siguiente:

10 users
10$
25 users
125$
50 users
235$
100 users
395$
250 users
565$

La gran ventaja de utilizar cualquiera de estas herramientas es que son capaces de gestionar el despliegue de proyectos y esquemas completos, pudiendo exportar toda la estructura o solo las configuraciones. Además, proporcionan trazabilidad completa de las operaciones que se llevan a cabo, permitiendo simular la implantación y detectar antes de implantar si existe o no algún riesgo de incompatibilidad entre lo que se sube y lo que ya existe en el servidor.

Por supuesto, al realizarse de manera automática, los despliegues tardan muchísimo menos en finalizar, no por ello dejándose a un lado la seguridad de un buen despliegue.

Por contra, lo bueno cuesta dinero, y dependiendo del número de usuarios de la licencia de JIRA nos costará más o menos poder utilizarlos.

Otros métodos

Adrede dejo fuera del estudio otros métodos, como la clonación del esquema de la base de datos de desarrollo en producción, o la realización de un exportador a medida utilizando el REST API de JIRA, porque o bien no lo considero adecuado, o bien no considero que el despliegue sea tan complejo que el esfuerzo merezca la pena.

Conclusión.

La elección del método depende de varias variables:

  • la primera del esfuerzo y participación que se quiere tener en el despliegue
  • la ventana horaria que hay para realizar los despliegues
  • el presupuesto

Tanto si el despliegue no debe suponer un gran esfuerzo, como si la ventana horaria no es muy grande deberíamos elegir un método lo más automático posible, las herramientas de terceros es el método más rápido y más desatendido, como contra está el presupuesto del que disponemos para dedicar a los despliegues. El método manual queda relegado a aquellas personas a las que le gusta tener el control absoluto de la implantación y tienen un profundo conocimiento tanto de lo que están haciendo como de la administración de JIRA, sin importarles el tiempo que les lleva el despliegue.

Links