Mostrando las entradas con la etiqueta Experiencias de mi vida laboral. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Experiencias de mi vida laboral. Mostrar todas las entradas

lunes, mayo 18, 2020

Trabajando en Cuarentena

De: https://its-ok.clearleft.com/

It hasn’t been easy, working in lockdown and juggling family life, client projects and everything else in between. So we wanted to say…

It's OK.

  • to turn your camera off if you want to.
  • to turn off Slack for a few hours.
  • not to respond to Slack messages immediately.
  • to use Slack calls over video calls.
  • if your pets/kids/partners are wandering around in the background.
  • to step away from a call if your delivery arrives.
  • to do excercise or go for a walk during the day.
  • to take a nap in the afternoon.
  • to feel like you're not being as productive as normal.
  • to work asynchronously if your project can handle it.
  • to ask for a phone call instead of a video call.
  • to say you’ve had too many video calls and need a break.
  • to say you need some down-time.
  • to take a mental health day if you need one.
  •  
  • to say you’re not OK.
 

viernes, marzo 06, 2015

Charla introducción a Kanban

A finales de Febrero del 2015 volví a dar una charla sobre Kanban en el trabajo, esta vez en forma introductoria, a unos nuevos integrantes de la compañía. Inicialmente di esta charla en mi trabajo anterior y luego la dí frente a la comunidad ágil en Buenos Aires.

Como el público estaba compuesto de trainees sin experiencia laboral, y en la mitad de sus carreras de grado de ingeniería en informática o licenciatura en sistemas, esta vez empecé con una introducción a la ingeniería de software. Luego les hice una introducción a la agilidad, siguiendo por la introducción a Kanban, y finalmente una comparación con Scrum.

Lo que estoy notando es que cada vez me es más fácil hablar en público (algo que inicialmente me horrorizaba), me estoy soltando, y le estoy poniendo más pasión. Espero seguir teniendo oportunidades así.


sábado, octubre 25, 2014

Charla del Dr. Facundo Manes en el 7mo Foro Level (3)

El 16 de Septiembre pasado tuve la oportunidad de asistir al 7mo Foto de la empresa Level (3). En la misma, se presento como keynote speaker el Dr. Facundo Manes, quier cerró la jornada. Facundo es neurólogo, neurocientífico, investigador del CONICET y rector de la Universidad de Favaloro. 

Facundo es el autor del libro "Usar el Cerebro - Conocer nuestra mente para vivir mejor". No lo conocía, pero voy a leerlo, ya que su charla fue super interesante. En la misma habló de toma de decisiones e innovación. También charló de creatividad: Se parte teniendo primero un objetivo-problema que apasione y obsesione, después relajarse dejando la mente trabajar en el background sobre el problema. Les dejo el video, es largo, pero no tiene desperdicio. Disfrutenlo!

viernes, febrero 28, 2014

Imagen de la Virgen en el Servidor



Hace unos días, un pedido de un cliente me desconcertó. Estamos por lanzar un sitio web en vivo de su negocio, un servicio pago de encuestas para medir el capital intangible dentro de una empresa. Esta gente está haciendo una gran inversión en el sitio, y me pidió, que de alguna forma, subamos de forma oculta, una imagen de la virgen de San Nicolás para traer buena fortuna a este emprendimiento. Realmente no sabía cómo reaccionar. No soy religioso, pero respeto a la gente devota como mi cliente, así que accedí al pedido sin lugar a dudas.

Nunca me había pasado algo así, realmente me pareció interesante contarlo. Los dejo sacar sus propias conclusiones. Para cerrar el articulo les dejo una frase muy conocida que menciono mi cliente en ese momento: “Las brujas no existen, pero que las hay, las hay”.

viernes, diciembre 20, 2013

Capacitación Metodología Kanban

