[SCRUM] Ser Scrum Master Certified y ¡no morir en el intento! (Parte 2)

En la parte 1 de este artículo, mencioné donde encontrar los recursos/material de preparación para los exámenes Scrum Fundamentals Certified (SFC)  y Scrum Master Certified (SMC) disponibles por la empresa SCRUMstudy, bajo la cual yo me certifiqué. Durante mi revisión de artículos para la elaboración del presente, me encontré con algunas preguntas para certificación como Scrum Master que me parecieron “extrañas” pues utilizaban algunos términos diferentes a los que había aprendido con el SBOK, fue ahí que recordé que existen 3 grandes empresas certificadoras de Scrum:

  • SCRUMstudy
  • Scrum.org
  • Scrum Alliance

En el artículo de Scrum Alliance vs SCRUMstudy se muestra un cuadro comparativo de ambas empresas. Uno de los puntos que concuerdo con dicho artículo totalmente es que un verdadero Scrum Master (sin importar por cuál empresa obtuvo su certificación) podrá responder a qué se refiere el Manifiesto Ágil: “Hemos llegado a valorar …:

  • A los individuos y su interacción, por encima de los procesos y las herramientas.
  • El software que funciona, por encima de la documentación exhaustiva.
  • La colaboración con el cliente, por encima de la negociación contractual.
  • La respuesta al cambio, por encima del seguimiento de un plan.”

Dejando ese punto en claro, seguiré enfocada en el Scrum Master Certified (SMC) de SCRUMstudy.

Leer más

[SCRUM] Ser Scrum Master Certified y ¡no morir en el intento! (Parte 1)

Entre los días 1 y 2 de julio de 2017 llevé un Curso Oficial de Scrum en el Instituto Gesap en Lima y cuya experiencia relaté en un post anterior.

Para recordar qué es Scrum: Es uno de los métodos ágiles más populares. Es un framework adaptable, iterativo, rápido, flexible y eficaz, diseñado para ofrecer un valor considerable en forma rápida a lo largo del proyecto [1]. Así que vale la pena aplicarlo en la gestión de nuestros proyectos.

Figura 1 – Flujo Scrum para un sprint (SBOK)

El objetivo de este post es sugerirte material para que inicies su aprendizaje de Scrum para luego estar preparado para rendir el examen de Scrum Master Certified. Quizás te estés preguntando ¿debería certificarme? Personalmente te recomendaría que

¿Por qué?

Actualmente, en el mercado laboral, tanto en Perú como el mundo, existe una demanda de profesionales certificados en Scrum, pues ellos ayudarán a las organizaciones a obtener un mejor nivel en la gestión de proyecto y por tanto incrementar el indicador ROI (Retorno de la Inversión) [2].

Les voy a contar un poco de mi experiencia durante mi búsqueda de trabajo en Lima – Perú. Luego de participar del taller de Scrum, inicié mi búsqueda de puestos de trabajos que envolviera Scrum. Encontré que las principales empresas del Perú estaban/están optando por un enfoque ágil y por tanto requerían de profesionales con la misma visión y con conocimientos de Scrum. En algunos casos como requisito “deseable” y en otros como “obligatorio”. Admito que perdí posibles oportunidades por no certificarme. ¡Ahora ya no! … ¡y tú tampoco!

Leer más

[Front End] Creación de ícono personalizado – ¡Estilo Fontawesome!

¿Qué se te viene a la mente al ver estos íconos?

Seguramente, ya los has visto en alguna página web y reconoces su significado sin importar si tu idioma es el español, inglés o chino, debido a que los íconos se han convertido en un lenguaje universal. Con un simple ícono, representación visual simbólica de un objeto u concepto, nos ahorramos explicaciones largas e innecesarias. Además, si te encuentras en un sitio web, los íconos te facilitan la navegación [5][7].

Ejemplo: El famoso ícono de la “lupa” nos indica que iniciaremos una búsqueda.

En LiOnline buscamos diseñar sitios web enfocados en obtener una positiva experiencia del usuario y los íconos nos ayudan en ello pues hacen que las interfaces sean más intuitivas y amigables es decir de fácil entendimiento por parte de los usuarios.

