Category Archives: GetOn

areadesarrollo-juan-lagostena

BITSENSE: ÁREA DE DESARROLLO

Juan Lagostena, Gerente de I+D de Bitsense, esta a cargo de una de las áreas más importantes y de mayor crecimiento de la empresa durante este año. A continuación nos explica cómo fue su ingreso en Bitsense y el funcionamiento general del área de Desarrollo.

Juan es Ingeniero en Informática recibido en la Universidad de Buenos Aires. Durante los años de estudio, conoció a Martin D’Onofrio y Exequiel Leite, dos de los socios de Bitsense. Trabaja en la industria hace más de 10 años, pasando por todo tipo de puestos:  desde soporte técnico, desarrollador en varias tecnologías hasta un par de años de puro management liderando varios equipos.

¿Cuáles son los trabajos que realizas en Bitsense y tus responsabilidades? 

La responsabilidad principal es la de organizar y profesionalizar el área de desarrollo y la de llevar el día a día de Get-On, nuestro principal producto.

Hace un año y monedas empezamos con estas tareas, y me parece que codo a codo con Exequiel estamos dando vuelta todo: profundizando el uso de algunas prácticas, probando nuevas herramientas, mejorando las distintas etapas del proceso de desarrollo.

¿Qué es lo que más te gusta de tu trabajo?

Estuve alejado del desarrollo totalmente, haciendo management puro y, recién cuando me faltó del todo, me di cuenta que me encanta estar cerca de lo técnico. Creo que esa mezcla entre una posición técnica y de management es lo que más disfruto.

¿Qué metodología de desarrollo utilizan? ¿Qué ventajas tiene ?

Usamos metodologías ágiles. Muchas de las prácticas que usamos están dentro del framework Scrum, y una de las cosas en las que más energías estamos invirtiendo es en hacer más ágil a nuestro código y nuestras herramientas para que el desarrollo y el management sean uno. De este modo, generamos que una decisión en uno u otro lado sea fácil de implementar, que sea orgánico.

La principal ventaja que vemos de aplicar este tipo de metodologías es la optimización de tiempos y la flexibilidad que tenemos para establecer prioridades en base a lo que vamos midiendo tanto de nuestros clientes, como de nuestros potenciales clientes. También creemos que ciertas dinámicas fortalecen el trabajo como equipo y, en pocas palabras, hace que nuestro tiempo trabajando juntos sea de mejor calidad.

¿Cómo está formado el grupo de trabajo ?

El equipo de trabajo es súper multidisciplinario. Lo formamos tanto gente técnica como pueden ser Exequiel, Martín o yo mismo, como los encargados de networking. También son fundamentales los genios que se encargan de vender lo que desarrollamos todos los días y los encargados de la difusión tanto de Bitsense en general como de lo que hacemos con Get-On en particular. La convivencia, la sinergia y el buen clima que se genera entre todos, todos los días es crucial para avanzar a un ritmo sostenido y firme.  

¿Que lenguaje están usando? ¿Por qué?

Usamos varios lenguajes. Todo lo que el usuario final ve, está hecho con Angular JS y Symfony, un framework que trabaja en PHP.

En el backend tenemos mucho Java (mucho Spring Boot), algo de Python, varios scripts en Bash y algunas piezas en PHP también.

La decisión de cada lenguaje es variada. A veces por idoneidad del equipo, a veces porque son justo la herramienta que necesitamos, y a veces porque nos gusta experimentar.

Por último: ¿Qué es Get-on ?

Get-On es un aplicación para contactarte con otras personas a través de múltiples canales. Puede ser para conocer a tus clientes enviándoles una encuesta de satisfacción, o un saludo navideño. Puede ser para enviarles un SMS con un código para ingresar a una web, o mismo para hacerles acordar de un turno que tenían agendado.

Lo bueno es que, como está planteado, le puede servir a una Pyme, donde paga por lo que usa, y lo consume como un servicio en la nube, como puede ser una compra en MercadoLibre; o también le puede servir a una empresa que necesita algunas prestaciones específicas, un nivel de servicio específico, etc.

¿Que es tener un proyecto en la nube ? ¿En donde está ? ¿Porque la nube?

Hoy en día Get-On está alojado en Amazon. Hay varios proveedores que ofrecen servicios de cloud, pero elegimos Amazon porque tiene varios servicios que nos son útiles y que de hecho ya estamos usando. El porqué es para tener una elasticidad que de otra forma es difícil tener. Esto es lo mismo que decir que en el caso en que necesitemos mayor capacidad de procesamiento, es bastante simple agregar una máquina en esta nube y ponerla a trabajar, no necesitamos comprar una máquina nueva e instalarle mil cosas.

Encontrá más información acerca del área de desarrollo de Bitsense: http://www.bitsense.com.ar/servicios

blog_geton_exe

Caso de Éxito: Car-Checking en Get-On

Introducción

Hace un tiempo atendimos una consulta en Bitsense de la gente de CarChecking.com.ar.

En pocas palabras, estaban buscando llegar a un segmento particular de potenciales clientes: gente que tenía el auto en venta. Car-Checking tiene un exitoso sistema de certificación del estado del auto para mejorar el proceso de la venta de autos usados.

Lo primero que se planteó fue contactarlos mediante un llamado telefónico, y nos consultaban por una solución más parecida a un pequeño call-center que al uso de Get-On. Pero dada la naturaleza del problema, nos pareció oportuno ofrecer la posibilidad de gestionarlo mediante SMS.

El ¿Cómo?