Esta semana di dos charlas o capacitaciones sobre la metodología Kanban en la empresa donde trabajo, una en las oficinas de La Plata y otra en Buenos Aires. Fueron las primeras charlas en público que doy fuera de una clase en la universidad. Realmente salieron fluidas y entretenidas, aun teniendo en cuenta que no me gusta mucho hablar en público. Además. lo disfrute mucho. Igual, es algo en lo que quiero mejorar, por eso dí estas capacitaciones, para salir de mi zona de confort y seguir creciendo profesional y personalmente.

En este blog siempre me enfoqué en escribir sobre Scrum. Kanban es una metodología que estoy usando hace aproximadamente seis meses en uno de mis proyectos, y realmente es útil y funciona muy bien para ciertos proyectos, con condiciones distintas a los proyectos donde Scrum suele funcionar bien. Pronto comenzaré a escribir sobre esta metodología para que la conozcan.





martes, agosto 28, 2012

¿Qué hace un ScrumMaster durante el día?

Para ver que hace un ScrumMaster durante un día de trabajo, citemos una definición de ScrumMaster:

Scrum is facilitated by a ScrumMaster, whose primary job is to remove impediments to the ability of the team to deliver the sprint goal. The ScrumMaster is not the leader of the team (as they are self-organizing) but acts as a buffer between the team and any distracting influences. The ScrumMaster ensures that the Scrum process is used as intended. The ScrumMaster is the enforcer of rules.

Muy concisa… pero ¿Qué hace realmente un ScrumMaster durante el día? Déjenme enumerar específicamente las (principales) tareas que realiza durante la jornada laboral:

  1. Asegurar que los valores y las prácticas de Scrum se respeten y se cumplan.
  2. Quitar impedimentos al equipo. Conseguir o perseguir a quien sea para que cualquier problema sea resuelto cuanto antes y el equipo pueda trabajar sin nada que los frene. Lograr que el equipo sea híper productivo. Lograr el éxito en el proyecto.
  3. Asegurarse de que las reuniones diarias ocurran, que haya una sala reservada (física o virtual para tele o video conferencias), y que todos los miembros del equipo vayan, como un pastor que guía a sus ovejas (Estimo que mi analogía pueda herir la susceptibilidad de cierta gente, pero es cierta).
  4. Prestar atención en las reuniones diarias. Seguir los temas abiertos en ellas. Asegurarse que las conversaciones sigan fuera de esta reunión.
  5. Moderar las reuniones diarias para que no sean innecesariamente largas.
  6. Asegurarse que el product backlog este priorizado (Push al product owner)  y estimado (asegurando que los poker plannings se hagan).
  7. Asegurarse que el sprint backlog este actualizado, que el remaining time de las tareas se cargue diariamente y estos cambios se puedan observar en el burndown
  8. Asegurarse que el Sprint planning se haga, que las user stories sean separadas en tareas estimadas por las personas que las vayan a hacer, y que queden asignadas a ellos.
  9. Proteger al equipo cuando se pide mucho de ellos, que no se comprometan a más de lo que puedan hacer, y también que no se vuelvan complacientes. Esto es más difícil, ya que si el equipo no quiere dar lo mejor y apunta a menos, hay problemas graves de motivación que tienen que solucionarse.
  10. Asegurarse que los analistas funcionales trabajen en el acceptance criteria de las historias del product backlog de mayor prioridad junto al product owner (Grooming)
  11. Asegurarse que se hagan las Demos, que el equipo se prepare para ellas y que alguien (no siempre la misma persona) muestre las nuevas funcionalidades de la aplicación.
  12. Preparar la presentación con las métricas del sprint para presentar en el sprint review, antes o después de la demo.
  13. Asegurarse de que se hagan las retrospectives, y que los tres puntos más importantes levantados por el equipo se resuelvan o se intenten resolver durante el siguiente sprint. Detectar otras oportunidades de mejora.
  14. Asegurarse de que se hagan las release planning meetings, para organizar el product backlog en releases. Con la métrica de la velocidad se debe saber cuándo se va a terminar todo el product backlog que uno tiene estimado. Trabajar junto a los stakeholders del cliente para seguir de cerca el plan a largo plazo del proyecto.
  15. Asegurarse que el equipo complete el done criteria. No dejar que se cierren tareas (Se sumen story points) hasta que algo no este desarrollado, testeado, aprobado por el cliente, o lo que diga el done criteria que se haya especificado.
  16. Facilitar la comunicación del equipo con el product owner.
  17. En algunos casos, liderar sin autoridad formal, sin títulos. El ScrumMaster es un servidor y líder a la vez.
  18. Tener reuniones 1:1 con todos los miembros del equipo. Hacer seguimiento de cada miembro del equipo. Escuchar a la gente. Asegurarse de que el equipo este bien.
  19. Asegurarse que todos sepan usar la herramienta de administración del proyecto que se use, entrenar al equipo.
  20. Proteger al equipo de influencias externas. Ser el punto de contacto principal para cualquier persona externa  al equipo. Encargarse de las tareas burocráticas.
  21. Comunicarse e informar el estado del proyecto y del equipo a sus superiores dentro de la empresa.
  22. Organizar eventos cuando se llega a hitos importantes.
  23. Comprar comida al equipo cuando se trabaja hasta tarde. Asegurarse de que tengan café.