El sitio web de nuestro cliente BYC Grupo Inmobiliario, empresa de venta/alquiler de propiedades, cuenta con íconos que representan las características que posee una propiedad:

  • Número de habitaciones – ícono de una cama
  • Número de baños – ícono de una ducha
  • Cantidad de fotos disponibles para esa propiedad – ícono de imagen
  • Metros cuadrados – ícono de un plano.

Imagen 1 – Sitio web de nuestro cliente ByC

Imagen 2 – Propiedad en Venta de ByC

Luego de haber entendido qué son los íconos y porqué son importantes, nos moveremos a ¿cómo los implementamos (creamos) en un sitio web. Antes del 2014, los íconos estaban en  *.jpg, *.png u otro archivo de imagen. Siguiendo el ejemplo de ByC, entonces podíamos tener un archivo “cama.png”, o “ducha.png”. ¿Qué problemas nos trae trabajar los íconos como archivo de imagen?

  • La solicitud de mútiples imágenes al servidor, hace que el sitio web se cargue lentamente.
  • Las imágenes pierden resolución/nitidez al aumentar su tamaño
  • Al tener un ícono en imagen, no es posible modificar, por ejemplo, el color. Había que crear la misma imagen pero con diferente versión de color.
  • No se pueden animarse las imágenes fácilmente.

Por tanto, definitivamente utilizar un archivo de imagen para un ícono no era una buena solución [1][4]

Veámoslo de forma gráfica: En la imagen 3, tenemos un ícono de “casa” (no es un archivo imagen) y un ícono de “regla” (archivo tasacion.png), con un zoom adecuado ambos se ven con buena resolución. ¡Ok!

 

Imagen 3 – Íconos para representar los servicios de  ByC

Sin embargo, hagamos un zoom ++++, ¿qué ha sucedido? en la imagen 4, vemos que la “casa” ha mantenido su resolución a pesar de haber aumentado de tamaño, algo que no sucede con la “regla” la cual vemos borrosa.

Imagen 4- Ícono en imagen vs Ícono en icon-font

Por suerte, hoy tenemos una solución para eso: “Icon Font”, el ícono de la “casa” es de ese tipo.

¿Qué es un Icon Font? ¿Cómo lo utilizo? ¿Puedo crear mi propio ícono?, ¡aquí responderemos esas preguntas!

Leer más

Mundo y mente sin fronteras: Pensamientos de una inmigrante

Joven (brasileño): Hola, disculpa soy nuevo en esta ciudad, ¿Podrías indicarme un buen lugar para comer?

Yo: Hola. Sí claro (le doy las indicaciones)

Joven: Qué lindo acento, ¿de donde eres?

Yo (sonrío): Soy de Lima, Perú

Joven (intenta hablar en español): Yo conozco Lima y Cuzco, todo muy bonito.

Yo (en español): Qué chévere, Cuzco es una de las ciudades más turísticas en Perú. (…) Disculpa, ¿entendiste mis indicaciones?.

Joven: Sí claro, hablas bien portugués. Muchas Gracias

Barão Geraldo – Campinas – São Paulo – Brasil

Quise empezar este artículo con esa pequeña conversación real que sucedió el último día de Julio 2018 en Campinas – Brasil, para demostrar lo enriquecedor que es compartir experiencias de nuestras culturas. ¡Qué orgullo decir que soy del Perú en tierras extranjeras!

Aprendí amar a un país que me acogió desde hace unos años: Brasil. Su idioma, su música, su arte, su naturaleza, sus tradiciones y especialmente su gente que siempre me trató con respeto, amabilidad, cariño y me dio la mano cuando lo necesitaba, hicieron que poco a poco Brasil se volviera un “hogar”. ¿Será que este trato al extranjero es el mismo en cualquier otro país? ¿ … en mi país, Perú?

No, decepcionada digo no.

Leer más

[Front End] Dale calidad a tu código JavaScript con ESLint

Si estás en el mundo del desarrollo de software, sabes que cada programador tiene su propio “estilo de programar”. Es por ello, que se recomienda que en un equipo de trabajo defina una guía de “buenas prácticas” de programación para poder tener un código estándar, es decir que cualquier miembro del equipo, o incluso un nuevo miembro, pueda entenderlo con facilidad y que de la sensación que fue escrito por un único programador (¡Ay qué ideal!)

