Skip to main content

Desarrollo paralelo

Cuando múltiples equipos trabajan en los mismos rulesets de aplicación, la coordinación de los cambios entre los equipos se vuelve un reto. Cuando los equipos de desarrollo configuran una aplicación en paralelo, los cambios en las reglas podrían generar conflictos. Resolver conflictos con mucha frecuencia altera el proyecto en general y puede demorar el tiempo de entrega.

Ramas

Pega Platform™ utiliza ramas para ayudar a los equipos a manejar el desarrollo paralelo en entornos distribuidos. Una rama es un contenedor de rulesets con registros que se someten a desarrollo y cambios rápidos. Los rulesets asociados con una rama se llaman rulesets de rama.

Un ruleset de rama se caracteriza por lo siguiente:

  • Está basado en otro ruleset (es una ramificación de este).
  • Contiene reglas que están en desarrollo activo en la rama asociada.

Las ramas son muy útiles para proyectos de desarrollo tanto a gran escala como a pequeña escala, en donde uno o más equipos trabajan de manera simultánea en las reglas de una aplicación. Por ejemplo, en un escenario hipotético de un equipo, tres miembros pueden trabajar en una característica, mientras los otros dos miembros trabajan en otra característica sin preocuparse por interferir con el desarrollo de los otros. En un escenario de múltiples equipos, las ramas ayudan a un equipo a trabajar de manera simultánea en las reglas de una aplicación sin preocuparse por sobrescribir el trabajo de otro equipo.

Las ramas benefician también el desarrollo de características cuando el tiempo de finalización de cada una es distinto. Por ejemplo, si dos características se desarrollan de manera simultánea, pero el desarrollo de la primera finaliza antes que el de la segunda, las ramas aseguran que los equipos no tengan que esperar hasta que ambas características finalicen. Como la segunda característica está en un estado inestable y su código está directamente en su ruleset principal, desarrollar en una rama específica para la primera característica permite que el desarrollo de la aplicación continúe a pesar de que aún deba seguir trabajando en la característica no finalizada. 

Una estrategia frecuente a la hora de crear una aplicación en Pega Platform es crear una rama para cada característica que desarrolle su equipo. Una rama dedicada a cada característica le permite a su equipo desarrollar cada característica de forma independiente en un espacio aislado (la rama) sin afectar a los otros equipos. Por ejemplo, su equipo crea una rama para cambiar las propiedades en un formulario y crea otra rama para cambiar una sección de UI. Los cambios no afectan a los otros equipos sino hasta que sean cambios estables, se resuelvan los conflictos y se otorgue la aprobación para hacer que los cambios estén disponibles para todos los equipos de desarrollo.

Compruebe sus conocimientos con la siguiente actividad:

Gestión del ruleset en ramas

Cada equipo de desarrollo en Pega crea su propia rama y sus propios rulesets de rama para gestionar el desarrollo independiente de las características que comparten rulesets. Para evitar afectar el trabajo de otros equipos, cada equipo trabaja además en una aplicación de desarrollo que se construye desde la aplicación principal. 

Aplicaciones de desarrollo

Para acelerar el desarrollo de una aplicación, puede respaldar el desarrollo en ramas creando una aplicación de desarrollo que esté compilada a partir de la aplicación de producción. Crear una aplicación de desarrollo no es obligatorio, pero proporciona un proceso de desarrollo ininterrumpido, en especial para equipos de desarrollo múltiples o de gran tamaño que trabajan en la misma aplicación. Si sus desarrolladores trabajan en grupos separados y se beneficiarían de entornos de desarrollo más aislados, considere crear otra aplicación sobre la base de la aplicación principal para cada equipo. Como resultado, los nombres de las clases y los rulesets permanecen inalterados. 

En su aplicación de desarrollo, puede agregar la aplicación principal como una aplicación incorporada y brindar acceso a su aplicación a los miembros del equipo. Este acceso asegura que los diferentes equipos y sus miembros puedan trabajar en diferentes características de manera simultánea, sin el riesgo de generar conflictos o introducir errores. Cada equipo trabaja en su propia aplicación de desarrollo y no ve el trabajo de los otros equipos, por lo que no sufre distracciones ni conflictos. Por ejemplo, los miembros de un equipo pueden trabajar en la solución de bugs que corresponden a dos características separadas, pero utilizan la misma regla como base. Mientras tanto, otro equipo desarrolla más funcionalidades relacionadas con una de esas características. Cada equipo puede fusionar los cambios de manera conveniente una vez completado el desarrollo de su rama.