Seguro que hay más que no tuve en cuenta, pero espero que este artículo les dé un pantallazo general de las tareas de un ScrumMaster.

miércoles, junio 13, 2012

Diarios de Praga II: Implementación de Scrum sin éxito

Luego de un comienzo alentador, de haber convencido a mis superiores  que Scrum podía ayudar y solucionar ciertos problemas que experimentaban los proyectos de la empresa, me choque con la dura realidad y mi intento de aplicar Scrum, o un hibrido adaptado a sus necesidades, falló. Les recomiendo que lean mi artículo anterior para conocer en profundidad mis hallazgos iniciales.

Pronto entrare en detalles, pero en resumen mi intento fue muy apresurado, no llegue a conocer bien a la empresa, a su gente, su cultura, su forma de trabajar y los problemas actuales que tienen con los clientes. Solo había estado con ellos un mes. Tuve apoyo interno inicialmente y un cliente aprobó la implementación, pero por diversos problemas periféricos que estábamos experimentando en el proyecto en ese momento, no se tuvo la paciencia necesaria para aplicar el proceso y volvimos todo atrás. 
La situación no era buena,  se habían retrasado muchas entregas y últimamente no podíamos cumplir los compromisos asumidos. Otra causa relacionada es que el cliente no era una empresa de desarrollo, sino una empresa de retail que tenia su sitio de e-commerce, y su área de sistemas no estaba al tanto de Agile ni de Scrum.

Otro tema fue el interno, no logre apoyo suficiente para lograr el cambio. Aunque tuve apoyo inicial, cuando surgió el primer inconveniente con el cliente perdí la confianza y el apoyo de la empresa. El problema principal fue que no logre un completo consenso interno antes de lanzar este proceso con el cliente. Lo ideal hubiese sido aplicar cambios graduales y luego cuando todos estén listos, hacer el cambio  definitivo.

También el cliente creía que el proceso era una bala de plata que iba a resolver todos sus problemas. Empezaron a hacer pedidos irreales, como por ejemplo que el proceso soportase incrementar y disminuir el output de desarrollo de una semana a la otra sin retrasar las funcionalidades planeadas, que eliminase la posibilidad de que existan defectos y también que provea fechas para todas las fases del desarrollo de cada funcionalidad (Fechas para la finalización todos los estados: especificación, desarrollo, testing y UAT).

Volvimos a manejar todo con planes en un Gantt. El cliente prefiere tener un plan con fechas para todo, aunque no sean reales y luego se retrasen. Es un círculo vicioso, porque siempre se llega a situaciones límite con el cliente por retrasos entendibles y relacionados a la naturaleza del desarrollo de software. El cliente tiene la suficiente fuerza como para que en la empresa  se pongan fechas irreales y luego siempre se retrase todo, se llegue a un conflicto, y se re-planifique. Es una forma de trabajar muy poco sana Hay presión, negatividad y muchas veces se hace overtime sin necesidad.