Pongamos un ejemplo: “Creación de variables”

Un programador que crea sus variables con estilo “camelCase“, definirá una variable “idAluno”

Un programador que utiliza “guiones” ( – ) o “guión bajo” ( _ ), definirá “id_aluno”

Y no falta el programador que definirá “variable1” (¿es en serio?¿le pusiste “variable” como nombre?)

Otro ejemplo: Programando en JavaScript

Java, Visual Basic, C# entre otros lenguajes de tipo “compilado”: Necesitan pasar por el proceso de “compilación”, el cual permite encontrar errores antes de ser ejecutados. Los diferentes IDE’s (entornos de desarrollo) como Neatbeans para Java, detectan errores como “la falta del ‘punto y coma’ (‘ ; ‘) al final de cualquier sentencia” o “variable y/o import no utilizado”

¿Qué pasa con JavaScript? él es un lenguaje de tipo “interpretado” o sea no necesita pasar por el proceso de compilación, además que es más “permisivo” lo que hace que el programador esté propenso a errores y que solo los verá en la ejecución [7].

Aquí [8], un ejemplo sencillo de lo que nos permite JavaScript:

Para declarar variables, se usa la palabra clave var.  

// A single declaration.
var count;

Sin embargo, puedes declarar una variable sin utilizar la palabra clave var y asignarle un valor.  Se trata de una declaración implícita.  

// The variable noStringAtAll is declared implicitly.
noStringAtAll = "";

En ambos casos, todo funcionará Ok!.

Lamentablemente, no siempre es así

Por ejemplo, no nos daremos cuenta de variables que no han sido declaradas o estén mal escritas hasta que lo ejecutemos y veamos ese error en la consola del browser:

Resultado de imagen para error in console chrome

¿Pero sabías que se puede optimizar la calidad de nuestro código? La respuesta es la definición de las “buenas prácticas” o reglas a seguir en nuestro proyecto a través de herramientas de Linting, como ESLint para proyectos JavaScript (React, Angular otros).

Así que es hora de parar de decir “¿Por Dios quién programo esto?”, admítelo lo has dicho haha.

Leer más

Piracicaba ¡Lugar onde o peixe para!

¿Qué se nos viene a la mente cuando pensamos en Brasil?. Seguramente, ya estás visualizando el “Cristo Corcovado” y las hermosas playas en Río de Janeiro, la cosmopolita y moderna São Paulo o las impresionantes cataratas de Foz de Iguazú. Sin duda son lugares “must-see” es decir que sí o sí debes visitar en Brasil.

Sin embargo, Brasil ofrece muchos otros hermosos lugares que vale la pena conocer. Hoy quiero contarles de 2 ciudades que pertenecen al interior de São Paulo: Cordeirópolis y Piracicaba, las cuales recorrí junto con mis queridos Jacky y Juan un día de junio. En esta época del año se realizan las “Festas Juninas” (Fiestas juninas) que es  una festividad con la cual se celebra a San Antonio, San Juan y San Pedro en Brasil.

Nuestro recorrido empezó en Cordeirópolis, municipio brasilero del estado de São Paulo fundado en 1884 (sin fecha exacta). Una versión dice que su nombre se originó por la antigua hacienda “Cordeiro” de propiedad de la familia con el mismo nombre. Sin embargo fue en 1943, que pasó a llamarse “Cordeirópolis” a pedido de la población a través de un plesbicito.

Cordeirópolis está formando básicamente por descendientes de inmigrantes italianos en su mayoría, portugueses, españoles, alemanes y africanos. Así que no es difícil encontrar restaurantes que ofrezcan comida de dichos lugares, como es el caso de una querida amiga brasilera, Dildre, que junto con su familia tienen su restaurante “Vasques” especializado en culinaria italiana en “Cordeiro” (nombre cariñoso para Cordeirópolis el día de hoy) y tuvimos la oportunidad de degustar sus platos en el horario del almuerzo. Comida deliciosa, lugar acogedor, servicio excelente y todo a un precio justo. Recomiendo “frango a parmegiana” (pollo a la parmesana)

