Category Archives: Technology

Teaching is learning twice

Teaching is learning twice

Joseph Joubert

 

Advertisements

Adaptative planning​

Es la planificacion realizada para un horizonte de tiempo corto, en forma secuencial, y repetitiva. Tiene como input para cada iteracion, los objetivos de la iteracion, la opinion de los involucrados en el proyecto y el feedback de cada iteracion previa.

0. Background

La forma de gestionar proyectos en un entorno bien conocido y sin cambios implica realizar toda la planificacion en forma anticipada, ejecutarla y dar por finalizado el proyecto. Los cambios (si es que existen) son una excepcion y no la norma. Los proyectos toman como guia el plan desarrollado, y son evaluados por el grado de cumplimiento al plan. El valor que aporte un proyecto al negocio se toma en consideracion al momento que se crea el plan de trabajo, y es ajeno al equipo.

Dado el entorno de continuo cambio en el que vivimos, se requiere una planificacion que contemple el cambio como norma y no como excepcion.  Los cambios son la norma y como tal debe ser incorporado frecuentemente al plan de trabajo. Los proyectos son evaluados por el valor que aporten al negocio: el proyecto debe aportar valor y el equipo que trabaja esta involucrado en aportar valor.

La adaptive planning es la aceptacion conciente que existen cambios y que deben ser gestionados en forma inteligente, y que dado que el objetivo del proyecto es aportar valor al negocio, cada cambio puede representar una oportunidad para otorgar aun mas valor al negocio.

Planificar en forma continua implica considerar continuos y sucesivos horizontes de trabajo durante los cuales se determina un objetivo y se trabaja para alcanzarlo.

1. Plan at multiple levels

1. Adaptative planning

Adaptive software development is based on repeating series of speculatecollaborate, and learn cycles, providing continuous learning and adaptation to the project.

The characteristics of an agile development included mission focused, feature based, iterative, timeboxen, risk driven, and change tolerant.

1.1.1 Progressive elaboration

1.1.2. Prototypes

1.2. Time-Boxing

Organiza las actividades indicando que una actividad no puede durar mas alla de un espacio de tiempo definido previamente. Se gana en eficiencia, permite que las tareas no se extiendan indefinidamente en el tiempo y evitamos el Parkinson’s Law o Student Syndrom.

1.3 Value – Driven

Que sea el valor no el plan quien determine los proximos pasos a seguir.

2. We the people

Sinergia es cuando la sumatoria de las partes es mayor que cada una de esas partes por separado, y esto es especialmente valido al trabajar en entornos agiles, donde los equipos son autogestionados y autodirigidos, y donde se acepta y valora que los integrantes del equipos cuenten con mayor conocimiendo de lo que esta pasando en el proyecto.

La pregunta es entonces, que hacer con ese conocimiento de primera mano por parte del equipo? Dado que se planifica en forma continua, dado que los integrantes pueden (y deben) determinar la mejor forma de ejecutar un trabajo, se suma el feedback del equipo al inicio de cada planificacion.

3. Manage customer

3.1 General considerations

How to manage expectations

3.2. Minimum viable product

Consideramos el producto minimo que podriamos liberar, con la minima cantidad de caracteristicas de forma de tener una idea real del mercado para nuestro reaccion.

4. Continuous change

 

Es mas que tolerancia a los cambios, es darle la bienvenida a los cambios entendiendo que los cambios traen un beneficio al negocio.

5. Value based analysis

5.1 What is value?

5.2 Cycle of decomposition & priorization

5.3 Agile games

6. Agile estimations

Las estimaciones de la forma tradicional implican que el lider del proyecto estima cuanto llevaria cada tarea, vuelca dichas estimaciones en un plan de trabajo y su equipo ejecuta. Si consideramos que estamos trabajando con metodologias agiles, donde el equipo tiene voz y voto, las forma en la cual se realizan las estimaciones tambien cambia y se busca involucrar al equipo.

