viernes, 30 de diciembre de 2016

La odisea de certificarse en Bluemix


Pues para rematar un año que la he pasado de nube en nube, me propuse como última batalla épica del año completar una certificación relacionada con la plataforma PaaS de IBM conocida con el nombre de Bluemix.

Bluemix es un servicio que proporciona una plataforma para el despliegue de aplicaciones construidas en diferentes tecnologías (Java, Node.js, Ruby, Go, etc). 

Además cuenta con un amplio catálogo de servicios administrados que pueden ser facilmente vinculados a las aplicaciones. De estos servicios se pueden mencionar bases de datos, almacenamiento de objetos, cómputo cognitivo, monitoreo, repositorios de código, despliegue contínuo, contenedores docker, mensajería, entre muchos otros. 

Bluemix está pensada en ser una oferta de servicios de nube a nivel plataforma (PaaS), es decir facilita la puesta en marcha de aplicaciones y consumo de servicios sin la necesidad de entrar en lios a nivel de infraestructura. Además se basa en proyectos conocidos en la comunidad de desarrollo como Cloud Foundry y Docker además de utilizar un enfoque de microservicios accesibles via REST / HTTP.

Durante algunos proyectos en el año y un pequeño acercamiento con gente de IBM se tuvo la oportunidad ganar experiencia en esta plataforma y dado que parece una navaja suiza que ofrece todo lo necesario a un desarrollador que quiere enfocarse en la construcción de la solución decidí completar alguna certificación en esta plataforma tratando de narrar el proceso de la forma más pseudo-épica posible (dados mis vagos conocimientos Homerísticos).

Saliendo de Ítaca

El punto de partida fue encontrar algún examen dentro de la oferta de IBM relacionado con los temas de Bluemix lo que me llevó al examen C5050-285 - IBM Cloud Platform Application Development v1.

Los objetivos del examen son algo extensos pero se pueden resumir en:

  • Organizaciones, Espacios, Usuarios, Dominios y demás lios de acceso a la plataforma
  • Generalidades de la plataforma CloudFoundry y el despliegue de aplicaciones
  • Servicios de datos ofrecidos, haciendo énfasis en Cloudant
  • Servicio de contenedores basado en Docker
  • Servicio de mensajería basado en Apache Kafka
  • Generalidades de Alchemy API
  • Servicios de DevOps como son el repositorio de código, delivery pipeline,  track and plan
Una vez fijado el objetivo y viendo que había mucho que estudiar comenzó mi búsqueda de material.


Consultando al oráculo

Dado que en el momento de embarcarme en esta empresa no tenía educación más o menos formal de temas de Bluemix, más allá de desplegar aplicaciones y habilitar algunos servicios, decidí buscar algún curso en línea que sirviera de inducción a los variados temas y me diera mejores armas para afrontar el examen. 

Mi punto de partida fue el curso de udemy IBM Bluemix Application Development & Certification, el cual abarca casi la totalidad de los temas además de incluir demostraciones, trivias y examenes muestra. 

Me tomó alrededor de dos meses completar los temas dedicándole de 2 a 3 horas regularmente, e incluso al finalizar el curso tuve que regresar a repasar los temas iniciales. Varios de las demostraciones me sirvieron de práctica al recrearlas paso a paso y los examenes muestra finales me sirvieron mucho de calentamiento.

Una vez que completé el curso leei la guía de estudio publicada por IBM, la cual es un muy buen resumen de todos los temas. Además al final de la misma contiene unos códigos de descuento para la evaluación preeliminar y el exámen.

Dentro de los recursos de estudio ofrecidos por IBM también se cuenta con un documento con preguntas muestra disponible de manera gratuita. 

Un último recurso que ocupé fue el examen muestra en linea, disponible en el portal de Pearson Vue, con el titulo A5050-285 Assessment: IBM Cloud Platform Application Development v1. Esta evaluación consiste en 48 preguntas y al final da un reporte similar al del examen real.


Gorgonas, sirenas y otros mounstuos

Además del estudio de la teoría sin duda fue fundamental la práctica que tuve tanto en las peticiones para clientes como en pequeños ejercicios de auto estudio que podrían ser resumidas en lo siguiente.

Debido a proyectos
  • Despliegue de una aplicación node.js
    • Vinculada a servicios Watson
    • Vinculada a una base de datos Cloudant
    • Almacenada en el repositorio JazzHub
    • Desplegada mediante Delivery Pipeline
  • Despliegue de una aplicación web ruby on rails
    • Vinculada a una base de datos Postgresql
    • Vinculada a un contenedor de ObjectStorage
    • Configurada en alta disponibilidad con un balanceador de carga
    • Vinculada a una instancia de Redis
    • Desplegada con un buildpack específico
  • Despliegue de un worker ruby on rails
    • Vinculada a una base de datos Postgresl
    • Vinculada a una instancia de Redis
    • Desplegada con un buildpack específico
Ejercicio de autoestudio
  • Instalar Docker localmente y realizar los tutoriales básicos 
  • Construcción una imagen Docker y publicación en Bluemix
  • Prueba de concepto de publicación y consumo de mensajes en Message Hub (Kafka)
  • Recordar conceptos de Scrum y experimentar como encajan en Track and Plan
  • Leer teoría de las aplicaciones de 12 Factores

Conquistando Troya

El día pactado para el examen fue el 29 de diciembre del 2016 y la cita fue en el centro de certificación de casa (aprovechando que solo hay que subir un piso). 

El examen contiene 48 preguntas a realizar en 90 minutos con un mínimo de 32 aciertos para acreditarlo (66%). Había preguntas de casi todos los temas, aunque las más recurrentes tenían que ver con temas de despliegue en CloudFoundry, autoescalamiento, monitoreo y Cloudant. 

La mayoría de las preguntas eran distintas a las realizadas en los examenes de prueba pero en su mayoría temas que se habían estudiado. Muchas preguntas planteaban situaciones prácticas que requerían un poco de razonamiento detenido y algunas más solo teniendo experiencia práctica era posible responder.

Al final el examen me pareció un buen reto y un poco más duro de lo que esperaba pero el estudio y la práctica me permitieron acreditarlo exitosamente al final. Además, más allá del resultado, me quedo con una visión más amplia de esta propuesta de IBM y mucho conocimiento nuevo en temas como Docker, Kafka y Cloud en general.




Cerrando 2016 y esperando 2017

