Características características de entrega en grandes proyectos

Cualquier producto que se encuentre actualmente en la tienda está amenazado con lanzamientos. Nuestro proyecto no es la excepción. Trabajamos de acuerdo con la metodología scrum, el desarrollo se divide en sprints, generalmente los sprints no están sujetos al tiempo, pero se dividen en períodos de tiempo dependiendo del alcance del sprint. Como resultado del sprint, la aplicación generalmente se lanza a la tienda, que incluye nuevas características y algunas correcciones de errores.


Sin embargo, debido a las características específicas del proyecto, no todas las funciones entran inmediatamente en el lanzamiento al finalizar el sprint. Debido a este enfoque, aparecen características que no se pueden lanzar al producto. Con todo esto, nadie ha cancelado errores críticos, correcciones menores y solo el lanzamiento de funciones listas para usar. Existen varios tipos de lanzamientos:


  • Desarrollo iterativo. Lanzamiento de funciones preparadas y acordadas.
  • Diferente momento de aceptación de características. Cada función tiene una prioridad diferente por parte del cliente, lo que definitivamente afecta las fechas de lanzamiento de incluso las funciones listas para usar.
  • Errores críticos y SLA. Si encuentra problemas reales en las compilaciones de ventas, debe corregir el error y lanzar la actualización lo antes posible.

En condiciones de emisiones constantes, surge la pregunta: "¿Cómo llevar a cabo el desarrollo?".
Después de todo, cada desarrollador debe realizar tareas, hacer ramificaciones para estas tareas y, en algún momento, fusionarlas.


imagen


Inicialmente, el enfoque de "ramas de características" se organizó en el estudio, veamos su concepto, destaquemos los pros y los contras.


imagen


. , , FeatureBranch, DevBranch. , , , , FeatureBranch .


imagen


, . , 100% , , . , - swift , , , , xib , . , .


?


  • .
  • .
  • .

:


  • .
  • .
  • .
  • .

, . , , .


FeatureToggle


, . FeatureToggle , A/B / . , .


, . , . , - , «-» .


:


public final class FeatureToggle {

    public enum SomeFeature {
        public static var isEnabled = true
        public static var useMocks = false
    }

}

, . . , , .. , , .


, . , - .


if FeatureToggle.SomeFeature.isEnabled {
    // Should show feature
} else {
    // Should hide feature
}

, , , « » .


imagen



– . FeatureToggle. , , , . , , . , , , , .


:


  • FeatureToggle.
  • , , .

:


  • .
  • .
  • .
  • .
  • , .

?


, . , , . — . – , . , . , , .


, :



!


P.S.: . , .


All Articles