El SMS marketing, con un público objetivo bien depurado, es una herramienta poderosa y efectiva así que fuimos por ese camino. De la base de datos que nos pasó la gente de CarChecking, nuestro sistema depuró los teléfonos malformados y los que no son números móviles. Después de ese proceso, nos quedaron 835 teléfonos para contactar. El usuario configuró los intervalos de ejecución y un par de horas después tuvo en la landing que preparó 127 visitas. Eso nos muestra una efectividad mayor al 15%, sin dudas una buena medida para una herramienta de marketing, sobre todo teniendo en cuenta que la efectividad promedio de una campaña de email marketing es del 1,5%.

Algunos números

foto_blog_geton

Si querés conocer más acerca de este tipo de servicios: Get-ON

blogelastixb

Bitsense en Elastix World 2016

El equipo de Bitsense dijo presente en la edición 2016 del evento de telefonía ícono en todo Latinoamérica: ElastixWorld. Como siempre, fue una gran oportunidad para compartir experiencias con usuarios, distribuidores, integradores, fabricantes y desarrolladores del sector.

Por otro lado, Bitsense aprovechó la oportunidad para presentar oficialmente Get.ON: la nueva plataforma autogestionable desarrollada por nuestro equipo y pensada especialmente para mejorar el alcance de la comunicación entre la empresa y sus clientes a través del envío masivo y automático de llamadas telefónicas y/o mensajes de texto.

Compartimos con ustedes algunas fotos del evento!

blogelastixa

blogelastixb

 

Jenkins Pipeline + Slack

Para el desarrollo de Get-On usamos varias herramientas muy copadas, pero estamos enamorados especialmente de dos: Jenkins y Slack.

Hace un tiempo hicimos el upgrade a la versión 2.x de Jenkins y empezamos a usar el pipeline y su famoso Jenkinsfile . Hasta ahí, todo iba perfecto, hasta que caímos en la cuenta que cuando un build fallaba, no nos avisaba en nuestro canal de Slack. Ni tampoco nos avisaba cuando arreglábamos el problema.

Y no había nadie a quien culpar, solo que nuestro Jenkinsfile era muy básico.

Notificar algo por Slack desde el Jenkinsfile es algo realmente fácil. Lo que no es tan fácil es que te avise solamente si cambió el estado del build (se rompió o se volvió a arreglar, o fallaron los tests que no venían fallando, etc). Y eso es lo que queríamos lograr.

Creamos un archivo slack.groovy que luego vamos a cargar y a consumir desde el Jenkinsfile. La única magia, es que en el mustNotify pregunta si hay algún cambio entre el  build actual y el resultado del anterior.

slack.groovy

def getLastBuildStatus() {
    return currentBuild.rawBuild.getPreviousBuild()?.getResult().toString()
}

def notifyToSlack(String buildStatus = 'STARTED') {
    buildStatus =  buildStatus ?: 'SUCCESS'
    if (mustNotify(buildStatus)) {
        def color = getColorByStatus(buildStatus)
        slackSend(message: "${env.JOB_NAME} - #${env.BUILD_NUMBER} - ${buildStatus}",
                channel: "#your-channel", color: color, token: "yourToken")
        return
    }
    echo "No debe notificar por Slack"
}

def getColorByStatus(String buildStatus = 'STARTED') {
    if (buildStatus == 'STARTED') {
        //amarillo
        colorCode = '#FFFF00'
    } else if (buildStatus == 'SUCCESS') {
        //verde
        colorCode = '#00FF00'
    } else {
        //rojo
        colorCode = '#FF0000'
    }
    return colorCode;
}

def mustNotify(String buildStatus) {
    def lastBuildStatus = getLastBuildStatus()
    return !buildStatus.equals(lastBuildStatus)
}

return this

Y en el Jenkinsfile directamente lo consumimos de esta manera

Jenkinsfile

#!groovy

stage 'build and tests'

def project
def slack

node {
    def workspace = pwd()
    slack   = load "${workspace}@script/slack.groovy"
    project = load "${workspace}@script/project.groovy"

    try {
        //get things done
    } catch (e) {
        currentBuild.result = "FAILED"
        throw e
    } finally {
        slack.notifyToSlack(currentBuild.result)
    }
}

Y ya con eso solamente, logramos el anhelado deseo de obtener notificaciones solamente cuando el estado cambia. También podés verlo en este Gist.

Vale mencionar que este fragmento de código nos sirvió mucho también.

PD: perdón por los magic strings

GetOn NOTA BLOG

GET ON: la nueva plataforma de contacto con clientes diseñada por Bitsense

Get on es la nueva plataforma autogestionable desarrollada por Bitsense y pensada especialmente para mejorar el alcance de la comunicación entre la empresa y sus clientes. Esto se logra a través del envío masivo y automático de llamadas telefónicas y/o mensajes de texto.

La plataforma permite realizar encuestas de satisfacción, políticas e intención de voto. También es posible diseñar campañas de difusión, enviar avisos y alertas por SMS, analizar los resultados de un modo muy simple e inclusive hacer un seguimiento en tiempo real de la campaña.

Esta plataforma es 100% autogestionable y muy simple de usar. Cuenta con un sistema de ayudas que indican los pasos a seguir, de modo que en menos de 5 minutos pueda diseñar y lanzar cualquier campaña.

Se paga sólo por lo que se usa, sin costos mensuales fijos y al mejor precio del mercado, minimizando el costo por contacto y mejorando la efectividad de sus acciones.

Por esto y mucho más, los invitamos a conocer Get.On: http://get-on.io/

GetOn_Producto-01