6.1 Involving the team

6.1 Planning poker

6.2 Wideband Delphi

6.3 Ideal time

6.4 Affinity estimating

6.5 Relative sizing / story points

6.2 Involving risks

6.3 Involving uncertains

(Ideal time vs Real time)

7. Agile plans

7.1. Agile Plans

7.1.1 Agile vs Traditional plans

Los planes tradicionales son aquellos utilizados en metologias waterfalls, que contemplan un largo espacio de tiempo, planificando la totalidad del trabajo en su totalidad antes de empezar con la ejecucion y no benefician la realizacion de cambios (siempre pueden hacerse, pero requieren change request ademas de aprobacion de otras areas del negocio).

Los planes agiles en terminos generales, consideran la totalidad del tiempo del proyecto, pero solo el grado de planificacion es incremental: las tareas que se ejecutaran en el espacio de tiempo mas cercano se encuentran planificadas en su totalidad, en cambio aquellas con un horizonte mas lejano estan en consideracion y a la vista del equipo, pero no el detalle de como ejecutarlas.

Esto nos permite ganar en:

  • Tiempo y costo: solo se planifica aquello que se encuentra en un horizonte de tiempo tan corto, que la posibilidades de que se produzca un cambio son minimas, por lo tanto la posibilidad de que los recursos que se hallan empleado para planificar la tarea no sean aprovechados es minima.
  • Certeza: Con un horizonte de tiempo corto ganamos en certeza.
  • Resultados visibles al negocio: El negocio recibe un resultado a corto plazo y en base al mismo puede determinar si lo que obtiene es realmente lo que necesita y quiere y planificar cada una de las siguientes tareas de acuerdo a lo que recibio.

8. Iteraciones y Releases

Que es una iteracion? Que es una release? Como planificamos el trabajo del proyecto a traves de las sucesivas releases e iteraciones?

 

Team performance practices

The whole is greater than the sum of its parts

Common sense

Vivimos en un mundo donde los grandes exitos en investigacion, empresas, universidades, deportes se alcanzan trabajando en equipo. No basta con una sola persona para alcanzar un objetivo, debido a que los objetivos que buscamos alcanzar son tan complejos y dificiles, que para alcanzarlos dentro de un espacio de tiempo razonable, necesitamos trabajar con otros.

 

1. Construyendo al equipo

Un conjunto de personas no es un equipo, es solo un conjunto de personas, para llegar a alcanzar la categoria de equipo, y aun mas, de equipo de alto rendimiento, tan de boga en estos dias se requieren algunas cosas.

1.1. Que es un equipo

1.1.1. Definicion

A group of people with a full set of complementary skills required to complete a task, job, or project.
Team members (1) operate with a high degree of interdependence, (2) share authority and responsibility for self-management, (3) are accountable for the collective performance, and (4) work toward a common goal and shared rewards(s). A team becomes more than just a collection of people when a strong sense of mutual commitment creates synergy, thus generating performance greater than the sum of the performance of its individual members

1.1.2 Etapas en la formacion de un equipo

Un conjunto de personas deben pasar por un conjunto de etapas para consolidarse como equipo.

f0094_01

De acuerdo a la etapa en la que se encuentre el equipo varian:

  • Forma de comunicacion en el equipo
  • Tipo de gestion y direccion que ejerce el PM
  • Forma de resolver conflictos

1.2 All together

Coaching is done at two levels: the individual level and the whole-team level.

Screenshot 2017-09-24 17.33.03

1.3. El poder al equipo

Existen distintas formas de trabajo y distintas formas de liderazgo, trabajando en metodlogias agiles, se vuelve mas y mas importante delegar el poder al equipo y que el equipo mismo sea quien se organice para resolver las tareas de cada iteracion, y se dirija determinando como resolver dichas tareas.

1.3.1 Self organizing teams