Nota: Para obtener más información sobre cómo fusionar ramas, consulte Fusión de las ramas en rulesets de destino.

Imaginemos que dos equipos de desarrollo crean características para una nueva aplicación. Los cambios que realiza cada equipo impactan en los mismos rulesets de la aplicación. Para desarrollar reglas en paralelo mediante rulesets de rama, cada equipo sigue estos pasos:

  1. Crea una aplicación para el equipo que esté compilada a partir de la aplicación principal.
    Tip: Para crear la aplicación del equipo, considere guardar una copia de la aplicación principal. De este modo, los nombres de las clases y los rulesets permanecerán inalterados. 
  2. Crea una o más ramas de desarrollo en la aplicación del equipo.
  3. Otorga acceso a la aplicación del equipo a los desarrolladores.
  4. Crea ramas en la aplicación del equipo según sea necesario.
  5. Crea o actualiza las reglas usando las ramas.
  6. Resuelve cualquier conflicto entre las ramas y la aplicación.
  7. Fusiona cada rama a los rulesets de la aplicación del equipo una vez que el desarrollo en las ramas esté completo y estable.
Nota: Para obtener más información sobre la creación de aplicaciones de desarrollo, consulte Creación de aplicaciones de desarrollo.

Después de resolver cualquier conflicto entre la aplicación del equipo y su rama, el equipo fusiona los contenidos de su rama con los rulesets de la aplicación principal. La siguiente imagen muestra la estructura de la aplicación principal, las aplicaciones de los equipos y las respectivas ramas de los equipos. 

branches
Nota: Para obtener más información sobre las ramas, consulte Ramas y rulesets de rama.

Creación y utilización de las ramas

Mediante ramas y rulesets de rama, un equipo de desarrollo crea su aplicación de equipo y las ramas de desarrollo para implementar una característica en una aplicación sin afectar a otros equipos de desarrollo. Después de que el equipo resuelve cualquier conflicto de reglas, el sistema automáticamente verifica qué reglas están actualizadas y qué reglas no existen en la aplicación del equipo antes de fusionar las reglas actualizadas de la rama en la aplicación principal.

El siguiente escenario describe cómo las ramas le permiten a un equipo actualizara una aplicación sin afectar a un segundo equipo.

Tanto el equipo Alfa como el equipo Beta están actualizando una aplicación de incorporación de empleados. Uno de los tipos de casos en la aplicación le permite a un nuevo empleado registrarse para recibir un depósito directo de su salario en su cuenta bancaria.

Al equipo Alfa se le asigna una historia de usuario para mejorar la experiencia de los usuarios cuando identifican una cuenta bancaria para el depósito directo. La implementación actual requiere que los usuarios ingresen el nombre del banco y el número de enrutamiento, lo que genera errores de procesamiento debido a entradas incorrectas. El propietario del producto desea reducir los errores permitiéndoles a los usuarios seleccionar el banco desde una lista desplegable que proporciona el número apropiado de enrutamiento de ABA de manera automática. Al mismo tiempo, debido a un cambio reciente en el código impositivo, al equipo Beta se le asigna la tarea de actualizar el cálculo del impuesto que se le debe retener al empleado.

Aunque cada equipo trabaja de manera independiente, ambas características involucran cambios en las reglas de los mismos rulesets: HR, HRApps y HRAppsInt.

En la siguiente imagen, haga clic en los íconos + para obtener más información sobre cómo los rulesets de ramas le permiten al equipo Alfa actualizar la UI sin afectar el trabajo que ejecutó el equipo Beta.

Compruebe sus conocimientos con la siguiente actividad:


This Topic is available in the following Module:

If you are having problems with your training, please review the Pega Academy Support FAQs.

¿Le ha resultado útil este contenido?

¿Quiere ayudarnos a mejorar este contenido?

We'd prefer it if you saw us at our best.

Pega Academy has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice