Caractéristiques de livraison dans les grands projets

Tout produit actuellement dans le magasin est menacé de libération. Notre projet ne fait pas exception. Nous travaillons selon la méthodologie Scrum, le développement est divisé en sprints, généralement les sprints ne sont pas limités dans le temps, mais sont divisés en périodes de temps en fonction de la portée du sprint. À la suite du sprint, l'application est généralement publiée sur le magasin, qui comprend de nouvelles fonctionnalités et quelques corrections de bugs.


Cependant, en raison des spécificités du projet, toutes les fonctionnalités ne tombent pas immédiatement dans la version à la fin du sprint. En raison de cette approche, des fonctionnalités ne peuvent pas être publiées sur le prod. Avec tout cela, personne n'a annulé les bogues critiques, les corrections mineures et juste la sortie de fonctionnalités prêtes à l'emploi. Il existe plusieurs types de versions:


  • Développement itératif. Sortie de fonctionnalités prêtes à l'emploi et convenues.
  • Temps différent d'acceptation des fonctionnalités. Chaque fonctionnalité a une priorité différente de la part du client, ce qui affecte définitivement les dates de sortie des fonctionnalités toutes prêtes à l'emploi.
  • Bogues critiques et SLA. Si vous rencontrez de réels problèmes sur les assemblages de vente, vous devez corriger le bogue et lancer la mise à jour dès que possible.

Dans le contexte des rejets constants, la question se pose: "Comment conduire le développement?".
Après tout, chaque développeur doit effectuer des tâches, créer des branches pour ces tâches et les fusionner quelque part à la fin.


image


Dans un premier temps, une approche par branche de fonctionnalités a été organisée en studio, regardons son concept, mettons en avant les avantages et les inconvénients.


image


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


image


, . , 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
}

, , , « » .


image



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


:


  • FeatureToggle.
  • , , .

:


  • .
  • .
  • .
  • .
  • , .

?


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


, :



!


P.S.: . , .


All Articles