Es el reconocimiento a los equipos que sus integrantes estan en mejores condiciones de resolver como organizar el trabajo de forma tal de alcanzar un objetivo determinado por el management de la compania.

1.3.2 Self directing

Es el reconocimiento a los equipos que ellos en su conjunto pueden tomar las mejores desiciones acerca de como abordar una tarea.

2. Internal Enviroment

Ya hablamos de que es un equipo, como ayudar al equipo a que alcance su maximo rendimiento y como darle poder a ese equipo. Alrededor de los equipos esta el ambiente donde desarrollan sus actividades y como idealmente deberia ser su entorno de forma de alcanzar el maximo potencial.

2.1 Caves and common

Estamos hablando de una forma de organizarnos en la cual existen espacios comunes en los cuales trabajamos dia a dia, y en los cuales todo el equipo esta junto, y espacios en los cuales los integrantes de un equipo pueden estar aislados para tareas que requieran cierta dosis de concentracion o privacidad.

2.2 Osmotic communication

Si bien deberia ser meridianamente claro que representa la osmotic communication, por aquello de osmotic, el primer paso para entender completamente el concepto seria dar una revision a la palabra osmotic:

the tendency of a fluid, usually water, to pass through a semipermeable membrane into a solution where the solvent concentration is higher.

Cuando sumamos el concepto de osmosis a la comunicacion nos estamos refiriendo a la comunicacion que se obtiene solo por estar en el mismo lugar fisico, cuando las distancias entre dos personas son lo suficiente pequenas para tener el espacio necesario para concentrarse pero tambien para hablar entre ellas sin divisiones ni barreras.

3. Flexible teams

Vivimos en un mundo globalizado, donde la forma de trabajo es tan distinta a la que dio por inicio las oficinas tradicionales, que muchas de las reglas y preconceptos  que eran utiles en esos momentos se volvieron obsoletas y se crearon otras.

Flexible work, including virtual teams, “one of the biggest drivers of transformation” in the workplace

3.1 Distributed teams

Para dimensionar el fenomeno del trabajo remoto algunos numeros:

3.2 Tools

Existen distintas herramientas que nos permiten hacer mas fluida la comunicacion entre los integrantes del equipo: Gtalk, Skype, Slack.. Con cada una de estas herramientas se busca minimizar las distancias fisicas y permitir un fluido pasaje de la informacion

3.3 Upsides & Downsides

Cuando hablamos de upsides y downsides referidas al trabajo de equipos distribuidos, nos enfocamos en que puede pasar con el proyecto debido a que mi equipo no esta fisicamente en la misma oficina: existen ventajas? existen problemas? algo puede ser al mismo tiempo una ventaja y un problema?

3.3.1. Upsides

La comunicacion se hace mas controlada, y se tiene un mejor registro de quien dijo y cuando lo dijo, ya que todo queda registrado ya sea en un medio electronico o bien las notas de las reuniones.

3.3.2. Downsides

Se pierde la comunicacion que se da todos los dias en la oficina como parte del dia a dia y de compartir un mismo espacio fisico.

 

Emotional Intelligence & Soft skills

Emotional Intelligence – EQ

is the level of your ability to understand other people, what motivates them and how to work cooperatively with them

Howard Gardner

Trabajamos con gente, con el objetivo de sacar un proyecto adelante tratando de que  herramientas, el contexto y las presiones muchas veces nos hacen perder de vista que trabajamos con personas.

Estamos buscando el exito del proyecto, y para alcanzarlo necesitamos que nuestro equipo sea mas eficiente que la suma de sus partes, esto es que se produzca una sinergia que nos permita obtener como equipo algo mucho mayor a lo que podria alcanzar por separado cada uno de sus integrantes.

Como maximizar los resultados de un proyecto, como hacer que una sumatoria de personas se tranforme en un equipo? Implica entender emocialmente a las personas y utilizar las habilidades blandas para maximizar la capacidad del todo como equipo sin perder de vista a la minima unidad: la persona.