Caminar por las calles de Cordeirópolis fue muy ameno, nos encontramos con un concurso de bandas escolares y nos tomamos fotos con un grupo de jóvenes que aceptaron gustosamente. También podemos encontrar diversos negocios (comida, venta de ropa, bancos, librerías, etc.). Nos despedimos de Cordeiro para seguir nuestro full day, ahora a la ciudad de Piracicaba, ¡o lugar onde o peixe para! (Lugar donde los peces se detienen)

Leer más

[Front-End] Creación de un “sticky” footer

Como desarrolladores front-end, de seguro que ya se nos ha presentado este problema durante el desarrollo de nuestros sitios web:

Problema -> “Una sección footer que no se encuentra en la ubicación correcta (parte inferior) debido a la poca información que contiene la página web que visualizamos”

Figura 1: Footer azul se encuentra ubicado en la mitad de la página web (error de ubicación)

Lo que buscamos es que el footer se encuentre siempre “pegado” (sticky footer) en la parte inferior de la página web, sin importar la cantidad de contenido que haya en dicha página.

Solución-> Sticky Footer utilizando el CSS3 Flexbox

Figura 2: Footer azul ubicado en la parte inferior a pesar de no existir suficiente contenido en la página web

Aclaraciones:

En la figura 3, el navegador web (Google Chrome, Firefox, etc) es representado por el recuadro negro. En el lado izquierdo vemos que el “sticky footer” está en la parte inferior de la ventana del navegador pues la página web no contiene información suficiente. Sin embargo en el lado derecho, como existe mucho contenido, éste “empuja” al footer a la parte más inferior posible.

Figura 3 – Comportamiento del Sticky Footer [3]

 

OJO: Sticky Footer es diferente a Fixed Footer

Figura 4 – Los 3 tipos de footers: Default, sticky y fixed [5]

 

¡Vamos a ver cómo lo hacemos!

Leer más

¿Qué es Google Cloud Platform?

Los sitios web de la mayoría de los clientes de LiOnline están alojados en Godaddy pues nuestra experiencia ha sido positiva con dicho proveedor de hosting y dominios. Esos sitios web desarrollados y personalizados con el CMS (Content Management System): “WordPress“, nosotros los consideramos de tipo “informativos” ya que cuentan con una estructura básica para presentar el giro del negocio del cliente:

  • Inicio
  • Sobre nosotros
  • Catálogo de productos/ servicios y/o proyectos
  • Formulario de contacto
  • Blog (Publicación de noticias yo/o artículos)

Godaddy ha sido suficiente para soportar dichos sitios web. Sin embargo, ¿qué pasa con aquellos clientes que requieren soluciones web más complejas y con mayor nivel de seguridad/velocidad?

Ejemplo de sitio web con estructura básica
A inicios del año 2017, un cliente (que no era del área de tecnología) me comentó sobre Google Cloud Platform (GCP) y deseaba tener su sitio web allí. Fue la primera vez que oía sobre GCP, empecé a investigar un poco pero no fui más alla ya que el sitio web informativo de este cliente no necesitaba toda una infraestructura robusta como la que ofrece GCP (o al menos fue la razón que en ese momento consideré mejor). Hoy, julio 2018, surgió un proyecto de migración de un sitio web de Godaddy a GCP, que ¡LiOnline asumió!.
En este punto, seguro ya te estarás preguntando: pero ¿Qué es Google Cloud Platform?.
Si entramos al sitio oficial encontramos 2 mensajes que resaltan las ventajas más importantes de GCP:
“Juntos, nosotros podemos ayudarte a resolver tus problemas más difíciles y hacer crecer tu negocio. Con Google Cloud: nuestra infraestructura es tu infraestructura. Nuestras herramientas son tus herramientas. Nuestras innovaciones son tus innovaciones”
“Creemos que la seguridad empodera la innovación – así que si tú pones la seguridad en primer lugar, todo lo demás fluirá”
“Infraestructura”. “Seguridad” e “Innovación” las 3 palabras que considero clave para entender GCP.

Leer más

Diseño Web: Diferencia entre Wireframe, Mockups y Prototype

En LiOnline, antes de comenzar a desarrollar una página/sistema web, utilizamos algunas herramientas que nos permiten “bosquejar” lo que queremos construir, estas son: “sketchs” “wireframes“, “mockups” y/o “prototipos“. Éstas nos facilitan la comunicación con el cliente pues él puede visualizar cómo quedaría el producto que desea (antes de invertir tiempo en desarrollar) y dar sus comentarios/sugerencias las cuales se traducen en mejoras y/o cambios ¡a tiempo!.

En [1] nos dicen resumidamente cuáles son las ventajas de estas herramientas:

  • Generar una lluvia de ideas (brainstroming) para definir qué expectativas tiene el cliente del producto a ser desarrollado.
  • Ahorro de dinero/tiempo en la fase de desarrollo
  • Describir claramente qué es lo que necesita ser desarrollado
  • Usado para captar inversionistas, primeros clientes y/o co-fundadores, por ejemplo a través de aceleradoras de startups.

Nuestro proceso para el diseño de una página web es el siguiente:

  • Reunión preliminar con el cliente en el que nos cuenta las necesidades de su negocio y cómo le gustaría que sea su sitio web. A mano alzada realizamos un bosquejo de la web y sus funcionalidades, tomamos apuntes y damos sugerencias (Sketch)
  • De acuerdo a los requerimientos levantados durante la reunión preliminar y a la evaluación de los sitios webs de la competencia, proponemos la estructura o esqueleto del sitio web (Wireframe). El cliente podrá evaluarlo y solicitar las modificaciones pertinentes.
  • Luego de aprobado el wireframe, éste es explicado al diseñador gráfico que ¡hará su magia! y nos entregará cómo se verá la web o mejor dicho la representación visual de la web (textos con los tipos de letras y colores que forman parte del branding del negocio, imágenes,  íconos, logos, etc.) (mockups). En este fase, los diseñadores gráficos utilizan sus conocimientos de buenas prácticas de User Interface (UI).
  • Lo siguiente es el desarrollo de un prototipo (prototype), este paso es opcional según [1] [2] y efectivamente en nuestro equipo de trabajo lo hemos aplicado en pocas ocasiones. El prototipo es nuestro mockup pero enriquecido con piezas de User Experience (UX), en donde el usuario puede interactuar por ejemplo dando clic a botones, enlaces, ver animaciones, etc. ¡Ojo! el usuario sentirá que está utilizando la versión final sin embargo aún no hay funcionalidad, pues solo son piezas conectadas entre sí [2].
  • ¡Finalmente viene lo bueno! ¡A programar! y aplicar todos nuestros conocimientos de HTML, CSS, jQuery, php, frameworks, bibliotecas, APIs o más! ya sabiendo cómo debe verse y cómo debe funcionar.

Ejemplo de nuestro cliente BYC – Grupo Inmobiliario

Seguro que hasta este punto ya tienes una idea en qué se diferencia cada término. A continuación vamos a ver más a detalle qué son y qué softwares existen para crearlos.

Leer más

¡Yo también puedo cantar!

Este 2018, surgió una actividad que nunca pensé envolverme: Participar del Coro de la Escuela Libre de Música (ELM) de la Orquesta Sinfónica de Limeira-SP. ¿Cómo llegué ahí? ¿es en serio Pamela, tú que apenas sabes do-re-mi-fa-sol-la-si?. Yo no busqué clases, simplemente pasó.

Una amiga quiso unirse a unas clases de violín del ELM y me pidió ir a preguntar por informes pues ella no estaba en la ciudad esos días. Fui y pregunté, infelizmente era necesario pasar por un test de violín en una fecha en la que ella aún estaría fuera. Bueno, cuando ya me iba a ir vi que habían más talleres disponibles entre ellos “coro”. Me detuve y pensé:

“No tengo nada que perder, si paso la audición bien y si no pues no pada nada”

Me preparé con un clásico de la música criolla peruana: “La Flor de la Canela”. Yo admito que no tengo preparación alguna de canto, pero siempre recuerdo a una compañera que hacía maestría en música (hoy ya magíster) decir “Todos podemos cantar” … hoy le doy la razón. Pasé la audición para ingresar al taller de “Coro Iniciante”. Resalto las iniciativas de cultura por parte de la Prefeitura de Limeira – SP, pues pone a disposición talleres como estos de forma gratuita a los que vivimos en esta ciudad.

Leer más

1 2 3 4 5