Llego fin de 2016, y se reinicia una vez más el ciclo y empiezan los propósitos de año nuevo.
En Innbit creemos firmemente que para lograr un cambio o una innovación; el factor principal son las personas.
Hemos recorrido en este 2016 un camino interesante, donde internamente estamos buscando modelos de negocio en los cuales no estamos buscando clientes, si no socios y queremos trabajar para hacer un mundo mejor pero al mismo tiempo los que colaboremos obtengamos un beneficio económico y que sirva para dar viabilidad a nuestro modelo de vida.
Innbit es una empresa y con una misión enfocada a que se logre innovación a través de tecnología pero tratando de no recurrir a los modelos tradicionales de negocio y gestión.
En 2017, nuestro foco será seguir fortaleciendo nuestras habilidades técnicas para ofrecer una solución tecnológica de valor pero impulsando ante todo las personas.
El valor de Innbit t es su equipo de trabajo; con una ética de trabajo para hacer el trabajo bien.

Queremos ser nosotros mismos ejemplo de una empresa que de manera sana desafié los paradigmas tradicionales y cultura de gestión de negocio ; y ayudar a otros grupos de trabajo a recorrer este mismo desafío. Curiosamente, en este momento de Innbit estamos en la fase donde lo tradicional y nuevo están chocando pero confío que van a poder convivir y mostrar ambos enfoques su razón de ser.

El año 2017 parece ser un momento donde hay grupos de personas que quieren cada vez cerrar y seguir atados a conceptos tan arcaicos como nación, religión, fronteras y va a existir una presión fuerte que obligue a muchos a tomar una actitud de ver por el bien personal y no el común.
Navegar contra la corriente es difícil pero es el momento de luchar por que empecemos a lograr un cambio, donde la gente deje de pensar que llevar una empresa es gritar, amenazar, castigar, correr.
México necesita hoy mas que nunca que se despierte el espíritu que siempre ha tenido pero que ha sido contenido por crisis económicas y sociales y obligan a que la única opción es hacer lo que todos los demás.
Perdamos miedo a no hacer una idea; aprendamos a darle la seriedad para darle una vialidad económica y a colaborar como personas para ayudar a contribuir a la riqueza de nuestra nación.
Tenemos que luchar contra el día a día, gente violenta en el tráfico, maleantes sin control, un gobierno con políticas para seguir alineando a los ciudadanos para que no piensen ni tengan crecimiento económico y social, una parte del Mundo que quiere dividir en lugar de colaborar.

Tengo muchos sentimientos encontrados sobre lo que fue 2016 y lo que depara en 2017 y 2018. De repente temores relacionados con la inercia de los humanos y su "natural" manera de ir con la corriente y no querer cambiar; miedo de volverme a enfrentarme a la maldad humana que de repente es común día a día al momento de ir a trabajar o por vivir en una ciudad o que tanto caos de repente te trunque todo. O que la situación económica orille a los típicos recortes y ser juzgado por las frías finanzas.
Pero también alimento la esperanza de seguir adelante, por que también me he encontrado con ejemplos de personas o grupos que quieren hacer su trabajo bien.
Me queda decir Feliz Año 2017, como millones de humanos están haciendo en estas épocas; pero más allá es desear que continúen en esta Vida con la meta a lograr felicidad, a cumplir sueños, seguir aprendiendo de sus seres queridos y tener mucha paciencia de los humanos por que la verdad no sabemos lo que hacemos.

Le pido que no pierdan la fe ; aunque el bosque de repente se vea complicado, lo que he aprendido en mis 45 años de vida es que cuando actúas bien tarde o temprano tendrás una sorpresa que va a sumar a tu Felicidad




lunes, 31 de octubre de 2016

La importancia de seguir soñando

ALL THIS IS A DREAM. Still examine it by a few experiments. Nothing is too wonderful to be true, if it be consistent with the laws of nature - Michael Faraday

Vivimos en un mundo donde por un lado se nos exhorta a soñar desde pequeños, abordar pensamientos que lleguen a nuestra cabeza, tener una mente creativa, despierta, cuestionar todo a nuestro alrededor, apasionarnos, contemplar, pensar fuera de la caja, atrevernos a ir por más y no conformarnos hasta llegar a una conclusión. Por otro lado en un mundo muy práctico donde todo lo no funcional tiende a desecharse, todo se espera de forma inmediata, tenemos miedo al cambio, queremos soluciones confiables, con un resultado predecible, donde si tu pensamiento parece que no lleva a nada útil es mejor dejar de invertir tiempo en él, donde se espera una aceptación y en gran parte resignación a un estado actual. Soñar se liga a un tipo de gente, un tipo de profesión, generalmente involucrada al arte o ciencia, gente que se sacrifica por ese sueño, visto como una causa perdida, con un empleo mal pagado y pocas oportunidades, dejando a otros profesionistas tareas prácticas, repetitivas y funcionales.

Soñar se ve como un defecto y una virtud, se condena a la gente que pasa su tiempo soñando, por no aceptar su realidad presente y actuar conforme a lo más lógico o inmediato, pero al mismo tiempo se enaltece al que nunca se rindió hasta conseguir su sueño, podría decirse que todo el juicio recae en si conseguiste tu objetivo.

La ingeniería es un ejemplo perfecto donde podemos ver esta dualidad de pensamiento convivir todo el tiempo. Debido a su naturaleza tanto creativa, como práctica.
 
El objetivo de la ingeniería es dar soluciones, ya sea mediante un programa, un circuito, una máquina o un sistema, lo que se requiere es resolver un problema. El modelo económico en el que vivimos nos obliga a que dichas soluciones sean inmediatas, pero al mismo tiempo "perfectas", es decir seguras, robustas, probadas, funcionales, vendibles. Lo que lleva a que el ingeniero en el mayor de los casos tome un papel de implementador, ya que entre mayor creación de soluciones propias, existirá mayor tiempo de desarrollo y mayor riesgo de errores durante el despliegue de la solución. Siempre existe cierto código o circuito que se tiene que realizar a la medida para armar dichas soluciones, pero es lógico implementar soluciones ya hechas debido al nulo valor agregado que implica crearlas desde cero todo el tiempo.

Innovar, crear algo de valor e implementarlo, es difícil, es tardado, es fracasar todas las veces, hasta que lo logras, es un proceso de investigación y desarrollo bastante tardado que en el mejor de los casos llega a una solución imperfecta. Por lo que la inversión en estos proyectos es poco común y donde se ha vuelto un lujo el poder participar. Sin embargo es un proceso necesario, que si es llevado de buena forma puede ser redituable.

