Buenas prácticas de programación en BigPink

La mayoría hemos escuchado sobre la importancia del trabajo en equipo, cómo aumenta la eficacia y calidad de los resultados, cuando trabajas en equipo con programadores que tienen distintas habilidades y talentos, es de suma importancia buscar que la forma de programar se estandarice y no se convierta en una complicación innecesaria; para ello, es recomendable establecer y seguir una serie de buenas prácticas.

A continuación, te platicaré algunas de las buenas prácticas que implementamos en BigPink.

  • Legibilidad en el código.

La legibilidad es muy importante, debes escribir tu código, pensando que cualquier programador lo pueda comprender, además, ten en cuenta que entre más complejo sea tu código, más difícil resultara dar mantenimiento en el futuro.

  • Leer código fuente.

Escribir código fuente es mas fácil que entender el código escrito por otros, muchas veces nos encontramos con código desordenado, o con la documentación de código incompleta, por eso, leer código fuente te ayudará a entender la diferencia entre código de buena o mala calidad, también, te ayudará a mejorar tus habilidades de programación.

  • Estructuras de control e indentado.

Con tu equipo de trabajo, deberán acordar un estilo de sangría en su código, para tabular o delimitar bloques de código, con esto harán que su código sea más fácil de leer.

  • Valores fijos.

Cada vez que tengas un valor concreto en tu código, el valor debe ser almacenado en una constante, así, ayudarás a reducir el mantenimiento ante cualquier modificación que afecte la estructura.

  • Comentarios en el código.

Los comentarios en el código, deben ser para favorecer la comprensión del código y no para introducir mayor complejidad en su entendimiento, realiza los comentarios por bloques, cuando consideres importante reflejar la importancia de alguna línea en tu código, puedes agregar comentarios al final de esta.

  • Caracteres únicos del español.

Procura escribir código en inglés y que tu teclado esté configurado en este idioma, ya que caracteres como la ñ o las tildes pueden generar errores al no ser caracteres ASCII.

  • Testear el código.

Siempre debes estar realizando este paso, incluso, después de haber realizado un pequeño cambio en tu código, de esta manera, evitarás frustraciones futuras al momento buscar un error.

  • Tamaño del código.

La longitud de un método no debe exceder 100 líneas de código sin causa justificada, recuerda que siempre puedes hacer uso de un método dentro de otro. Por línea, evita la incorporación de más de una instrucción que rebase los 80 caracteres.

  • Compartir.

Compartir conocimientos ya sean técnicos o profesionales con tus compañeros, motiva a que se puedan ayudar mutuamente a mejorar y logra que el trabajo en equipo funcione mejor.

  • Investigar cosas nuevas.

Es muy importante que te intereses en los temas a aprender, que tengas inquietudes al respecto y que, fundamentalmente disfrutes programando. Existen muchas herramientas y plataformas que te pueden ayudar a expandir y mejorar tus conocimientos, siendo productivo(a) y de una forma divertida, sin generar estrés y aburrimiento.

La programación requiere de paciencia y resistencia a la frustración, tal vez, el trabajar con código ajeno o tratar con datos desactualizados puede dificultar tus tareas asignadas, pero debes perseverar y seguir adelante.

Andrea Adriana Hernández
www.girasolo.com
www.ThinkBigPink.com

Safe-T

Para quienes estamos inmersos en el mundo del diseño, el desarrollo de una nueva marca es un tema que resulta mucho, muy emocionante, pero al mismo tiempo, genera un poco de incertidumbre. Qué tipografías utilizar, qué colores son los que encajan mejor con la personalidad de la marca y cómo podemos lograr un “buen diseño”.

Lo cierto, es que no existe un mejor diseño. La idea de generar el “mejor diseño” resulta utópico, pues no existe una sola manera de resolver los problemas, menos aún, cuando nos encontramos dentro del contexto creativo. Todo lo contrario, existen infinidad de caminos que podemos tomar para resolver correctamente un problema. Y es precisamente esto lo que nos encanta, ese mar de posibilidades que se nos presentan ante el umbral del desarrollo de una nueva marca.

Es el caso de Safe-T. Una empresa dedicada a la instalación de sistemas de seguridad y redes contra incendios.

El nombre Safe-T deriva, por una parte, de una síntesis del anterior nombre (Safety Systems & Solutions) mientras que, por la otra, de la apreciación fonética de: Safe, en español seguridad; y la letra T, que en inglés se pronuncia como ti. Al combinarlas, obtenemos Safe-T, cuya pronunciación es similar a Safety, que hace referencia a la seguridad, siendo éste el principal campo de acción de la empresa.

