Apresenta recursos de entrega em grandes projetos

Qualquer produto que esteja atualmente na loja está ameaçado com lançamentos. Nosso projeto não é exceção. Trabalhamos de acordo com a metodologia scrum, o desenvolvimento é dividido em sprints, geralmente os sprints não têm limite de tempo, mas são divididos em períodos de tempo, dependendo do escopo do sprint. Como resultado do sprint, o aplicativo geralmente é lançado na loja, que inclui novos recursos e algumas correções.


No entanto, devido às especificidades do projeto, nem todos os recursos caem imediatamente na versão após a conclusão do sprint. Devido a essa abordagem, aparecem recursos que não podem ser liberados para o produto. Com tudo isso, ninguém cancelou bugs críticos, pequenas correções e apenas o lançamento de recursos prontos. Existem vários tipos de lançamentos:


  • Desenvolvimento iterativo. Lançamento de recursos prontos e acordados.
  • Tempo diferente de aceitação dos recursos. Cada recurso tem uma prioridade diferente por parte do cliente, o que definitivamente afeta as datas de lançamento dos recursos já prontos.
  • Erros críticos e SLA. Se você encontrar problemas reais nas compilações de vendas, precisará corrigir o erro e lançar a atualização o mais rápido possível.

No contexto de lançamentos constantes, surge a pergunta: "Como conduzir o desenvolvimento?".
Afinal, cada desenvolvedor deve executar tarefas, criar ramificações para essas tarefas e, em algum lugar no final, fundi-las.


imagem


Inicialmente, a abordagem “ramos de recursos” foi organizada em estúdio, vamos olhar para o seu conceito, destacar os prós e os contras.


imagem


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


imagem


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

, , , « » .


imagem



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


:


  • FeatureToggle.
  • , , .

:


  • .
  • .
  • .
  • .
  • , .

?


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


, :



!


P.S.: . , .


All Articles