En nuestra página de cultura, describimos nuestro credo como equipo y como organización y aunque nos describimos como una organización 100% digital, aún no estamos en la etapa donde estamos desarrollando el software que soportará nuestro negocio, por lo que puede que te preguntes ¿cómo es que en T-share aplican buenas prácticas de XP?

Para responder a esta pregunta, continua leyendo y te lo contaremos.

¿Qué es XP?

Extreme Programming (XP) es un marco de desarrollo de software ágil creado por Kent Beck en 1999, que tiene como objetivo principal producir software de mayor calidad y mayor calidad de vida para el equipo de desarrollo. XP es el más específico de los marcos ágiles con respecto a las prácticas de ingeniería apropiadas para el desarrollo de software.

XP es un enfoque de desarrollo de software basado en valores y principios que cuando los analizamos detenidamente no damos cuenta que son aplicables a cualquier equipo de trabajo y que ayudarán a un equipo a convertirse en un equipo de excelencia y alto rendimiento.

Los valores de XP

Los valores de XP representan la mentalidad del equipo, incentivando así a que como equipo se haga todo lo posible en el camino hacia el logro de un objetivo común, estos valores pueden abstraerse de modo que se apliquen en cualquier equipo y cualquier entorno sin considerar inicialmente que ese objetivo es software de calidad.

Valores de XP
  • Comunicación: El trabajo que un equipo debe desarrollar para cumplir un objetivo, se puede comparar con un deporte de equipo que se basa en la comunicación para transferir el conocimiento de un miembro del equipo a todos los demás miembros del equipo. XP enfatiza la importancia del tipo apropiado de comunicación: discusión cara a cara con la ayuda de una pizarra blanca u otro mecanismo de dibujo.
  • Simplicidad: La simplicidad significa "¿qué es lo más simple que funcionará?" El propósito de esto es evitar el desperdicio y hacer solo cosas absolutamente necesarias, como hacer el trabajo lo más simple posible para que sea más fácil de mantener, respaldar y revisar. La simplicidad también significa abordar solo los requisitos que usted conoce; no intentes predecir el futuro.
  • Retroalimentación: A través de comentarios constantes sobre sus esfuerzos anteriores, los equipos pueden identificar áreas de mejora y revisar sus prácticas (Kaizen). La retroalimentación también admite un diseño simple. Su equipo construye algo, recopila comentarios sobre su diseño e implementación, y luego ajusta su producto en el futuro.
  • Valor: Kent Beck definió el coraje como "acción efectiva frente al miedo" (Libro Programación extrema explicada, página. 20). Esta definición muestra una preferencia por la acción basada en otros principios para que los resultados no sean perjudiciales para el equipo. Necesita valor para plantear problemas organizativos que reducen la eficacia de su equipo. Necesitas valor para dejar de hacer algo que no funciona y probar otra cosa. Necesitas coraje para aceptar y actuar en respuesta, incluso cuando es difícil de aceptar.
  • Respeto: Los miembros del equipo deben respetarse mutuamente para comunicarse entre sí, proporcionar y aceptar comentarios que honren su relación, y trabajar juntos para identificar diseños y soluciones simples.

A pesar de que XP nace como una práctica de desarrollo de software, se fundamenta en valores que pueden ser abrazados y aplicados por cualquier organización y equipo de trabajo, tal como lo hemos hecho en T-share.

Diccionario T-share: Esfuerzo

Principios de XP

Los principios de XP derivan de los valores pero tienen la intención de reflejarlos de maneras más concretas.

  • Realimentación rápida (Rapid feedback) - los miembros del equipo, piden retroalimentación, la entienden y reaccionan de inmediato de acuerdo a lo recibido.
  • Asumir simplicidad (Assume simplicity) - los miembros del equipo deben centrarse en el trabajo que es importante en este momento, lo que se ha planificado, lo que se ha comprometido como entregable. Tienen presente acrónimos como YAGNI = You Ain’t Gonna Need It y DRY = Don’t Repeat Yourself.
  • Cambio incremental (Incremental change) - aplicar pequeños cambios al producto funciona mejor que grandes cambios hechos a la vez.
  • Abrazar el cambio (Embracing change) - Si un cliente piensa que un producto necesita ser cambiado, nuestro equipo de desarrollo debe apoyar esta decisión y planear cómo implementar nuevos requisitos.
  • Trabajo de calidad (Quality work) - un equipo que trabaja bien hace un producto valioso, con calidad y se siente orgulloso de ello.

Estos valores y principios en resumen profesan que la excelencia es un hábito, por eso en T-share nos identificamos día a día con estos principios y los llevamos en nuestro ADN.

Diccionario T-share: Éxito

Prácticas de XP

XP, además de los valores y principios involucra ciertas prácticas de ingeniería de software que en conjunto logran crear una cultura de equipo de excelencia. No explicaremos las prácticas en este post, pero sí las mencionaré, ya que como he comentado al inicio aun no llegamos a aplicar las prácticas relacionadas con desarrollo de software.

  • The Planning Game
  • Small Releases
  • Metaphor
  • Simple Design
  • Testing
  • Refactoring
  • Pair Programming
  • Collective Ownership
  • Continuous Integration
  • 40-hour week
  • On-site Customer
  • Coding Standard

En T-share basamos nuestra cultura de trabajo en los principios y valores de XP creamos una atmósfera competitiva pero motivacional, donde todos apreciamos el trabajo de cada uno de los compañeros, entregamos trabajo valioso rápidamente porque podemos distinguir las tareas relevantes de las innecesarias. Reaccionamos rápidamente a la retroalimentación dándose cuenta de que es una crítica razonable dirigida a hacer un producto, trabajo y equipo mejor, promoviendo la mejora continua.