Para la construcción del símbolo de la marca, debíamos generar un gráfico que, por sí solo, representase de manera concreta qué es Safe-T. No solamente desde el concepto de los sistemas contra incendios, sino también desde la seguridad y todo lo que esta implica.

Luego de elaborar diversos bocetos, logramos generar lo que sería el isotipo final.

En la parte central del símbolo, encontramos la silueta de una flama, rodeada por una serie de líneas que nos recuerdan, no sólo a las tuberías, sino también al cableado de los sistemas de seguridad. Así mismo, podemos apreciar que todos estos elementos se encuentran dentro de las curvas abstraídas que componen la letra S, inicial de la marca.

Como el símbolo generado resulta tan fuerte y rico en cuanto a su significado, optamos por utilizar una tipografía sans serif que lo complementase de manera sutil, centrando la atención en el isotipo.

En cuanto a las tonalidades de la marca, encontramos como color principal, un rojo con matices magenta, que nos remiten al color del equipo y material utilizado para combatir los incendios. Como color secundario, tenemos un negro enriquecido que cuenta con un matiz azul, para representar el mundo Life Safety, la seguridad y el profesionalismo.

Una vez definidos los puntos anteriores, pudimos dar paso a la creación de los elementos de papelería corporativa, como lo son las tarjetas de presentación, así como también, al diseño y desarrollo del sitio web de la marca.

Adrián López P.
www.girasolo.com
www.ThinkBigPink.com

Importancia de GIT

Dentro del desarrollo de software existen distintos tipos de herramientas que nos ayudan a solventar alguna necesidades específicas, las cuales facilitan la parte de desarrollo, implementación, despliegue, documentación, o testing. El día de hoy yo les hablaré de una herramienta para desarrollo de software profesional que nosotros internamente usamos en cada uno de nuestros proyectos, GIT.

Pero para poder hablar de git, primero tenemos que saber qué es, de dónde surge y cuál es su función.

Git es un sistema de control de versiones, el cual es distribuido, es decir, que bajo un mismo proyecto múltiples programadores pueden trabajar y desarrollar en conjunto. Es de código abierto así que es totalmente gratuito, se puede adaptar fácilmente a un proyecto pequeño así como a uno grande, cuenta con una gran documentación en la web y es muy usado por los programadores, es una herramienta muy útil a la hora de hacer correcciones a bugs y documentación de proyecto ya que cuenta con una línea del tiempo de desarrollo.

Git es un sistema multiplataforma, lo que quiere decir que podemos usarlo con Windows, Linux o Mac OS. Git también cuenta con plataformas de desarrollo colaborativo, o también llamadas red social de los desarrolladores, donde se alojan los repositorios, el código se almacena de forma pública pero se puede hacer privado con una cuenta de pago, algunos ejemplos de esto son github.com o gitlab.com.

En el caso de nuestra empresa, nosotros usamos git y lo combinamos con el uso de gitlab ya que este nos ayuda a hacer CI/CD (continuous integration / continuous delivery) que son terminos muy utilizados en el DevOps.

Para ponerlos un poco más en contexto CI es un proceso en donde cada cambio que realizamos en nuestro código debe ser testeado y verificado por las pruebas que hemos escrito con anterioridad.

CD es el mismo proceso anterior, solo que de una manera más automatizada y además nuestros tests de aceptación o acceptance tests deben ser de una gran calidad. Porque Continuous Delivery se asegura de que cada cambio realizado esté listo para ser lanzado a producción.

Para trabajar eficientemente con git es necesario tener un gitflow eficiente pero, ¿qué es un gitflow?, según la pagina oficial de Github https://github.com/doapps/software/wiki/Gitflow.

Gitflow es un flujo de trabajo de basado en git que fue publicado y popularizado por Vincent Driessen. El flujo de trabajo de Gitflow define un modelo de ramificación estricto, diseñado en torno a la versión del proyecto. Esto proporciona un marco robusto para la gestión de proyectos grandes.

¿Por qué usar Gitflow?

Por los siguientes motivos:

  1. Desarrollo Paralelo
  2. Colaboración
  3. Área de puesta en escena de la versión
  4. Soporte para reparaciones de emergencia