Es lógico que una empresa dedicada a la innovación requiere un flujo de productos rápido, vivimos en un mundo capitalista con inversión privada y debemos dar respuestas a dicha inversión. Por lo que existen ciertas herramientas que nos ayudan a crear productos nuevos de forma más ágil y confiable que esperar a que nos llegue inspiración. Como el caso de Design Thinking y la implementación de metodologías como lean startup para la creación de nuevos productos. Sin embardo, estas herramientas no nos ayudan a eliminar problemas referentes al estado de la solución, como su susceptibilidad a fallas o diseños poco perfeccionados, problemas que solo serán eliminados al ir puliendo el producto con el tiempo. Es decir, una empresa dedicada a crear, jamas tendrá un producto tan pulido como una empresa dedicada a la implementación y competir con estas empresas generará que tengas una solución más cara, más tardada y más susceptible a fallas.

Debido a estos desafíos es necesario que las empresas en estas ramas tengan distintas fuentes de ingresos. Cuando el cliente tiene un problema especifico que se desea solucionar, se debe evitar crear soluciones nuevas por lo mencionado previamente, es mejor impartir procesos que ayuden a crear innovación, examinar el problema y enfocar la solución en cambiar la estrategia, perspectiva y la forma en la que se atacaba el problema, buscar los problemas raíz, crear soluciones con sistemas ya desarrollados, enfocándonos en su lógica, intercomunicación y arquitectura. En el caso de crear soluciones propias es necesario tener un ciclo, donde existan productos maduros para su implementación y a la par se debe tener un equipo encargado en crear nuevos productos, los cuales pasaran por una serie de pruebas antes de volverse productos maduros y puedan ser implementados.

Los ciclos de creación de soluciones o productos nuevos puede seguir la metodología lean startup y herramientas como Business Model Canvas, lo que nos genera visibilidad en el estado del producto, necesidad que cubre, mercado que ataca, costo de producción  y flexibilidad para cambiar y crear una solución con la mayor posibilidad de éxito en el mercado a través de sus iteraciones.

Estas metodologías son utilizadas en empresas como Samsung para crear sus productos nuevos y aseguran una innovación y liberación de productos constante y hasta cierto punto de forma segura (como el caso del Galaxy Note 7). Sin embargo este proceso de innovación tiene una limitante en lo que puede lograr. Este proceso necesita saber cual es tu objetivo, que es lo que deseas solucionar y que herramientas y soluciones utilizaras para ello, es decir es el resultado de la implementación de sistemas y bloques de solución ya hechos, con un problema que sabes que puede ser resuelto.

Uno de los principales problemas que existen con la gente creativa es cuando les preguntan por la funcionalidad de su proyecto. ¿cómo se puede utilizar lo que estas realizando? ¿cuanto cuesta? ¿Que planeas lograr con eso? Una respuesta muy habitual es "no se" lo cual es considerado como algo malo, algo que genera demasiado riesgo invertir, que no ha sido investigado, ni validado. Lo cual es cierto, pero realmente no es una respuesta incorrecta. Muchas veces cuando no se tiene un problema tan especifico a solucionar o todavía no existen herramientas y productos que faciliten su creación quiere decir que es una linea de investigación bastante nueva, que todavía no esta lo suficientemente entendida para saber como aplicarla, con preguntas realmente valiosas que generan un verdadero avance en nuestra sociedad. Los experimentos de Faraday nunca tuvieron la intención de convertirse en la base para las telecomunicaciones modernas, simplemente vio un patrón entre la luz, electricidad y magnetismo. Einstein nunca pensó en vender sistemas de navegación a la gente, su objetivo era resolver huecos que tenia la ley de gravedad tradicional. Cuando un pensamiento llega a tu cabeza y tienes la capacidad de crear o de entender algo, la satisfacción de entenderlo es tu único móvil y eso puede ser difícil de entender si se piensa ganar dinero a través de la innovación, pero son las ideas que más innovación generan a largo plazo.

Implementar soluciones no es menos importante que crear. Para poder implementar se debe perfeccionar, se debe tener soluciones confiables. Podemos ver todo el conocimiento por descubrir como una cueva oscura, soñar y crear es ir iluminando la cueva, perfeccionar es mantener el fuego. Sin iluminar más partes de la cueva nos quedaremos con un espacio limitado y no existirá ningún progreso, pero si solo se dedica a iluminar, se perderá todo lo explorado previamente. De igual forma si solo nos dedicamos a soñar y crear estaremos limitados por la propia fiabilidad de nuestras herramientas, lo que conlleva irónicamente a un avance más lento.

Una empresa de innovación se encuentra en la mitad del espectro, debido a la competencia no puede centrarse en implementar una única solución, pero puede implementar soluciones rápidas, robustas, con productos y soluciones ya creadas que generen un flujo continuo de capital. No puede darse el lujo de frenarse en investigaciones que no lleguen a soluciones aplicables a corto plazo, debe crear  soluciones nuevas producto de desarrollo continuo. Pero en forma paralela a estos dos frentes, debe darse la oportunidad de soñar, de crear sin ninguna objetivo, ni justificación aparente más que por pasión. Lo que puede llevar a algo tangible y aplicable o solo al desarrollo creativo de la persona.

Soñar y crear no es especifico para científicos, artistas, ni ingenieros, el proceso creativo es natural en el ser humano y debe ser explotado por todos, existen pocas sensaciones comparables a lograr comprender algo, lo cual he sentido desde crear la arquitectura de un proyecto en mi cabeza, armar un circuito y verlo funcionando por primera vez, entender un concepto físico, poder aplicarlo aunque solo sea teóricamente o escuchar una pieza de música, contemplar una pintura u observar una obra de teatro y entender y sentir su mensaje. Cualquier persona tiene que permitirse soñar, preguntarse cosas y situaciones sin una respuesta inmediata o aparente, dejarse maravillar, llegar a su barrera de conocimiento y percepción y decir "no se" "no lo entiendo" y sentirse bien en no saberlo, no sentirse insignificantes, si no maravillarse con todo lo que puede ser logrado, todo lo que su mente puede llegar a crear, a comprender y contemplar, simplemente al dejar su mente llevarse, sin ninguna atadura, ni objetivo alguno. Al igual que soñar no depende de ciertas profesiones, todos realizamos arte, ciencia o ingeniería en nuestra vida cotidiana y no debemos sentirnos abrumados o incapaces de hacerlo, para mi la ciencia es un método para buscar la verdad, el arte una forma de expresar y darle un sentido particular a algún objeto, proceso o concepto, la ingeniería una forma de resolver problemas, eso no nos hace artistas, científicos o ingenieros, pero nos permite a todos soñar, comprender y crear.