I) Inteligencia emocional

La inteligencia emocional implica como logramos influir en las emociones tanto nuestras como las aquellos que nos rodean.

 

II) Habilidades blandas

 

  1. Negotiation
  2. Active listening
  3. Facilitation methods
  4. Globalization, culture and team diversity
  5. Conflict resolution
  6. Distributed team
  7. Participatory decision models

III) Liderazgo

Al hablar de habilidades blandas tambien hablamos de liderazgo. El liderazgo es la habilidad de influir en un grupo de personas, lo cual implica que el lider de un equipo influye en todos sus integrantes, en su forma de comunicarse, de resolver conflictos, de aceptar otras culturas, otras formas de comunicarse y de pensar.

Servant Leadership

Es una nueva forma de ejercer liderazgo, que implica salir del rol tradicional donde el lider ejerce poder para pasar a una forma de trabajo en la cual se reconoce que el equipo tiene el poder, y que la mejor forma de alcanzar los mejores resultados pasa por ayudar al equipo.

Es posible caracterizar de cuatro formas como el lider puede ejerce el rol de servir al equipo:

  1. Proteger al equipo de interrupciones
  2. Remover impedimentos
  3. Comunicar continua sobre la vision del proyecto
  4. Food and water.

 

Agile methodologies: Stakeholders

Stakeholder, todo aquel afectado por el proyecto

Un stakeholder es toda aquella persona o entidad afectada por el proyecto a desarrollarse. Un desarrollador es un stakeholder, asi como todo el equipo que trabaja en el proyecto, pero tambien son stakeholders todos aquellos que se ven afectados por el proyecto como por ejemplo otras areas de la compania y el cliente.

Stakeholder management

La gestion de los interesados en el proyecto requiere en primer lugar entender que es lo que ellos esperan del proyecto, encontrar una forma de comunicacion que permita un ida y vuelta productivo y efectivo y dentro de esa comunicacion tener las herramientas para que si se produce algun tipo de conflicto poder gestionarlo adecuadamente.

I) Entendiendo las necesidades de los distintos stakeholders

Entender lo que otra persona quiere, sin importar el contexto es complicado: no todo lo que queremos se dice, no siempre se entiende o quiere entender lo que el otro explica, y tambien estan las complicaciones idiomaticas.

Para minimizar los posibles ruidos entre lo que se dice y lo que realmente se quiere, se recomienda usar distintos tipos de herramientas de forma de plasmar las ideas en algo concreto que el cliente pueda visualizar y que permita que todos alcancen un entendimiento comun con relacion al proyecto.

Idealmente deberian:

  • Ligeros, una bonita forma de decir, no pierdas un monton de tiempo haciendo las maquetas mas lindas del mundo.
  • Especificos al objetivo de negocio que se trata de representar
  • Tangibles (volver al punto de Ligeros) y Accionables.
  •  Permitir que tanto el cliente como el equipo de desarrollo esten de acuerdo, es decir que halla un mutuo entendimiento.

Wireframe

Son las maquetas de toda la vida, solo que mas ligeras, mas desprolijas y ahora con un nuevo nombre. Sirven para prototipar el comportamiento de un parte del sistema o de todo el sistema.

Personas

Tal como su nombre lo indica nos referimos a las “personas” que se ven afectadas por el proyecto en forma generica, y les sumamos las caracteristicas y los comportamientos que las unifican. Permite de una forma mas tangible, que el equipo pueda ponerle una cara a determinados comportamientos que el sistema debe cumplir.

User Stories

Las user stories son aquellas historias que reflejan las necesidades del negocio. O por ponerlo de una forma aun mas sencilla necesidades de un ente.

Cual es el formato de una user story? Usuario-Funcionalidad-Beneficio de negocio.

Yo (como escritora de este libro), necesito cafe, para poder seguir escribiendo.