En la empresa siguen apoyando la idea de tomar ideas agiles, pero saben que no es el momento. Mi experiencia sirvió para hacerles dar cuenta que tienen que ir paso a paso. El problema principal es la gente, ya que la empresa cuenta con un pequeño equipo técnico que maneja varios proyectos a la vez y la todos van saltando de un proyecto a otro apagando incendios y resolviendo defectos. La idea de tener un equipo dedicado a nuevas funcionalidades y otro a resolver defectos no es posible en este momento, no se puede tener un equipo fijo que es uno de los principales requisitos de Scrum, ya que sin un equipo no se puede lograr medir la velocidad de desarrollo para lograr un planeamiento a largo plazo (Release planning).

Aunque interpretarse como un fracaso, yo tomo lo positivo de esta experiencia. Me sirvió para aprender que para aplicar procesos tengo que tomarme más tiempo para estudiar la realidad de la empresa, lograr un consenso total de todos los involucrados (y uno mayor de la gente de arriba), e ir aplicándolo gradualmente los cambios para que las posibilidades de tener éxito sean mayores. También fue mi primera experiencia con una empresa no dedicada al desarrollo de software, la diferencia realmente es abismal. De todo se aprende.

miércoles, abril 25, 2012

Diarios de Praga I: Como Aplicar Scrum en un Ambiente Desfavorable

Praga es una ciudad hermosa, con una historia muy interesante, una arquitectura impresionante, mujeres hermosas y cerveza de excelente calidad a un precio muy accesible (increíblemente es más barata que el agua).

La razón por la que fui llamado de esta empresa de Praga es simple, no consiguieron Project Managers experimentados en el mercado local. Contrataron un par, pero no tenían la experiencia necesaria o eran muy estructurados o poco flexibles para adaptarse al trabajo.

Esta empresa desarrolla sitios de E-Commerce y provee servicios de hosting y soporte sobre ellos. Adicionalmente realizan campañas de marketing para estos clientes y los asesoran en cualquier tema relacionado. El equipo humano es muy bueno (en general), pero hay innumerables as aspectos para mejorar que les voy a comentar:
  • No utilizan procesos formales, y tienen a un mismo equipo desarrollando nuevas funcionalidades y resolviendo bugs. Trabajan con un SLA con los clientes, ya que al tratarse de sitios transaccionales donde grandes sumas de dinero están en juego. Claramente no se pueden dar el lujo de no resolver bugs críticos inmediatamente luego de recibirlos. El equipo de desarrollo recibe tareas de dos fuentes, la gente de soporte que recibe los bugs del cliente y del Project Manager que maneja el desarrollo de nuevas funcionalidades (su humilde servidor).
  • Los clientes tiene una mala imagen de la empresa porque bajo estas condiciones los planes de desarrollo de nuevas funcionalidades no pueden cumplirse ya que la resolución de bugs en el sitio en producción rompe con cualquier tipo de plan.
  • Otro tema es que los clientes tardan mucho en responder preguntas, aprobar especificaciones y diseño. Esto también hace que las funcionalidades se retrasen y el cliente piensa que el equipo se sienta de brazos cruzados en ese tiempo.
  • Los clientes no son empresas de software con las que siempre trabajé, sino empresas muy tradicionales que tienen un sitio web de E-Commerce, y la gente de sistemas son generalmente dinosaurios incompetentes pro PMI con nula capacidad de cambio.
  • Finalmente, sus procesos técnicos son medievales, no hacen code reviews, no automatizan tests, no hacen unit tests, no corren pruebas de regresión, no tienen ambientes de staging (solo tienen ambientes de QA y producción bastante distintos entre ellos). Ni hablar de test driven development (algo con lo que francamente nunca trabaje todavía) o metodologías agiles.
  • Como los clientes no confían completamente en ellos, no lograron estar contratados como time and materials. Tienen un contrato fijo de soporte y hosting, y luego por cada nuevo feature que se desarrolla, se prepara un contrato de costo fijo, incluso para cambios de pocas horas. Con ese esquema es imposible controlar costos, manejar un P&L o hacer un forecasting.
  • Los clientes tienen picos de trabajo descontrolados, urgencias todo el tiempo, y esperan una reacción rápida a estos pedidos.
Estoy tratando de implementar scrum tailorizado a su forma de trabajo. Por suerte logre convencerlos de que es la solución para ellos, pero todavía no sabemos como aplicarlo en este esquema.  Con la necesidad de resolver bugs por el mismo equipo (con el SLA) la capacidad del equipo nunca va a ser igual y la velocidad va a fluctuar. Nunca se va a poder hacer un release planning (tener un plan a largo plazo)  predecible y confiable.


En fin, además de darme la posibilidad de viajar por Europa los fines de semana, el trabajo un gran desafío, con muchos problemas para resolver. Espero mantenerme entretenido en los próximos meses. Los mantengo al tanto, Na shledanou!

jueves, marzo 29, 2012

¡Project Management en Praga!

Estas últimas semanas fueron bastante movidas. Hace dos miércoles, volví de vacaciones, vi una oferta laboral interna para trabajar como Project Manager onsite en Praga y me postulé. Ya había trabajado con ese cliente hace unos años, así que sabía como se manejaban y me interesó la propuesta.  El viernes tuve una entrevista que fue un trámite (tengo varios contactos en Skype de esa empresa que activé para lograr que me elijan). En tres días cambio mi vida. Este lunes parto a Praga, por 6 meses o más. Esta experiencia me va a marcar mucho profesionalmente, pero bastante más personalmente.

Praga, República Checa
Estimo que recolectare varias experiencias interesantes sobre management en Praga. Lo raro es que no voy a manejar proyectos ni equipos de mi empresa desde ahí, sino que voy a trabajar como manager de un equipo de Checos. ¡No cambien de canal!

jueves, noviembre 10, 2011

Certified SrumMaster!

El 21 y 22 de Octubre del 2011 asistí al curso de Certified ScrumMaster de la Scrum Alliance (En el instituto Kleer en Buenos Aires)  dictado por Mike Beedle, uno de los fundadores del Agile Alliance y uno de los autores del Manifiesto Ágil.

El curso fue valioso, aunque no aprendí muchas cosas nuevas (debido a que vengo practicando y leyendo sobre Scrum hace tiempo), Mike fue muy claro para transmitir ciertas cualidades básicas de Scrum a las cuales tal vez no le daba mucha importancia, enriqueciendo mi conocimiento sobre el tema. Aproveche para sacarme una foto con Mike uno de los días:
Mike de remera negra y yo de remera blanca
Luego del curso, hay que rendir un examen online muy sencillo de 35 preguntas en Scrum Alliance y luego uno ya puede considerarse un Certified ScrumMaster y puede crear su perfil en el sitio web de Scrum Alliance (ver el mio!).

Vale la pena hacer el curso, pero lo ideal para aprender bien Scrum es practicarlo laboralmente y tener a alguien que sepa mas que uno como un coach. Leer sobre el tema también aporta lo suyo.

sábado, noviembre 05, 2011

Release Planning en Scrum

Una de las criticas mas grandes a Scrum es que se centra en el corto plazo. Se dice que con Scrum no se puede planear a largo plazo, que no se puede tener visibilidad a futuro, y esto no es cierto. Generalmente cuando uno empieza a practicar Scrum pasa eso, uno se concentra en los Sprints, en ir mejorando cada vez, restándole importancia a largo plazo. A mi me paso y me encontré en una situación donde tenia mucho trabajo por delante y poco tiempo para la entrega del proyecto.