Soñar te inspira a entrar a lo desconocido, a crear, a descubrir, a un proceso que conlleva mucho tiempo, experimentación, fracasos, soluciones imperfectas, caminos sin salida, soluciones inútiles o teóricas. Pero también nos lleva a maravillarnos, a ponernos la piel china al ver posibilidades hasta ese momento ocultas, armar un rompecabezas mental que de pronto tiene lógica. Es dejarte llevar por tu musa y observar lo que tiene que decirte, a veces con un objetivo claro, a veces simplemente para asombrarnos. Soñar es trascender de lo funcional e inmediato, es ser un espectador que poco a poco ve un panorama completo. Es investigar, entender, expresar, contemplar y maravillarse. Es superarnos, nos lleva a materializar pensamientos, construir paso a paso todo lo que será, entender concepto por concepto todo lo que es. Soñar nos impulsa, nos da un motivo como seres humanos, un legado, nos hace conectarnos con algo mas grande, es la ultima forma de unir tu individualidad, tu pensamiento único, con lo universal, la verdad, con el cosmos.


La mejor empresa: Todos para uno y uno para todos.

Sin duda se trata de una frase muy famosa, la cual creo que todos los que tengamos arriba de 25-27 años la podremos reconocer.

¿Pero esto a qué viene?

Me gustaría aterrizarlo en el ámbito empresarial, ¿sector? el que se nos venga a la mente, para este temática no existe alguno en particular. Día con día las empresas se trazan nuevas metas, nuevos proyectos, mejores prácticas y protocolos más eficientes y gracias a la tecnología, todo lo anterior lo podemos hacer mucho más eficiente; pero realmente tu empresa posee lo necesario, se allega o hace lo necesario para poder lograr un cambio significativo y comenzar a fungir como un líder dentro de su sector?... ¿Qué significa C A M B I A R para tu empresa?

Hagamos una reflexión brevemente, muchas empresas se olvidan del factor humano y una empresa está constituida por un grupo de personas que deben de tener "el chip" correcto y bien fijado para trabajar y sumar esfuerzos en función de lograr un objetivo en común; para esto, es necesario establecer una Analítica Organizacional que determine correctamente las funciones que deben desempeñarse, los perfiles adecuados, gente que esté realmente motivada y comprometida con el trabajo.

Siempre he creído y ahora estoy plenamente seguro, que una persona puede dar su máximo cuando realmente su intelecto se ve desafiado, siempre lo he dicho, es mejor buscar "la manera de cómo sí hacer las cosas" en lugar de cómo no hacerlas, ese rubro siempre estará saturado, créeme... Esta es la única forma de evitar el conformismo y de verdad es triste no saber y nunca descubrir cuáles son las capacidades máximas que tiene un ser humano.

Cuando un grupo de personas es:

* Objetivo
* Honesto
* Ambicioso con su desempeño
* Comprometido
* Creativo
* Organizado

Su desempeño comienza a solidificarse y robustecerse y ¿Adivinen qué logramos? Si tu respuesta es impulsar a las empresas, pues estás en lo correcto, entonces aquí es donde viene la parte interesante, comenzarán a surgir de este modo tres tipos de empresas, 1) las empresas líderes, 2) empresas que copian lo que hacen las empresas líderes y por último, 3) las empresas que no hacen nada, creen que hacen mucho y ¿Qué tipo de empresa quieres que sea la tuya?

A modo de resumen, la empresa la conforman las personas y las personas unidas y bien encaminadas, son las que impulsan a las empresas. El apoyo, la sinergia de equipo, el desafío al intelecto de los empleados es necesario para lograr cambios para bien, cambios sustantivos, cambios retadores en este mundo tan vertiginoso, cambiante y exigente; entonces volvamos un poco al inicio y seamos creadores de nuestro propio futuro:

¿Qué significa C A M B I A R para tu empresa?


lunes, 24 de octubre de 2016

Manufactura como servicio (MaaS) e Industria 4.0

Manufactura como Servicio (MaaS) va abrir la posibilidad de producir de manera específica y de acuerdo a un diseño que quiera un cliente.
Por ejemplo, yo quiero un juguete de Star Wars y utilizando una aplicación móvil configuro su apariencia, sus colores, su arma.
 La empresa que me vende, contrata un servicio de Manufactura y le envía el diseño a la fábrica remota para que sea construida la figura.
Este modelo va a permitir que el foco de la manufactura sea el diseño más que mantener lineas de ensamblado y va a permitir que una idea sea "industrializada" en muy poco tiempo y sin tener que invertir capital para establecer una fábrica. Combinado con servicios de logística, en menos de una semana el cliente puede tener su figura en casa.
Los habilitadores son impresión 3D, software CAD-CAM como Solid Works, nube e IoT.
Esto se conoce como Industry 4.0, donde la robótica que se concebía para la linea de ensamblado, ya tiene inteligencia y colaboran entre ellos



¿Y por qué no ? Convertir a México el líder en ofrecer Manufacturing as a Service; y nuestras zonas industriales empujarlas hacia esta visión.


Descubriendo lo elemental de la conversación en Watson

Recientemente, para uno de los clientes, se ha estado trabajando con "la mezcla azul" de IBM y su oferta de servicios de nivel plataforma (PaaS), es decir servicios administrados con el propósito de montar aplicaciones. Por mencionar algunos de estos servicios se tienen los servicios de despliegue de aplicaciones para diferentes lenguajes (node.js, java, ruby on rails,...), bases de datos relacionales y no-sql, almacenamiento de objetos, balanceo de carga, servicios de integración y despliegue contínuo, repositorios de código, entre otros.

Dentro de la oferta de servicios ofrecidos destacan aquellos agrupados bajo el nombre de Watson los cuales están enfocados al "cómputo cognitivo", o dicho en otras palabras son una serie de servicios que permite generar aplicaciones donde la experiencia de usuario es cercana a la interacción que se podría tener con otra persona como si de una conversación se tratara.

Precisamente el servicio conversation es el punto medular para el desarrollo de soluciónes que permitan a un usuario la interacción de forma cuasi-natural con una computadora, también conocidas como bots.

En principio, el servicio de conversación parecía un poco intimidatorio, pues la documentación presenta un mar de conceptos que requieren un poco de estudio y experimentación. De este modo se ha intentado sintetizar un poco la información y presentarla de manera más pragmática a los lectores de la lengua de Cervantes.

Dialog vs Conversation

Anteriormente existía como tal el servicio de dialogo dentro de la oferta de Bluemix. Este servicio tenía el mismo objetivo que la conversación, aunque se definía mediante un archivo XML que debía ser construido desde un editor de texto y se conformaba de una gran variedad de elementos, algunos no tan bien documentados. 

Actualmente el servicio de diálogo ha sido retirado de Bluemix para dar paso a la conversación la cual incorporó una serie de mejoras respecto a su predecesor de las cuales podemos destacar: incorporación de una interfaz gráfica para la construcción del servicio; incorporación de intenciones y entidades que permiten mejorar el flujo de la conversación; simplificación del API para consumo desde aplicaciones; espacios de trabajo para agrupar elementos.

Espacios de trabajo

Las conversaciones están organizadas en espacios de trabajo (workspaces) los cuales son definidos por un nombre y un idioma.

Al generar un espacio de trabajo se genera un identificador único, el cual es utilizado para interactuar con la conversación que contiene a través de llamadas al API y así poder integrar aplicaciones.

Una vez creado un espacio de trabajo se requiere definir los elementos base de la conversación: intenciones, entidades y el diálogo.



Otra bondad del servicio es que cada espacio de trabajo puede ser exportado en un archivo en formato JSON totalmente portable ya sea con fines de respaldo o para clonar el espacio de trabajo original.

Intenciones

Dentro del servicio son palabras clave precedidas por el símbolo # y reconocidas por un nombre. Las intenciones se alimentan mediante ejemplos y mediante algoritmos estadísticos permiten determinar que tan aproximado es un texto introducido por un usuario a uno de los ejemplos y categorizar dicha entrada en una intención. 

Intención que permite identificar respuestas negativas

Entidades

Las entidades son utilizadas para extraer información relevante a partir del texto de entrada. Las entidades pueden ser utilizadas para refinar el comportamiento de la conversación y establecer respuestas más específicas.

Las entidades son precedidas por el símbolo @ y se definen por un valor y una lista opcional de sinónimos.

Entidad nombres. Los valores se utilizan para determinar la entidad.

Diálogo

El diálogo se asemeja a una máquina de estados, llamados nodos dentro del servicio, en el cual si se satisface una condición, se lleva a cabo una transición a otro estado. El diálogo permite generar una respuesta de acuerdo a una entrada de texto, dependiendo del nodo en el cual se encuentre la conversación. 

Diálogo conformado por nodos. Cada nodo tiene una condición y una salida
Dentro del diálogo, las entidades y las intenciones pueden ser utilizadas como condiciones para que el diálogo identifique la respuesta más adecuada.

Textos de entrada

El texto de entrada por un lado permite definir la información de entrada que será procesada por la conversación y por otro es la acción que dispara la evaluación de condiciones y la transición entre los nodos del diálogo. Esto es, que la conversación se mantendrá en un nodo en espera a que se proporcione un nuevo texto de entrada.

Gráficamente se puede observar el ícono del "globo" de conversación con los tres puntos entre los nodos lo cual representa que en ese punto se espera un texto de entrada.


Condiciones

En cada nodo se puede especificar una o más condiciones, de modo que si estas se cumplen entonces la conversación es ubicada en dicho nodo y el servicio regresa la respuesta establecida en el mismo.

Las condiciones pueden ser intenciones, entidades o valores específicos y puede haber más de una condición en el mismo nodo evaluándolas con los operadores AND y OR. Cabe mencionar que las condiciones se van cumpliendo de acuerdo a las intenciones y entidades identificadas en el texto de entrada de cada nodo.

En el nodo padre como condición se observa la conjunción (AND) de una intención y la negación de una entidad. En el nodo hijo se observa la disyunción (operador OR) de dos intenciones.
Las condiciones definen en gran medida el flujo de la conversación, pues cada vez que se introduce un texto se evaluan las condiciones del nodo hijo ubicado a la derecha del nodo actual. Si la condición no se cumple se continua con el nodo hermano ubicado justo abajo y así sucecivamente hasta ubicarse en algún nodo que cumpla las condiciones en espera de repetir el proceso.

Las condiciones también pueden ser palabras reservadas del mismo servicio: conversation_start se utiliza para indicar el nodo inicial; Anything else se utiliza como valor por defecto para cuando las condiciones de ningún nodo son satisfechas por el texto de entrada.

Después que la conversación inicia se espera un texto de entrada. Después de ser evaluado se busca en la primera opción una entidad @nombre, en la segunda una intención #greeting y que no aparezca ningún @nombre. En caso que ninguna condición se cumpla se continua la conversación en el nodo Anything else.

Continuar desde...

La opción Continue from... permite llevar la conversación de un nodo a otro totalmente distinto a manera de salto, similar a cuando se cambia de una página  de la mitad del libro al final para ver el glosario durante una lectura.



Esta opción es muy útil para reutilizar ramas de la conversación o recuperar la misma de un texto de entrada inesperado.

La claúsula Continue from... permite dirigir el flujo de la conversación a una entrada de texto, la condición de un nodo o el texto de salida.

Contexto

El contexto es un elemento que contiene valores que son mantenidos durante toda la conversación. Es posible agregar valores adiciones al contexto basándose en el estado de la conversación, entidades reconocidas o intenciones detectadas. Para esto se debe cambiar el modo de la respuesta de simple a avanzado para poder editar el objeto JSON.

Una vez en el modo avanzado se define la llave context y dentro del mismo los valores personalizados que pueden ser recuperados desde la aplicación cliente.

Estableciendo una respuesta avanzada en formato JSON para el nodo.
Los valores personalizados son sumamente útiles para el cliente pues pueden servir para casos de uso como: disparar acciones automáticas; mostrar recomendaciones o valores sugeridos; dirigir el flujo de la conversación.

REST API e integración con otros servicios de Watson

Como todos los servicios de Watson, la conversación expone una interfaz de programación de aplicaciónes via REST/HTTP. En este caso solo se expone un método que permite enviar el texto de entrada, junto los valores del contexto de la conversación al servicio y esperar un texto de respuesta. 

Internamente el servicio mantiene el estado de la conversación a través de un ID único y un seguimiento de las peticiones asociadas a la conversación, por lo cual es requerido enviar ese ID de conversación en cada petición dentro del contexto.

Dado que los servicios de Watson han sido desarrollados con el enfoque de microservicios, no se contemplan puntos de integración directa entre ellos. Sin embargo, es posible constuir una aplicación que se conecte a los diferentes servicios mediante el API REST y funcione como invocador de los mismos y la conversación pueda definir el momento de dicha invocación de acuerdo al estado de la misma. 

Conclusiones

El servicio de conversación es una interesante propuesta de IBM aplicable a casos donde se pretenda mejorar la experiencia de usuario para consultar información específica. 

Algunos casos de uso de este servicio pueden ser: servicio de preguntas frecuentes; asistente para dirigir la consulta de información; orquestador e integrador de fuentes de información.

Una vez que se ejercita un poco es sencillo construir un servicio personalizado para cada caso de uso particular que puede ser integrado via REST API en aplicaciones web y móviles. 

Referencias


miércoles, 5 de octubre de 2016

Innibit - Servicios, Tecnología -

En una anterior entrada de nuestro blog, se platicó el enfoque de innovación de Innbit.

Para nosotros, la tecnología de información es fundamental para poder sustentar la ventaja competitiva de las soluciones de negocio, tus innovaciones.

Para este fin, nos hemos especializado en varios tópicos:

  • Innovación y técnicas como Lego Serious Play 
  • Mejores prácticas como TOGAF, Scrum, DevOps, Kanban
  • Cloud Computing y nubes públicas como AWS, IBM Bluemix, IBM Softlayer, Google Apps, Google Cloud, Microsoft Azure, OpenStack
  • Desarrollo de Aplicaciones móviles  sobre plataforma iOS, Android
  • Desarrollo de Aplicaciones Web - principalmente con Ruby on Rails, Node.js Java, .NET -
  • Middleware - soluciones de integración de Oracle, IBM y software abierto -
  • Ciencia de datos - Bases de datos relacionales, NoSQL, R, DataWarehouse, Data streaming -
  • Aprendizaje Máquina con IBM Watson
  • Redes sociales - integrar tus sistemas de información con redes sociales como Facebook, Twitter y Google
Con nuestros servicios, tenemos como objetivo ayudarte a que nuestro conocimiento esté a tu disposición. Los hemos agrupado de acuerdo a las fases en las que tu innovación se encuentra.

¿Quiero empezar a innovar pero no se el método? Nuestro método llamado SwitchIt está enfocado a que vivas la experiencia de innovación y dejar a tu equipo habilitado a que adquiera la disciplina.  

¿ Tengo ya un plan de negocio y definida mi innovación pero debo dar certidumbre a su implantación? Nuestro método RabbIt está enfocado a que las mejores prácticas como arquitectura empresarial, administración de proyectos y gestión de servicios se puedan utilizar para que tu solución de negocio se enriquezca y eliminar riesgos y habilitar a tus equipos de construcción a seguir una disciplina enfocada.

¿Tengo mi producto ya diseñado pero no tengo habilidades para construirlo? Nuestro método BrickIt conjunta técnicas de ingeniería de software y la combinación de tecnología de nube, móvil, web y ciencia de datos para soportar los requerimientos de tu innovación

¿Tengo mi producto ya construido pero no tengo suficiente infraestructura y un equipo de operación para escalarlo y entregarlo como servicio? Nuestro método DPloyIt te ofrece el diseño, configuración y despliegue de tu solución en nubes públicas y utilizando técnicas de DevOps para habilitar a tus desarrolladores para que automaticen muchos procedimientos operativos. Adicional te podemos proveer de grupos de especialistas para instalar, configurar y administrar la plataforma de software. Y también podemos establecer una mesa de servicios. 

¿Tengo mi producto ya construido pero no tengo una estrategia de mercadotecnia?Nuestro método Mkt360 te ayuda a establecer la mercadotecnia de tu innovación y utilizando redes sociales, apoyarte en la captación, relación y atención con tus clientes, y utilizando técnicas de ciencia de datos para realizar análisis de mercados y comportamiento de clientes.

En Innbit te podemos acompañar desde la concepción de la idea hasta operar tu solución y bajo un enfoque de hacerlo "Todo como Servicio" ( X as a Service)


La ecuación de la innovación

Innbit fue concebido cuando identificamos la necesidad en las organizaciones de tener compañías que se dedicaran a entender sus problemas y buscar soluciones que den impacto a negocio.

Principalmente en el ámbito de Tecnología de Información, existen historias en las cuales se ha adquirido e implantado software pero sin identificar los verdaderos impactos al negocio; y con capacitación a equipos de trabajo, promesas de solucionar problemas de la organización, pero que al final no se acaban concretando.

La innovación de Innbit es no enfocarnos a vender productos y buscar de manera desesperada clientes que nos lo compren.

Tomando las prácticas de innovación, nuestro enfoque es ir primero a tu compañía y lograr la empatía para entender tus problemas de negocio.

Una vez identificadas tus necesidades, empezamos a generar ideas para resolverlos y ayudarte a identificar la viabilidad de esas ideas para convertirlas en innovación.

El primer paso, es que la idea desde una perspectiva interna siempre es la mejor, es bonita, buena y barata. Sin embargo un principio fundamental de la innovación es colaborar con personas de diversas disciplinas y formaciones y que empiecen a quitarte la venda de tus ojos y de manera positiva te den críticas para que tu idea sea mejorada o se amplíe su alcance o mejor no continuarla.

A esto último muchas personas le temen, lo ven como una falla. Pero eso es muy importante que en los proyectos de innovación se identifiquen de manera temprana antes de empezar a desperdiciar recursos tan valiosos como el dinero, las personas y el tiempo.

En esta fase, lo que vamos a poder indicarte es que tu idea es viable de ser usada por clientes - pueden ser externos o internos a tu organización - y la manera de como entender y segmentar - . Una vez que la idea tiene un grupo de clientes identificados, te ayudamos a identificar el valor de la idea, que es lo que la hace única a tu cliente, que necesidad le satisface. Si no tiene un valor adecuado, es necesario plantear la idea o enriquecerla para que tenga un impacto positivo. Idea, mas clientes mas valor ya permite identificar una innovación; pero también es necesario aterrizar la manera como los clientes van a consumir el producto o servicio que resulte.

A veces mucha gente tiene bien definida la idea, el mercado, lo que están cubriendo de necesidad, pero se topan con regulaciones, normatividad o reglamentos. Esto pasa tanto en sector privado o público. A veces puede tardar un año para que te puedan comprar. Si no tienes ese tiempo, de nuevo es importante reformular la idea Y lo mas importante, si ya tienes idea, clientes, valor, modelo de adquisición; es vital preguntar cuál es el modelo de negocio y como se va hacer dinero de la idea.




En un mundo ideal, y que siempre es la tentación de los que quieren innovar, se desprecia mucho el tema del dinero como algo no vital. Pero es lo que va alimentar todo y permitir que el equipo que elabora el producto/servicio tenga un sueldo diario y esté motivado a seguir innovando.

Idea + Clientes + Valor + Adquisición + Modelo de ingresos; ya es casi pero ahora es importante identificar todos los supuestos de la idea son reales y definir el valor de negocio mínimo del producto/servicio. Se debe probar en la realidad, con los clientes, que la idea es utilizable. No se trata de hacer un prototipo, se trata de explicar la idea y ver que si la quiera el cliente. O en términos llanos: "demostrar que la comida del perro se la va comer el canino".

Clientes + Valor + Adquisición + Modelo de ingresos + Diseño del producto ya está a punto de llamarse en una innovación y que se está alcanzando a plasmar para pedir el apoyo financiero a los inversionistas. Sin embargo es necesario demostrar que la idea va a escalar, que no solo es para un tiempo pequeño.sino que se van a poder conquistar otros mercados y aquí se desarrolla el plan de negocio.





Con esto, te ayudamos a que vayas con los altos mandos de tu organización o puedas ir con inversionistas y de una manera razonada les puedas demostrar que tu idea es una innovación que va redituar en un ingreso económico y va querer ser consumida.

En el tema de innovación no estás sujeto a la actitud o berrinches de una sola persona o pequeño grupo. Quien evalúa tu idea - producto o servicio - es el mercado, los consumidores finales. Si lo haces bien, probaras las mieles de poder conquistar un mercado.

Ahora, imagina que tus proyectos internos los manejas como una innovación y te piensas como una compañía dentro de tu organización y donde debes ser competitivo. Eso elimina zonas de confort pero impulsa que muchos integrantes de la organización se transformen y se vuelvan innovadores.
Así que la meta no es implantar un sistema de inteligencia de negocio, o una solución de integración tecnológica; sino una solución de negocio y que se pueda nombrar una innovación para tu organización y para tus clientes.


Lo que expliqué es el método para planear la innovación. El siguiente paso es la construcción. En Innbit, también estamos habilitados para usar las mejores prácticas pero desde un enfoque ágil y esbelto. De hecho es una nueva entrada de este blog.

Por lo mismo, nuestro foco no es elaborar aburridos documentos de consultoría o recomendaciones que solo funcionan en láminas de power point.



Queremos estar contigo para ver tu éxito con tus ideas, por que ese éxito es también nuestro.
Esto demanda tener mucho coraje, pero la verdad, para que tu trabajo valga la pena y sea una parte de tu vida, es importante tomar riesgos y hacer bien las cosas y con pasión.

miércoles, 20 de julio de 2016

DevOps - primeras reflexiones -

Es común que los proveedores de Tecnología de Información usen muchas "buzzword" para vender productos.
Una de ellas es DevOps y como suele suceder, muchas organizaciones lo identifican como algo nuevo en tecnología o consultoría.
Parte de utilizar conceptos aplicados en ingeniería industrial. Una de ellas es la teoría de las restricciones (explicado en el libro de la Meta de Eliyahu M. Goldratt ), Kanban y en temas de TI el concepto de Continuous Delivery
Lo importante es que las organizaciones identifiquen la manera como la tecnología de información está soportando a los procesos críticos de la organización.
Les comparto este video, de la conferencia de O´Reilly - Velocity 2009 - "10+ Deploys Per Day: Dev and Ops Cooperation at Flickr", en el cual se empezó a tratar el tema


En una siguiente entrada, me dedicaré a hablar sobre el libro "The Project Phoenix" y su relación con DevOps

martes, 19 de julio de 2016

Historias macabras hacia la certificación de AWS


Recientemente en el equipo nos hemos dado a la tarea de remotar el estudio de la plataforma de Amazon Web Services (AWS) para la construcción de soluciones tecnológicas. Para esto nuestro director Gustavo nos encomendó la empresa de llevar a cabo una serie de sesiones maratónicas de estudio incluyendo a los elegidos próximos a certificarse.

Aprovechando esta euforia renovada por la certificación como arquitecto de soluciones, decidí escribir un poco de mi experiencia propia de hace algunos meses que culminó con la aprobación del exámen de certificación.





Haciendo un poco de memoria, el tema de la certificación en AWS ya rondaba mi cabeza desde algunos ayeres y, como si fuera una de las tareas de Heracles, se propuso como objetivo de Innbit lograr una asociación con Amazon que implica, entre otros requisitos, tener un número de elementos certificados en el equipo.

La aventura inició tempestuosamente cuando por temas de los proyectos se requirió empezar a habilitar ambientes de despliegue y ejecución para la puesta en producción de aplicaciones web basadas en Ruby on Rails. Esa fue mi primera experiencia con EC2, RDS, Elastic Load Balancer y servicios como Route53 para la contratación y configuración de nombres de dominio.

Ya teniendo una primera experiencia con AWS y el objetivo de la certificación se estableció el objetivo de realizar el examen antes de mi participación en el panamericano de jiujitsu de este año (marzo 2016). Por razones de los proyectos que requerían gran cantidad de tiempo y dado que los temas del examen parecían volverse cada vez más amplios, el día D del examen se programó hasta mayo.

El punto de partida de la misión suicida fue revisar la descripción del examen en el portal de AWS, donde se contempla información como el perfil del candidato y enlaces a la guía del examen, un documento con preguntas de muestra y otros recursos. Dentro de la guía del examen se tiene información sobre los temas que son evaluados así como su ponderación, lo que me dió mucha guía sobre el grado de dominio que tenía sobre los temas en relación a la espectativa y resolver ese primer grupo de preguntas muestra me dio un poco de luz (u oscuridad en ese momento) del punto en le que estaba.

Ya con los temas en el radar y el conocimiento acotado, me di a la tarea de iniciar los cursos de CloudAcademy y Udemy que se componen de videos explicativos por tema, laboratorios y cuestionarios. Personalmente completé en su mayoría la ruta de certificación de CloudAcademy. Por otro lado me apoyé de Udemy para las evaluaciones y cuestionarios. Otro recurso interesante es el portal https://qwiklabs.com/, que tiene laboratorios interesantes utilizando recursos de AWS reales, donde también completé algunos.

De CloudAcademy también fue instalada la aplicación móvil la cual permite realizar pequeños cuestionarios de 5 o 10 preguntas, esto a modo de guía para profundizar en los temas que me se requerían refo falta. Esta práctica me permitió estudiar sin saturarme de información, dado que hacía esos pequeños cuestionarios en cualquier oportunidad que tenía y, posteriormente en momentos de más calma, poder referirme a la documentación de AWS o experimentar un poco en la consola.