Nuestro gitflow es uno de los más estándares, comenzamos con dos ramas principales que son máster y develop, la rama máster está protegida y nunca se sube nada directamente a ninguna de estas cuando se va a realizar una nueva funcionalidad. Nunca se trabaja sobre ninguna de ellas lo que se hace es posicionarse en develop, actualizar con el repo remoto y después crear otra rama en la que se trabajará con el prefijo feature, una vez terminas la funcionalidad se sube esa nueva rama al repo remoto para ser revisada por medio de pipelines, y de ser aprobada, se integra con develop.

Cuando se va a corregir un bug el proceso es bastante parecido, solo que en lugar de feature se usa el prefijo Hot-fix, cuando el proyecto esté listo para mandarse a producción se hace un merge entre develop y máster para crear la primer versión o relace esto se repite conforme a los relace que son lanzados.

Como pueden ver, git es una herramienta muy útil para los desarrolladores que cuando es manejada debidamente, acorta tiempos de desarrollo y ayuda con la gestión de software, en el siguiente enlace les dejaré algunos de los comandos que son más usados en git por si les interesa.

https://github.com/miguel199529/Notas/blob/master/GIT.md

Miguel Ángel López
www.girasolo.com
www.ThinkBigPink.com

Somos ESR

Este año en Girasolo logramos cumplir con uno de los objetivos que nos pusimos a principio de año ¡lograr tener nuestro distintivo de Empresa Socialmente responsable!

Tal vez pensarás, ¿Por qué  les emociona tanto? Y la respuesta es sencilla, a todos en la agencia siempre nos ha entusiasmado bastante enfrentarnos a nuevos retos, esa es una de las características que mejor nos representa; entonces poder retarnos a algo como es obtener un distintivo se volvió algo que veíamos posible pero no muy cercano por la inexperiencia que teníamos en el tema.

Cuando nos empezamos a introducir con apoyo de Lapisa en todo lo que conlleva ser socialmente responsable nos dimos cuenta de que ya teníamos casi todo el trabajo hecho, hacer cosas bonitas para la sociedad es algo que nos gusta y se nos da, entonces ya solo nos quedaba la tarea de documentar y seguir aportando.

Hicimos todo lo que estaba de nuestro lado, subimos nuestras evidencias, documentos, cartas, etc. Y ahora era momento de esperar por dos largos meses, y digo largos porque ya nos urgía saber el resultado. Hasta que llego el día, un sábado 31 de agosto, todos estábamos en nuestra casa y me tocó dar la noticia, obvio todos nos pusimos muy felices y orgullosos de lo que conseguimos. Ver el nombre de Girasolo en la lista de empresas que obtuvieron el distintivo en el año 2019, se sintió como un logro personal.

Ya que conté el lado emotivo y experiencia personal, hablaré de lo que consiste ser socialmente responsable. Lo primero y más importante, si no hay cooperación y conocimiento del proceso que se va a realizar por parte de TODOS los integrantes de la empresa es casi seguro que será un proyecto fallido. Toda la empresa en conjunto debe estar encaminada a favorecer la calidad de vida en la empresa, a la comunidad, al cuidado y preservación del medio ambiente y la ética empresarial. Ser una empresa socialmente responsable implica compromiso, tiempo e interés, claro que implica esfuerzo, pero también beneficios. Cada una de las buenas acciones que realices como empresa se verán reflejadas en la satisfacción de tus colaboradores, de tus clientes y en la forma en que te ve tu comunidad (sociedad).

Es satisfactorio ver como otras empresas comienzan a acercarse a ti para informarse sobre cómo obtener este distintivo, eso significa que hay interés pero no el fácil acceso a esta información. Hoy primero de noviembre acaban de hacer el último llamado a inscribirse como empresa grande (tienen varias clasificaciones). Aquí dejo un link si te llamo la atención algo de lo que te platique y quieres saber más. https://www.cemefi.org/

¿Qué es DevOps?

¿Alguna vez has escuchado hablar sobre DevOps? existen varios puntos de vista sobre el término DevOps ( Develop / Operations ), pero la gran mayoría coinciden en que es una cultura que promueve la comunicación entre el departamento de desarrollo (Development) y el departamento de Administración de sistemas (Operations). 

La cultura DevOps tiene como objetivo acelerar la entrega de software de manera ágil asegurando la calidad del software, todo esto, por medio de buenas prácticas, herramientas de integración de código, pruebas automatizadas, administración de infraestructura, etc.

Las prácticas más populares de la cultura DevOps son las siguientes:

Infraestructura como código: Infraestructura como código es un método de automatización que está basada en prácticas de desarrollo de software. Los cambios realizados a los sistemas y sus configuraciones específicas son bien definidas y capturadas en archivos de configuración (scripts, playbooks, manifests, módulos).

Integración continua ( CI ): La integración continua es una práctica de desarrollo de software mediante la cual los desarrolladores combinan los cambios en el código en un repositorio central de forma periódica, tras lo cual se ejecutan versiones y pruebas automáticas.

Entrega continua ( CD ): La entrega continua es una práctica de desarrollo de software mediante la cual se preparan automáticamente los cambios en el código y se entregan a la fase de producción.

Herramientas DevOps más populares: Red Hat Ansible, Jenkins,Terraform, Chef, Docker, GIt, GitLab, Kubernetes, Nagios, Puppet.

DevOps en BigPink

Nosotros en BigPink adoptamos una cultura DevOps que va desde la configuración de los proyectos, testing y pruebas de integración de código hasta entornos automatizados con despliegue continuo ( continuous delivery ), para ello, implementamos las siguientes practicas y herramientas:

Configuración de proyectos: Todos los proyectos son configurados con GIT como sistema de control de versiones de software, así como el uso estricto de linters para detectar errores de estilo y mantener el código limpio.

Infraestructura como código (IaC): Toda la infraestructura la manejamos como código por medio de configuración de plantillas cloud formation para Amazon Web Services. 

Integración continua (CI): Para la integración del código utilizamos GitLab como plataforma de repositorios privados en donde por medio de Pipelines ejecutamos varias pruebas (build, linters, testing, etc.) para asegurar la calidad antes de que el código sea integrado en el repositorio central.


Entrega continua (CD): Para lograr la entrega continua se automatiza el despliegue de nuestros proyectos por medio de Pipelines programadas en GitLab que se conectan a nuestra infraestructura previamente montada en Amazon Web Services, una vez pasadas las pruebas de integración del código.

Edgar Leyva
www.girasolo.com
www.ThinkBigPink.com

TED y TEDx el gemelo asesino.

Es verdad que a veces nos enamoramos de nuestras marcas, es natural, son nuestras creaciones, y si son exitosas queremos que todo, absolutamente todo lo que hagamos se les parezca, pero, en ocasiones, este amor no permite ver que podríamos estar creando un gemelo asesino, un gemelo, que terminará por matar todo lo construido con nuestra marca exitosa.

Las conferencias TED (Technology, Entertainment, Design) nacieron hace más de 30 años, sin embargo, fue hasta mediados de la década de los 2000 que muchos supimos de su existencia, de un momento a otro, TED había establecido una forma diferente y fresca de acercarnos a las grandes mentes de la actualidad, de inmediato, TED se volvió una referencia obligada para maestros, y personas dentro de movimientos de emprendimiento e innovación.

Logotipo TED

Poco a poco, comenzamos a ver muchos videos de TED, incluso, comenzamos a ver videos de conferencias en español, no nos habíamos dado cuenta, pero TED había iniciado un nuevo proyecto: TEDx.

TEDx son congresos independientes, realizados bajo una licencia de TED donde se obligan a seguir ciertos principios y lineamientos de la marca TED, es decir, es lo mismo, pero no es igual y aquí es donde inicia el problema.

TEDx ¿Alguien sabe la diferencia entre TED y TEDx?

La realidad es que TEDx tuvo un impulso rápido un “Quick-Win” que hubiera sido imposible alcanzar sin el cobijo de la marca TED, es verdad también, que muchas más personas conocimos a TED gracias a TEDx, (parece una decisión súper acertada), pero, aunque siguen los principios de TED, los congresos TEDx no tienen, en su mayoría, la misma calidad que las TED talks.

Hoy, poco más de 10 años después de aquella irrupción de TED, existen personas que no logran diferenciar entre TED y TEDx, hoy también, las TED talks, han dejado de ser una referencia, el gemelo malvado, ha matado al gemelo exitoso.

El Quick-Win es una tentación común entre casi todos los que poseen una empresa, a corto plazo, los beneficios que parecen aportar son mayores que todos perjuicios, además, casi todos los beneficios son tangibles (más vistas, ventas rápidas etc.), mientras los perjuicios son más abstractos; la gente me consume ¿Cómo es posible que estén confundidos?

Sé que crear una marca nueva lleva mucho tiempo, un nuevo nombre, un nuevo branding, registro, colores, establecer confianza, posicionarla, etc., etc., etc.; sin embargo, esta decisión, será clave para el futuro de tu compañía, en ocasiones, no solo habrás evitado la muerte de tu marca exitosa, habrás simplificado también el proceso de una separación en caso de requerirla (CASO LEICA).

Leica, son cuatro compañías que comparten una marca ¿Qué pasa si alguna quiere cambiar el logotipo?

Es posible que en tu organización estés criando a un gemelo malvado, debes detenerlo, antes de que comience a matar a su hermano exitoso.  

@ChenBrimac
chen@girasolo.com
www.girasolo.com
www.ThinkBigPink.com

Naming – BigPink

Un buen nombre, debe tener historia, debe ser recordable, debe ayudarnos a generar el concepto de comunicación.

Ya en el pasado te había platicado acerca de: la importancia del naming, cómo una buena marca, afecta a la percepción general y futuro éxito de la compañía, hoy te platicaré de BigPink un spinoff de Girasolo, cómo surgió, y cuál fue el proceso para selección de nombre.

Web BigPink http://www.thinkbigpink.com

Desde el inicio, este fue un proceso diferente, ya, a inicios del 2019 habíamos decidido que el área de tecnologías de información llevaría un nombre diferente, la decisión se da principalmente por dos factores:

  1. Aunque la cultura organizacional es similar, en el fondo es diferente.
  2. La más importante; el cliente final es bastante diferente, y aunque la base de clientes fue la misma que se tenían en Girasolo quién nos atendía era diferente, hablaba diferente, y, por lo tanto, deberíamos presentarnos diferente a una agencia de branding y comunicación.

Ya que no teníamos un cliente concreto (nosotros, toda el área éramos el cliente), y tampoco teníamos fechas concretas, abordamos el proceso de una manera distinta, lo que, por un lado, alargó el proceso de naming (casi 45 días para tener una propuesta), por el otro lado, ayudó a nutrir el concepto de marca y diseño, derivando en complementos de comunicación visual, que actualmente se utilizan en la marca, (colorimetría, símbolos, etc.). 

Durante 30 días en uno de los pizarrones de la oficina se fueron acumulando nombres que los integrantes del equipo fueron creando, algunas traían inspiración la marca empresa madre: Girasolo, otras más, la actividad de la nueva empresa: Desarrollo y Tecnologías de la información, y otras tantas no tenían (a la vista) una inspiración concreta,  después, se invitó a todos quienes participaron con nombres a hacer un pitch  ¿Por qué su idea debería ser la ganadora y bautizar a toda la empresa? A dicho pitch, fueron invitadas personas del área de Girasolo, concretamente nuestra directora de Diseño, y nuestro encargado multimedia.

Se seleccionó como ganador la propuesta de BigPink¸ algunos de los factores que ayudaron a escoger esta propuesta fueron:

  • Una marca jovial, que represente a quienes la integran.
  • Una marca fácil de pronunciar (y de recordar) y si no es fácil de recordar, nos recordarían por color, los rosas.
  • Una marca que representa nuestros orígenes, La Piedad Michoacán, en otros tiempos capital del cerdo; y cuando uno describe un cerdo, lo describe así, es un animal, grande y rosa.
Diferencial semántico, extracto de presentación de Pitch sobre naming: BigPink

Además del concepto de marca, otra de las cosas que ayudaron a triunfar a esta propuesta fue su concepto de comunicación (aunque no tenía logo e imagen aún), se presentó la propuesta con algunos colores que conformarían el diseño final, dichos colores (salvo el negro, KEY), fueron seleccionados a partir de RGB y no a partir de pantones o CMYK, sin embargo, son desviaciones de CMY, lo que ayudó a dar un concepto poderoso, nacimos digitales, pero venimos de una empresa de diseño, haciendo notar así, nuestra fortaleza, hacemos cosas funcionales, pero visualmente atractivas. (en ocasiones incluso en nuestra papelería corporativa, pueden verse cuadros en nuestros colores, simulando una guía de impresión).

Presentación corporativa, donde se muestran: forma de usos y colorimetría en General.

Parte esencial de un pitch poderoso, es hacer que tu audiencia se imagine lo mismo que tú, y convencer a un grupo de ingenieros, a que su marca y colores corporativos fuese el ROSA, era una tarea complicada, por lo que se invitó a los asistentes a imaginar estar en un congreso de TI, que se imaginaran los stands, la publicidad, y como están integrados, y de repente, entre todos los stands, vean uno color rosa, uno que sobresaldría por puro color, la imagen fue tan poderosa, que ayudó a que muchos votaran por esta propuesta.

Página de contacto al final de las presentaciones.

Think Big, think BigPink |

@ChenBrimac
chen@girasolo.com
www.girasolo.com
www.ThinkBigPink.com