La practica de Release Planning en Scrum te permite tener visibilidad a largo plazo. Para practicarla, se necesita que el Product Backlog este estimado en User Story Points (que todas las User Stories tengan un valor) y también se necesita conocer la velocidad del equipo (cuantos Story Points se pueden hacer por Sprint). Con esto, uno se puede reunir con el Product Owner y preparar un release plan de N Sprints. Como los Sprints tienen duración fija y la cantidad de Story Points que el equipo completa por Sprints debe tender a un numero mas o menos predecible (con mayor cantidad de Sprints esto mejora), se puede armar un plan dividiendo las user stories del Backlog en sprints y obtener una fecha de finalización del proyecto, o de una parte del mismo que se quiera lanzar a producción.
Es muy importante actualizar este release plan una vez por Sprint, ya que se tienen nuevas User Stories, nuevas prioridades y tal vez una velocidad mejor o mas predecible. Si solo lo hacemos luego del primer Sprint, no va a ser nada confiable.

jueves, junio 30, 2011

Más fundamentos en contra de trabajar por objetivos

Joel Spolsky (autor de Joel on Software) también considera que trabajar por objetivos es dañino. Joel cuenta que tratar desarrolladores inteligentes como si estuviesen en jardín de infantes no es un fenómeno aislado. Casi todas las empresas tienen un programa de incentivos que es insultante y degradante de alguna forma.

Cuenta que en las empresas donde él trabajó, la época más estresante del año era el periodo de las evaluaciones de desempeño. En ellos el tenía que escribir "anónimamente" sobre su superior (algo que raramente se hace honestamente), y luego autoevaluarse para que su superior "tenga esto en cuenta" para la evaluación de desempeño. Luego obtenía un valor numérico en varias categorías, como por ejemplo "trabaja bien con otros". Este sistema nunca tomaba en cuenta el hecho de que la gente tiene habilidades y talentos únicos que son necesarios para que un equipo funcione bien.

Las evaluaciones de desempeño resultaban estresantes porque mucha gente cuyos talentos eran significativos pero no estaban descriptos en las escalas tradicionales no tenían evaluaciones de desempeño positivas. Ciertas contribuciones altamente necesarias eran pasadas por alto. Obviamente, las evaluaciones de desempeño negativas tienen un efecto devastador en la moral. Evaluar a alguien positivamente, pero no tan positivamente como esa persona espera es altamente negativo también. Lo interesante y triste es que las evaluaciones positivas no afectan la moral ni la productividad. La gente que las obtienen ya son productivos. Para ellos, una evaluación positiva los hace sentir como que estuviesen trabajando para obtener la evaluación positiva, como perros trabajando por un hueso, en vez de profesionales que realmente se preocupan por la calidad de su trabajo.

Todos creemos que hacemos un buen trabajo, sea esto cierto o no. Es un truco que la mente nos juega para que nuestra vida sea placentera. Entonces, si todos pensamos que hacemos las cosas bien, y las evaluaciones son meramente correctas (algo que no es difícil de lograr), entonces casi todos vamos a estar desilusionados por nuestras evaluaciones. El costo en la moral es altísimo. Aunque las evaluaciones se hagan honestamente, las consecuencias de las evaluaciones de desempeño son baja moral, renuncias y roces entre miembros de los equipos por celos, entre otras cosas.

Estudios demuestran que gente que espera recibir un premio por completar cierta tarea se desempeña peor que la gente que no espera recibir premios. Los incentivos no pueden existir en el ambiente de trabajo. Todo esquema de competencia laboral, de premios y castigos, hasta el viejo truco de reconocer a la gente que hace las cosas correctamente, hacen más bien que mal. Darle a alguien un premio implica que la persona solo hizo el trabajo por ese premio. Esto implica que no son lo suficientemente independientes para trabajar sin que les den obsequios, y esto es insultante y degradante.

En otro articulo de Joel, donde explica el sistema de compensación de su empresa, comenta que los bonos traen demasiados problemas y se convirtieron como las propinas en los restaurantes: Todos las esperan, entonces no pueden ser utilizadas para recompensar el buen desempeño.

Espero que alguna vez esto cambie. Con una política salarial abierta, un salario competitivo, equidad interna y buenos beneficios, se puede lograr mucha mayor satisfacción que con cualquier bono.