Given,When, Then

Se utiliza para historias que no estan asociadas a una funcionalidad determinada.

INVEST

Es el acronimo que unifica las caracteristicas que debe cumplir una user story para poder ser verdaderamente efectiva.

  1. Independiente
  2. Negociable
  3. Valuable
  4. Estimatable
  5. Small
  6. Testeable

User story backlog

Es un listado de todas las historias del proyecto al dia de la fecha. Al trabajar con metodologias agiles este listado puede cambiar en cualquier momento del proyecto.

II) Comunicandonos con los stakeholders

La primera parte del inicio de nuestra relacion con el negocio es entender que es lo que el negocio quiere y necesita, la segunda parte de comunicarnos con ellos.

De acuerdo a la forma que elijamos para comunicarnos con los stakeholders podremos maximizar la efectividad.

Definicion de comunicacion

Tipos de comunicacion

De acuerdo al tipo de comunicacion que utilicemos mayor va a ser su efectividad.

Radiadores de informacion

Son todas aquellas herramientas que permitan dispersar la informacion:

  • Pizarra basica
  • Product List for the project and for the current iteration
  • Burn Down Chart
  • Burn Up Chart
  • Velocity tracking chart

III) Conflictos en el projecto

En todo ambito se presentan los conflictos, lo ideal es encontrar la forma de gestionar los mismos de una forma que se transformen en una oportunidad para intercambiar ideas, para que el equipo de trabajo madure y que el proyecto mismo se vea beneficiado.

De acuerdo a la severidad del conflicto se puede determinar cual es el mejor curso de accion para reencausar el problema inicial y reestablecer un buen ambiente de trabajo.

09-01

https://dzone.com/articles/agile-managing-conflict

Agile methodologies: Value-driven development

Only delivering value, a project has value.

Las metodologias agiles se aplican en entornos con un grado de incertidumbre alto (porque usamos metodologias agiles), donde se busca entregar valor tan pronto como sea posible, en vez de orientarse al seguimiento de un plan.

Ahora bien, para lograr entregar valor en un proyecto se requiere del trabajo conjunto entre el area de desarrollo y el area del negocio, de forma tal ambas logren trabajar como un equipo a lo largo de la vida del proyecto.

Entendiendo que negocio y desarrollo deben trabajar juntos existen preguntas que deben responderse antes del inicio del proyecto y actualizarse a lo largo de toda la vida del mismo:

  1. Como se mide el valor de un proyecto?
  2. Como se entrega valor al cliente?

 

Agile methodologies: Similarities and differences

Even when all agile methodologies share a common background (it’s not the same than a common origin), there are remarkable differences between them as well as common points.

The most significant differences between them are:

  • Flexibility at the moment of the implementation: Scrum and XP recommend to be applied following the guidelines for each one avoiding modifications. On the other hand, Lean and Kanban recommend and encourage tailoring.
  • Roles included in each one: While Scrum always has a product owner, that kind of figure doesn’t even exist in Kanban.
  • Main use for each methodology: Scrum excels in team managing on agile environments, while XP excels as a tool to organise the work of the development team.

 

Agile Methodologies: The most well-known

Even when there are thousand of methodologies used nowadays, the most well known agile methodologies are Scrum and XP. Let me introduce both to you, plus others perhaps not so spread but even used and agile: Lean and Kanban.

Hybrid approach

There are methodologies used together, in a mixed approach when the decision to use both together is based on the strategy to take the best strengths of both. Following there are some example about that point

  • Kanban and Scrum: Kanban facilitates the spread of the common information, and Scrum is used to manage the project.
  • Scrum and XP: Scrum is used to manage the project and XP help to organise the team.
  • General practices from Lean could be implemented with any agile methodology.

 

General ideas about Scrum, XP, Lean and Kanban

Scrum

XP

Lean

Kanban

 