Además de la información teórica propia de AWS de los cursos y manuales, también me fue muy útil retomar conceptos básicos de computación (redes, almacenamiento, arquitectura,...) y hacer varios experimentos prácticos o en su defecto, ver videos de como implementar ciertas soluciones que trato de resumir a continuación. 

IAM

  • Laboratorio de CloudAcademy para generar usuarios, grupos y permisos
  • Entender los diferentes tipos de autenticación de usuarios: contraseña, token de acceso, MFA,
  • Laboratorio de CloudAcademy para generar un rol, asociarlo a una instancia de EC2 y comprobar que pueda acceder a un bucket de S3.

EC2

  • Comprender los sabores de instancias de EC2, diferencias y casos de uso (t, m, c, g, d)
  • Generar una instancia Linux y una Windows y acceder a ellas. Esto se aborda en los laboratorios de CloudAcademy y Udemy.
  • Generar un AMI a partir de una instancia.
  • Implementar una arquitectura pública en alta disponibilidad con componentes como: Balanceador de carga, grupo de autoescalamiento, configuración de lanzamiento, etc. 
  • Configurar SSL en un balanceador de carga público.
  • Implementar una arquitectura privada en alta disponibilidad con componentes como: Balanceador de carga, grupo de autoescalamiento,  configuración de lanzamiento, etc.
Distribución de contenido
  • Generar una lista de distribución de contenido a partir de un bucket de S3
  • Agregar otros origenes adicionales a la lista de distribución.
  • Configurar un nombre de dominio personalizado, previamente registrado en Route53 
  • Configurar SSL
  • Configurar origin access identity para restringir que el acceso a los objetos de S3 para que solamente se permita desde la lista de distribución de cloudfront.

Almacenamiento

  • Generar un bucket de S3 y habilitar un sitio web estático
  • Comprender las distintas clases de almacenamiento de S3, así como sus niveles de durabilidad y disponibilidad
  • Laboratorios de Udemy del ciclo de vida y versionamiento de objetos en S3
  • Revisar los conceptos sobre arreglos de discos: RAID 0, 1, 10
  • Revisar el video RAID 0 on Amazon linux EBS/EC2 para entender como implementar un arreglo de discos mediante volúmenes EBS.
  • Laboratorios de CloudAcademy y/o Udemy para generar un volúmen EBS y montarlo en una instancia de EC2
  • Laboratorios de CloudAcademy y/o Udemy para generar un snapshot a partir de un volumen EBS y un volumen a partir de un snapshot.
  • Revisar el video Veeam - Archive Backups using AWS Storage Gateway and S3 que hace una demostración real del uso de Gateway Storage
  • Leer sobre los modos en que se pueden configurar los volúmenes de Gateway Storage (Gateway-cached, Gateway-stored, virtual tape library)
  • Generar un vault de Glacier desde la consola y generar una regla del ciclo de vida en S3 para enviar objetos.
  • Leer sobre las diferencias entre import/export disk y snowball.

RDS

  • Generar un database group
  • Generar una instancia de RDS sin replicación multizona
  • Configurar la replicación multizona de la instancia de RDS
  • Generar una réplica de solo lectura
VPC


  • Estudiar conceptos básicos de direcciones IP, máscaras de subred, clases de direcciones IP.
  • Generar una VPC con al menos dos subredes públicas y dos privadas. Configurar el internet gateway, NACL's, NAT (como servicio y apartir de una instancia de EC2). Para este ejercicio se tienen dos laboratorios en CloudAcademy que contemplan todos los puntos.

Route53

  • Estudiar sobre conceptos básicos de DNS y los diferentes tipos de registro (CNAME, A, MX, SOA, NS, etc)
  • Registrar un nombre de dominio. Puede comprarse desde la consola
  • Generar una hosted zone e identificar el default record set.
  • Generar diferentes alias y asociarlos a balanceadores de carga y listas de distribución de CloudFront
  • Leer sobre que es la zona APEX y sus restricciones. 

 CloudWatch

  • Explorar las gráficas generadas para EC2 y RDS
  • Explorar las alertas enviadas a la consola
  • Realizar el laboratorio de qwiklabs.com para generar métricas personalizadas de memoria y uso de disco de una instancia de EC2 y mostrarlas en la consola de CloudWatch
Otros

  • Leer sobre MemCache y Redis, los cuales se ofrecen como servicios en Elastic Cache, así como sus casos de uso.
  • Retomar los conceptos de colas de mensajes y las diferencias y casos de uso de los modelos productor-consumidor y publicador-subscriptor.
  • Entender como se implementan los modelos de mensajería y notificaciones a través de los servicios SQS y SNS.
  • Retomar conceptos de Hadoop y entender como se implementan a través del servicio EMR.
  • Generar una tabla en DynamoDB y experimentar con un cliente Rails para escribir y recuperar datos en JSON.
Al estudiar estos temas uno puede notar que en realidad es bastante información. Cuando estudié la carrera tuve cursos específicos para algunos de los temas y la realidad no terminé de sentirme totalmente preparado al llegar la fecha del examen. Aún así, decidí relizarlo en la fecha pactada y al final concluí lo siguiente.

  • Dedicar un tiempo diario en solitario (incluso fines de semana) al estudio y la práctica. No tiene que ser intenso todo el tiempo pero si constante. Personalmente me funciona estudiar algo muy concreto a ratos en lugar de saturarme de información en una sesión demasiado larga.
  • Establecer una fecha de examen, diría que alrededor de mes y medio de estudio constante puede ser suficiente.
  • El examen no tiene un mínimo de aciertos definido para acreditar, uno debe mentalizarse para obtener la calificación más alta posible.
  • No postergar tanto el examen a pesar de la sensación de no estar totalmente preparado. En el peor de los casos solo no se acredita y se vuelve a programar, lo cual también es experiencia valiosa.
  • En el examen tratar de no dedicar demasiado tiempo a una pregunta, si se tiene que leer más de dos veces o se lleva más de 45 segundos sin contestar mejor dejarla para después. El examen se compone de 60 preguntas en un tiempo de 80 minutos, lo que da un promedio de 1:15 por pregunta.
  • Disfrutar la experiencia. Uno de mis profesores de jiujitsu siempre que ha enseñado que la probabilidad de éxito se incrementa cuando se disfruta cada emoción que se vive al entrar a una competencia. Este exámen para mi fue un torneo más para ganarse el Valhalla y la entrada al Mictlan.