Agile methodologies: Principios y valores

 

Las metodologias agiles estan orientadas al cliente y requieren su participacion a lo largo del proyecto al mismo tiempo realizan entregas continuas,

Agile Methodologies in a nutshell

Agile 101

Existen multiples metodologias agiles que se estan utilizando en estos dias, todas comparten valores comunes: flexibilidad, satisfacer al cliente en primer termino, facilitar la incorporacion de cambios sin importar en la etapa en la que se encuentre el proyecto, realizar entregas continuas, trabajar en conjunto con el negocio…

Estos principios y valores fueron detallados por primera vez en el Manifiesto Agil, por un conjunto de expertos en software y metodologias en un intento de plasmar las ideas detras de las metodologias agiles.

Y si bien son ideas que fueron plasmadas en 2009, lo cual en tecnologia podria ser una vida o varias, siguen vigentes dado que son principios lo suficientemente generales como para ser aplicados a cualquier proyecto (no solo de software).

Cuales son los principios del Manifiesto Agil?

  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  4. Business people and developers must work together daily throughout the project.
  5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  7. Working software is the primary measure of progress.
  8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  9. Continuous attention to technical excellence and good design enhances agility.
  10. Simplicity — the art of maximizing the amount of work not done — is essential.
  11. The best architectures, requirements, and designs emerge from self-organizing teams.
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Cuales son los principios del Manifiesto Agil?

Principio 1: Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

El objetivo de todo proyecto es satisfacer al cliente “Our highest priority is to satisfy the customer”, esto es, que el cliente este conforme con el producto que se le entrega y que el mismo cumpla las especificaciones acordadas. Pero que pasa cuando las especificaciones iniciales no son claras, o van cambiando a lo largo de la vida del proyecto: el producto final no satisface las expectativas del cliente.

Al trabajar con metodologias agiles, “early and continuous delivery ” marca todo un cambio: no se espera que las especificaciones esten terminadas, sino que se va a construyendo el producto y se va entregando al cliente, y es a traves de ese proceso continuo que el cliente va “descubriendo” en la realidad como quedara el producto terminado y eso mismo le permite ir modificandolo en las sucesivas y posteriores entregas.

Finalmente se indica que los entregables deben ser “valuable software”: “software” es un entregable, no gantts, no planes, no requerimientos, software puro y simple, y “valuable” donde nos marca que debe tener valor para el negocio, e idealmente deberia poder desplegarse en produccion desde la primera entrega.

Principio 2: Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

 

Agile methodologies: the beginning

Agile methodology was developed in response to a problem: software projects were coming in over deadline and over budget.

Agile 101 in a nutshell

Las metodologias tradicionales utilizan un enfoque estructurado conocido como cascada que requieren que los requerimientos sean bien conocidos por el negocio, asi como que los mismos esten totalmente detallados antes de empezar a construir el software y no sufran modificaciones a lo largo de la vida del proyecto.

En proyectos realizados en entornos bien conocidos y estables, puede utilizarse cascada, sin embargo que pasa en los casos que el ambiente es inestable o no tan bien conocido?

Podriamos decir que en terminos generales, todos los entornos tienen un grado de inestabilidad, lo que genera que los requerimientos cambien, varien o se vean afectados por el contexto politico, economico y social en el cual las empresas se desenvuelven.

De forma de minimizar y gestionar dichos cambios, fueron surgiendo pequenas modificaciones en el enfoque tradicional en pos de balancear los cambios que podia sufrir un proyecto a lo largo de su desarrollo. Llegado un punto las pequenas modificaciones empezaron a tener ciertos valores comunes los cuales fueron formalizados a traves del Manifiesto Agil.

El Manifiesto Agil detalla valores y principios acerca de las metodologias agiles, y si bien no senalan el comienzo de las mismas, tampoco indican su fin, pero si son uno de los mejores intentos de definir que es una metodologia agil.

Sources: