SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
Git Flow: un processus de
  développement Agile

        Xavier HAUSHERR
A propos




            Xavier HAUSHERR
                     CTO

           Twitter: @xkobal
           Blog: xavier.over-blog.com
Git Flow: un processus de développement Agile




          Le projet Overblog
Qui sommes nous ?

Né en 2004, Overblog est la plateforme de blogs Européenne n°1.

Nous sommes la première plateforme a avoir mis en place le partage
de revenu publicitaire généré par l’audience.

La nouvelle version est sortie en Juin 2012 avec un très bon retour des
blogueurs. Elle ne cesse depuis d’évoluer fonctionnellement.

C’est aussi:
 3 millions de blogs dans 5 langues
 38 millions de visiteurs uniques par mois
 275 millions pages vues par mois
 16ème audience française
 Plus de 80 serveurs pour servir les blogs
Nom de code «Kiwi»

Refonte complète du produit
Une forte orientation vers les réseaux sociaux
Une équipe de 10 personnes



Utilisation de nouvelles technologies
Nouvelle architecture
Un projet orienté service



7 mois de développement
1 année d’évolution
Sortie de nouvelles fonctionalités avant l’été
Git Flow: un processus de développement Agile




      Du cycle en V à l’agilité
Evolution du process

   - Planning en V
   - Gantt
   - Flou au démarrage
   - Manque de spécifications fonctionnelles
   - Evolution très rapide des besoins produits




                       Scrum
Equipe Scrum


• Développeurs
• Scrum Master
• Product Owner


• Business Owner
• Stackholders
• Quality Manager
Scrum
Détail d’un sprint Scrum chez Overblog

Semaine 1       Lundi             Mardi          Mercredi           Jeudi          Vendredi

            Sprint Planning   Daily Meeting    Daily Meeting    Daily Meeting    Daily Meeting




             Mise en Prod
             Release n-1      Poker Planning                    Poker Planning




Semaine 2       Lundi             Mardi          Mercredi           Jeudi          Vendredi
            Daily Meeting     Daily Meeting    Daily Meeting    Daily Meeting    Daily Meeting

                                                                Debug / Refacto Debug / Refacto

                                                                Demo             Code Review

            Poker Planning                     Feature Freeze                    Retrospective
Nos besoins de développement Agile




Coder sans mettre en péril le projet
Travailler à deux ou plus sur des features
Tester chaque fonctionnalité avant mise en production
Intégration continue pour certaines fonctionnalités
Release pour les grosses fonctionnalités
Gestion des urgences
Être accepté par l’équipe Scrum
Git Flow: un processus de développement Agile
                                                            feature-*          master   release-*          hotfix-*   stable

                                                                                                                              Tag 1.0


                                                                                               Bugfixes
                                                                                              Production




                                                                                                                              Tag 1.1




                        +                                                                     Intégration continue
                                                                                                                              Tag 1.2




                                                                                              Intégration continue
                                                                                                                              Tag 1.3




      Git Flow                             Github Flow

                                                            feature-*          master   release-*          hotfix-*   stable
                                                                 Feature for
                              Release 0                         next release                                                  Tag 1.0
                                             Feature for
                                           future release
                                                                                               Bugfixes




          =
                                                                                              Production




                                                                                                                              Tag 1.1




                                                                                              Intégration continue




Overblog Flow
                                                                                                                              Tag 1.2
                                                                                                     Start of
                               Feature                                                               release
                               Freeze                                                               branch for
                                                                                                       2.0




                                                                                                      Only
                                                                                                    bugfixes !



                               Mise en
                                                                                                                              Tag 2.0
                              production
Git flow
                              feature-*          develop            release-*             hotfix-*   master
                                   Feature for
Release 0                         next release                                                               Tag 1.0
               Feature for
             future release
                                                                              Bugfixes
                                                                             Production




                                                                                                             Tag 1.1




                                                                                    Start of
 Feature                                                                            release
 Freeze                                                                            branch for
                                                                                      2.0




                                                                                     Only
                                                                                   bugfixes !



 Mise en                                                                                                     Tag 2.0
production




                                  http://nvie.com/posts/a-successful-git-branching-model/
Git flow
            feature-*          develop
                 Feature for
Release 0       next release




                   Feature branches
Git flow
             feature-*   develop   release-*                master

Release 0                                                            Tag 1.0




                                                Start of
 Feature                                        release
 Freeze                                        branch for
                                                  2.0




                                                 Only
                                               bugfixes !



 Mise en                                                             Tag 2.0
production




                   Release branches
Git flow
                              feature-*   develop   release-*                master

Release 0                                                                             Tag 1.0
               Feature for
             future release




                                                                 Start of
 Feature                                                         release
 Freeze                                                         branch for
                                                                   2.0




 Mise en                                                                              Tag 2.0
production




                                Long feature branches
Git flow
               develop                     hotfix-*   master

Release 0                                                     Tag 1.0


                               Bugfixes
                              Production




                                                              Tag 1.1




            Hotfix branches
Nos besoins de développement Agile

Coder sans mettre en péril le projet
Travailler à deux ou plus sur des features
Tester chaque fonctionnalité avant mise en production
Intégration continue pour certaines fonctionnalités
Release pour les grosses fonctionnalités
Gestion des urgences
Être accepté par l’équipe Scrum




                                       Connection décentralisée
                                       Merge compliqué
                                       Qui merge ?
                                       Quand tester ?
Github Flow
                              feature-*          master
                                                 develop       release-*            hotfix-*    stable
                                                                                               master
                                   Feature for
Release 0                         next release                                                          Tag 1.0
               Feature for
             future release
                                                                        Bugfixes
                                                                       Production




                                                                                                        Tag 1.1




                                                                        Intégration continue
                                                                                                        Tag 1.2
                                                                             Start of
 Feature                                                                     release
 Freeze                                                                     branch for
                                                                               2.0




                                                                              Only
                                                                            bugfixes !



 Mise en                                                                Intégration continue
                                                                                                        Tag 1.3
                                                                                                            2.0
production
                                                Scott Chacon
                                 software developer & Git evangelist @Github

                               http://scottchacon.com/2011/08/31/github-flow.html
Github Flow
              feature-*         master         release-*            hotfix-*    stable

                                                                                        Tag 1.0


                                                        Bugfixes
                                                       Production




                                                                                        Tag 1.1




                                                        Intégration continue
                                                                                        Tag 1.2




                                                        Intégration continue
                                                                                        Tag 1.3


                                Scott Chacon
                 software developer & Git evangelist @Github

               http://scottchacon.com/2011/08/31/github-flow.html
Nos besoins de développement Agile

Coder sans mettre en péril le projet
Travailler à deux ou plus sur des features
Tester chaque fonctionnalité avant mise en production
Intégration continue pour certaines fonctionnalités
Release pour les grosses fonctionnalités
Gestion des urgences
Être accepté par l’équipe Scrum




                                       Plus de release
Overblog Flow
                              feature-*          develop
                                                 master    release-*          hotfix-*   master
                                                                                        stable
                                   Feature for
Release 0                         next release                                                   Tag 1.0
               Feature for
             future release
                                                                  Bugfixes
                                                                 Production




                                                                                                 Tag 1.1




                                                                 Intégration continue
                                                                                                 Tag 1.2
                                                                        Start of
 Feature                                                                release
 Freeze                                                                branch for
                                                                          2.0




                                                                         Only
                                                                       bugfixes !



 Mise en                                                                                         Tag 2.0
production
Overblog Flow
                              feature-*          master   release-*          hotfix-*   stable
                                   Feature for
Release 0                         next release                                                  Tag 1.0
               Feature for
             future release
                                                                 Bugfixes
                                                                Production




                                                                                                Tag 1.1




                                                                Intégration continue
                                                                                                Tag 1.2
                                                                       Start of
 Feature                                                               release
 Freeze                                                               branch for
                                                                         2.0




                                                                        Only
                                                                      bugfixes !



 Mise en                                                                                        Tag 2.0
production
Git Flow: un processus de développement Agile




Les Tests unitaires et fonctionnels
Un processus de déploiement Agile
                                                                    Prod Server




                                                                                    Fun
                                                                                        c   tion
                                                                                                 a   l Te
                                                                                                            sts

                                                             Production
                                                              delivery

                                                                                                    Te   sts
                                                                                          tio   nal
                                                                                       c
                                                                                   Fun
   Run Unit Tests                                                                                                 Quality Manager
                           V
                           Va
                              ll
                             id
                              da
                               at
                                 e
                                 e




                                                                                                  ts
                                   &
                                   &




                                                                                              es
                                     M




                                                                                            lT
                                       er
                                        rg




                                                                                          na
                                         gee



                                                                  Staging Server




                                                                                       io
                                          Pu
                                          Pu




                                                                                     ct
                                                                                      n
                                               lll R




                                                                                   Fu
                                                   R
                                                  eq
                                                   q   u
                                                       ue




   Unit
                                                        st
                                                        st




  Tests




                                                  sts
                                   Pull Reque

                                                                    Test Server
              Developers                                                             Product Owner
Un processus de déploiement Agile
                                                                    Prod Server




                                                                                    Fun
                                                                                        c   tion
                                                                                                 a   l Te
                                                                                                            sts

                                                             Production
                                                              delivery

                                                                                                    Te   sts
                                                                                          tio   nal
                                                                                       c
                                                                                   Fun
   Run Unit Tests                                                                                                 Quality Manager
                           V
                           Va
                              ll
                             id
                              da
                               at
                                 e
                                 e




                                                                                                  ts
                                   &
                                   &




                                                                                              es
                                     M




                                                                                            lT
                                       er
                                        rg




                                                                                          na
                                         gee



                                                                  Staging Server




                                                                                       io
                                          Pu
                                          Pu




                                                                                     ct
                                                                                      n
                                               lll R




                                                                                   Fu
                                                   R
                                                  eq
                                                   q   u
                                                       ue




   Unit
                                                        st
                                                        st




  Tests




                                                  sts
                                   Pull Reque

                                                                    Test Server
              Developers                                                             Product Owner
Un processus de déploiement Agile
                                                                    Prod Server




                                                                                    Fun
                                                                                        c   tion
                                                                                                 a   l Te
                                                                                                            sts

                                                             Production
                                                              delivery

                                                                                                    Te   sts
                                                                                          tio   nal
                                                                                       c
                                                                                   Fun
   Run Unit Tests                                                                                                 Quality Manager
                           V
                           Va
                              ll
                             id
                              da
                               at
                                 e
                                 e




                                                                                                  ts
                                   &
                                   &




                                                                                              es
                                     M




                                                                                            lT
                                       er
                                        rg




                                                                                          na
                                         gee



                                                                  Staging Server




                                                                                       io
                                          Pu
                                          Pu




                                                                                     ct
                                                                                      n
                                               lll R




                                                                                   Fu
                                                   R
                                                  eq
                                                   q   u
                                                       ue




   Unit
                                                        st
                                                        st




  Tests




                                                  sts
                                   Pull Reque

                                                                    Test Server
              Developers                                                             Product Owner
Un processus de déploiement Agile
                                                                    Prod Server




                                                                                    Fun
                                                                                        c   tion
                                                                                                 a   l Te
                                                                                                            sts

                                                             Production
                                                              delivery

                                                                                                    Te   sts
                                                                                          tio   nal
                                                                                       c
                                                                                   Fun
   Run Unit Tests                                                                                                 Quality Manager
                           V
                           Va
                              ll
                             id
                              da
                               at
                                 e
                                 e




                                                                                                  ts
                                   &
                                   &




                                                                                              es
                                     M




                                                                                            lT
                                       er
                                        rg




                                                                                          na
                                         gee



                                                                  Staging Server




                                                                                       io
                                          Pu
                                          Pu




                                                                                     ct
                                                                                      n
                                               lll R




                                                                                   Fu
                                                   R
                                                  eq
                                                   q   u
                                                       ue




   Unit
                                                        st
                                                        st




  Tests




                                                  sts
                                   Pull Reque

                                                                    Test Server
              Developers                                                             Product Owner
Un processus de déploiement Agile
                                                                    Prod Server




                                                                                    Fun
                                                                                        c   tion
                                                                                                 a   l Te
                                                                                                            sts

                                                             Production
                                                              delivery

                                                                                                    Te   sts
                                                                                          tio   nal
                                                                                       c
                                                                                   Fun
   Run Unit Tests                                                                                                 Quality Manager
                           V
                           Va
                              ll
                             id
                              da
                               at
                                 e
                                 e




                                                                                                  ts
                                   &
                                   &




                                                                                              es
                                     M




                                                                                            lT
                                       er
                                        rg




                                                                                          na
                                         gee



                                                                  Staging Server




                                                                                       io
                                          Pu
                                          Pu




                                                                                     ct
                                                                                      n
                                               lll R




                                                                                   Fu
                                                   R
                                                  eq
                                                   q   u
                                                       ue




   Unit
                                                        st
                                                        st




  Tests




                                                  sts
                                   Pull Reque

                                                                    Test Server
              Developers                                                             Product Owner
Tests unitaires PHP
    PHPUnit
    Environnement de test Symfony 2
    Lancés par jenkins
namespace OverblogBlogBlogBundleTestsTwigNodeVisitor;

use OverblogBlogBlogBundleTwigNodeVisitorMethodCallOptimizerNodeVisitor;

class MethodCallOptimizerNodeVisitorTest extends PHPUnit_Framework_TestCase
{
    public function testSingle()
    {
        $env = $this->getTwig(array('tpl' => '{{ foo.bar }}'));
        $env->addNodeVisitor(new MethodCallOptimizerNodeVisitor(array(
             array('foo', 'getbar')
        )));

        $src = $env->getLoader()->getSource('tpl');
        $php = $env->compileSource($src, 'tpl');

        $this->assertContains(
            '$context["foo"]->getbar()',
            $php
        );
    }
}
Tests unitaires Javascript
      YUI Test
      Lancés par jenkins
      Navigateur Chromium dans un environnement VLC
var suite = new Y.Test.Suite("Timeline : TimelineView");

suite.add(
    new Y.Test.Case({

        name: "Test TimelineView",

        testRender: function ()
        {
            Y.Assert.areEqual(
                4,
                Y.all('.statuses button').size()
            );
            Y.Assert.areEqual(
                2,
                Y.all('.class button').size()
            );
            Y.Assert.areEqual(
                3,
                Y.all('.advanced select').size()
            );
        },
});

Y.Test.Runner.add(suite);
Tests fonctionnels
    Cucumber
    Lancés par jenkins
    Navigateurs controlés par Watir
@comment @ie
Scenario: I can add a comment
    When I connect to my comment account
    When I initialize a post with title "Test comments" and text "You can comment"
    When I publish
    Then I see success message "POST_PUBLISHED"
    Then I need to sleep a little
    Given I visit my comment blog
    When I open article "Test comments"
    Then I don't see errors
    When I add a comment with:
    | name            | text               |
    | Anonym comment | This article is top |
    Then I don't see errors
    Then I should see "Your comment has been published"
    Given I visit my comment blog
    When I open article "Test comments"
    Then I see comment:
    | name            | text               |
    | Anonym comment | This article is top |
    When I goto admin
    When I delete the article with:
    | title	         |
    | Test comments |
    Then I see success message "POST_DELETED"
Tests fonctionnels
Résultats des tests
Merci pour votre attention




                    Questions?

   Prenez le temps de créer votre blog sur
            www.over-blog.com

Weitere ähnliche Inhalte

Was ist angesagt?

Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash CourseNilay Binjola
 
Git flow for daily use
Git flow for daily useGit flow for daily use
Git flow for daily useMediacurrent
 
Git the Docs: A fun, hands-on introduction to version control
Git the Docs: A fun, hands-on introduction to version controlGit the Docs: A fun, hands-on introduction to version control
Git the Docs: A fun, hands-on introduction to version controlBecky Todd
 
Git and GitHub
Git and GitHubGit and GitHub
Git and GitHubJames Gray
 
What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020Noa Harel
 
Git Started With Git
Git Started With GitGit Started With Git
Git Started With GitNick Quaranto
 
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...GITS Indonesia
 
git - eine praktische Einführung
git - eine praktische Einführunggit - eine praktische Einführung
git - eine praktische EinführungMarcel Eichner
 
Your own full blown Gerrit plugin
Your own full blown Gerrit pluginYour own full blown Gerrit plugin
Your own full blown Gerrit pluginDariusz Łuksza
 
Git-flow workflow and pull-requests
Git-flow workflow and pull-requestsGit-flow workflow and pull-requests
Git-flow workflow and pull-requestsBartosz Kosarzycki
 
Présentation Git & GitHub
Présentation Git & GitHubPrésentation Git & GitHub
Présentation Git & GitHubThibault Vlacich
 

Was ist angesagt? (20)

Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash Course
 
Git flow for daily use
Git flow for daily useGit flow for daily use
Git flow for daily use
 
Git the Docs: A fun, hands-on introduction to version control
Git the Docs: A fun, hands-on introduction to version controlGit the Docs: A fun, hands-on introduction to version control
Git the Docs: A fun, hands-on introduction to version control
 
Git commands
Git commandsGit commands
Git commands
 
Git and GitHub
Git and GitHubGit and GitHub
Git and GitHub
 
What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020
 
Git Branching Model
Git Branching ModelGit Branching Model
Git Branching Model
 
Git Started With Git
Git Started With GitGit Started With Git
Git Started With Git
 
Git l'essentiel
Git l'essentielGit l'essentiel
Git l'essentiel
 
Git & GitLab
Git & GitLabGit & GitLab
Git & GitLab
 
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
 
git flow
git flowgit flow
git flow
 
git - eine praktische Einführung
git - eine praktische Einführunggit - eine praktische Einführung
git - eine praktische Einführung
 
Git workflows
Git workflowsGit workflows
Git workflows
 
Grokking opensource with github
Grokking opensource with githubGrokking opensource with github
Grokking opensource with github
 
Your own full blown Gerrit plugin
Your own full blown Gerrit pluginYour own full blown Gerrit plugin
Your own full blown Gerrit plugin
 
GitHub Basics - Derek Bable
GitHub Basics - Derek BableGitHub Basics - Derek Bable
GitHub Basics - Derek Bable
 
Git-flow workflow and pull-requests
Git-flow workflow and pull-requestsGit-flow workflow and pull-requests
Git-flow workflow and pull-requests
 
Git and Github
Git and GithubGit and Github
Git and Github
 
Présentation Git & GitHub
Présentation Git & GitHubPrésentation Git & GitHub
Présentation Git & GitHub
 

Andere mochten auch

En quoi git serait plus agile que svn ?
En quoi git serait plus agile que svn ?En quoi git serait plus agile que svn ?
En quoi git serait plus agile que svn ?Guillaume Collic
 
Git vs SVN
Git vs SVNGit vs SVN
Git vs SVNneuros
 
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséDécouvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséECAM Brussels Engineering School
 
GitHub - Présentation
GitHub - PrésentationGitHub - Présentation
GitHub - PrésentationDavid RIEHL
 
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Ippon
 
Atelier Git + GitHub
Atelier Git + GitHubAtelier Git + GitHub
Atelier Git + GitHubspamaert
 
How Kris Writes Symfony Apps
How Kris Writes Symfony AppsHow Kris Writes Symfony Apps
How Kris Writes Symfony AppsKris Wallsmith
 
C'est si simple git ! (devoxx france 2012)
C'est si simple git ! (devoxx france 2012)C'est si simple git ! (devoxx france 2012)
C'est si simple git ! (devoxx france 2012)Ulrich VACHON
 
Comparison of SVN and Git
Comparison of SVN and GitComparison of SVN and Git
Comparison of SVN and GitDaniel Wieth
 
Symfony2, Backbone.js & socket.io - SfLive Paris 2k13 - Wisembly
Symfony2, Backbone.js & socket.io - SfLive Paris 2k13 - WisemblySymfony2, Backbone.js & socket.io - SfLive Paris 2k13 - Wisembly
Symfony2, Backbone.js & socket.io - SfLive Paris 2k13 - WisemblyGuillaume POTIER
 
Paul valery et les Web components
Paul valery et les Web componentsPaul valery et les Web components
Paul valery et les Web componentsFrancois ANDRE
 
Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?
Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?
Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?Nicolas Ruffel
 
Présentation du versioning avec Git
Présentation du versioning avec GitPrésentation du versioning avec Git
Présentation du versioning avec Gitmsadouni
 
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2Romain Linsolas
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de gitJulien Blin
 
Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versiongoldoraf
 

Andere mochten auch (20)

En quoi git serait plus agile que svn ?
En quoi git serait plus agile que svn ?En quoi git serait plus agile que svn ?
En quoi git serait plus agile que svn ?
 
Git vs SVN
Git vs SVNGit vs SVN
Git vs SVN
 
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséDécouvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
 
SVN 2 Git
SVN 2 GitSVN 2 Git
SVN 2 Git
 
GitHub - Présentation
GitHub - PrésentationGitHub - Présentation
GitHub - Présentation
 
Git flow in action
Git flow in actionGit flow in action
Git flow in action
 
Tutorial Git
Tutorial GitTutorial Git
Tutorial Git
 
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014
 
Atelier Git + GitHub
Atelier Git + GitHubAtelier Git + GitHub
Atelier Git + GitHub
 
Git
GitGit
Git
 
How Kris Writes Symfony Apps
How Kris Writes Symfony AppsHow Kris Writes Symfony Apps
How Kris Writes Symfony Apps
 
C'est si simple git ! (devoxx france 2012)
C'est si simple git ! (devoxx france 2012)C'est si simple git ! (devoxx france 2012)
C'est si simple git ! (devoxx france 2012)
 
Comparison of SVN and Git
Comparison of SVN and GitComparison of SVN and Git
Comparison of SVN and Git
 
Symfony2, Backbone.js & socket.io - SfLive Paris 2k13 - Wisembly
Symfony2, Backbone.js & socket.io - SfLive Paris 2k13 - WisemblySymfony2, Backbone.js & socket.io - SfLive Paris 2k13 - Wisembly
Symfony2, Backbone.js & socket.io - SfLive Paris 2k13 - Wisembly
 
Paul valery et les Web components
Paul valery et les Web componentsPaul valery et les Web components
Paul valery et les Web components
 
Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?
Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?
Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?
 
Présentation du versioning avec Git
Présentation du versioning avec GitPrésentation du versioning avec Git
Présentation du versioning avec Git
 
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de git
 
Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de version
 

Ähnlich wie Git Flow: un processus de développement Agile

Ähnlich wie Git Flow: un processus de développement Agile (7)

Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipeline
 
Git flow
Git flowGit flow
Git flow
 
SVN to GitHUb
SVN to GitHUbSVN to GitHUb
SVN to GitHUb
 
Mobile DevOps @While_42
Mobile DevOps @While_42Mobile DevOps @While_42
Mobile DevOps @While_42
 
Retour d'experience GIT, Integration continue
Retour d'experience GIT, Integration continueRetour d'experience GIT, Integration continue
Retour d'experience GIT, Integration continue
 
Industrialisation bar camp2010
Industrialisation bar camp2010Industrialisation bar camp2010
Industrialisation bar camp2010
 
Github workflow
Github workflowGithub workflow
Github workflow
 

Git Flow: un processus de développement Agile

  • 1. Git Flow: un processus de développement Agile Xavier HAUSHERR
  • 2. A propos Xavier HAUSHERR CTO Twitter: @xkobal Blog: xavier.over-blog.com
  • 3. Git Flow: un processus de développement Agile Le projet Overblog
  • 4. Qui sommes nous ? Né en 2004, Overblog est la plateforme de blogs Européenne n°1. Nous sommes la première plateforme a avoir mis en place le partage de revenu publicitaire généré par l’audience. La nouvelle version est sortie en Juin 2012 avec un très bon retour des blogueurs. Elle ne cesse depuis d’évoluer fonctionnellement. C’est aussi: 3 millions de blogs dans 5 langues 38 millions de visiteurs uniques par mois 275 millions pages vues par mois 16ème audience française Plus de 80 serveurs pour servir les blogs
  • 5. Nom de code «Kiwi» Refonte complète du produit Une forte orientation vers les réseaux sociaux Une équipe de 10 personnes Utilisation de nouvelles technologies Nouvelle architecture Un projet orienté service 7 mois de développement 1 année d’évolution Sortie de nouvelles fonctionalités avant l’été
  • 6. Git Flow: un processus de développement Agile Du cycle en V à l’agilité
  • 7. Evolution du process - Planning en V - Gantt - Flou au démarrage - Manque de spécifications fonctionnelles - Evolution très rapide des besoins produits Scrum
  • 8. Equipe Scrum • Développeurs • Scrum Master • Product Owner • Business Owner • Stackholders • Quality Manager
  • 10. Détail d’un sprint Scrum chez Overblog Semaine 1 Lundi Mardi Mercredi Jeudi Vendredi Sprint Planning Daily Meeting Daily Meeting Daily Meeting Daily Meeting Mise en Prod Release n-1 Poker Planning Poker Planning Semaine 2 Lundi Mardi Mercredi Jeudi Vendredi Daily Meeting Daily Meeting Daily Meeting Daily Meeting Daily Meeting Debug / Refacto Debug / Refacto Demo Code Review Poker Planning Feature Freeze Retrospective
  • 11. Nos besoins de développement Agile Coder sans mettre en péril le projet Travailler à deux ou plus sur des features Tester chaque fonctionnalité avant mise en production Intégration continue pour certaines fonctionnalités Release pour les grosses fonctionnalités Gestion des urgences Être accepté par l’équipe Scrum
  • 12. Git Flow: un processus de développement Agile feature-* master release-* hotfix-* stable Tag 1.0 Bugfixes Production Tag 1.1 + Intégration continue Tag 1.2 Intégration continue Tag 1.3 Git Flow Github Flow feature-* master release-* hotfix-* stable Feature for Release 0 next release Tag 1.0 Feature for future release Bugfixes = Production Tag 1.1 Intégration continue Overblog Flow Tag 1.2 Start of Feature release Freeze branch for 2.0 Only bugfixes ! Mise en Tag 2.0 production
  • 13. Git flow feature-* develop release-* hotfix-* master Feature for Release 0 next release Tag 1.0 Feature for future release Bugfixes Production Tag 1.1 Start of Feature release Freeze branch for 2.0 Only bugfixes ! Mise en Tag 2.0 production http://nvie.com/posts/a-successful-git-branching-model/
  • 14. Git flow feature-* develop Feature for Release 0 next release Feature branches
  • 15. Git flow feature-* develop release-* master Release 0 Tag 1.0 Start of Feature release Freeze branch for 2.0 Only bugfixes ! Mise en Tag 2.0 production Release branches
  • 16. Git flow feature-* develop release-* master Release 0 Tag 1.0 Feature for future release Start of Feature release Freeze branch for 2.0 Mise en Tag 2.0 production Long feature branches
  • 17. Git flow develop hotfix-* master Release 0 Tag 1.0 Bugfixes Production Tag 1.1 Hotfix branches
  • 18. Nos besoins de développement Agile Coder sans mettre en péril le projet Travailler à deux ou plus sur des features Tester chaque fonctionnalité avant mise en production Intégration continue pour certaines fonctionnalités Release pour les grosses fonctionnalités Gestion des urgences Être accepté par l’équipe Scrum Connection décentralisée Merge compliqué Qui merge ? Quand tester ?
  • 19. Github Flow feature-* master develop release-* hotfix-* stable master Feature for Release 0 next release Tag 1.0 Feature for future release Bugfixes Production Tag 1.1 Intégration continue Tag 1.2 Start of Feature release Freeze branch for 2.0 Only bugfixes ! Mise en Intégration continue Tag 1.3 2.0 production Scott Chacon software developer & Git evangelist @Github http://scottchacon.com/2011/08/31/github-flow.html
  • 20. Github Flow feature-* master release-* hotfix-* stable Tag 1.0 Bugfixes Production Tag 1.1 Intégration continue Tag 1.2 Intégration continue Tag 1.3 Scott Chacon software developer & Git evangelist @Github http://scottchacon.com/2011/08/31/github-flow.html
  • 21. Nos besoins de développement Agile Coder sans mettre en péril le projet Travailler à deux ou plus sur des features Tester chaque fonctionnalité avant mise en production Intégration continue pour certaines fonctionnalités Release pour les grosses fonctionnalités Gestion des urgences Être accepté par l’équipe Scrum Plus de release
  • 22. Overblog Flow feature-* develop master release-* hotfix-* master stable Feature for Release 0 next release Tag 1.0 Feature for future release Bugfixes Production Tag 1.1 Intégration continue Tag 1.2 Start of Feature release Freeze branch for 2.0 Only bugfixes ! Mise en Tag 2.0 production
  • 23. Overblog Flow feature-* master release-* hotfix-* stable Feature for Release 0 next release Tag 1.0 Feature for future release Bugfixes Production Tag 1.1 Intégration continue Tag 1.2 Start of Feature release Freeze branch for 2.0 Only bugfixes ! Mise en Tag 2.0 production
  • 24. Git Flow: un processus de développement Agile Les Tests unitaires et fonctionnels
  • 25. Un processus de déploiement Agile Prod Server Fun c tion a l Te sts Production delivery Te sts tio nal c Fun Run Unit Tests Quality Manager V Va ll id da at e e ts & & es M lT er rg na gee Staging Server io Pu Pu ct n lll R Fu R eq q u ue Unit st st Tests sts Pull Reque Test Server Developers Product Owner
  • 26. Un processus de déploiement Agile Prod Server Fun c tion a l Te sts Production delivery Te sts tio nal c Fun Run Unit Tests Quality Manager V Va ll id da at e e ts & & es M lT er rg na gee Staging Server io Pu Pu ct n lll R Fu R eq q u ue Unit st st Tests sts Pull Reque Test Server Developers Product Owner
  • 27. Un processus de déploiement Agile Prod Server Fun c tion a l Te sts Production delivery Te sts tio nal c Fun Run Unit Tests Quality Manager V Va ll id da at e e ts & & es M lT er rg na gee Staging Server io Pu Pu ct n lll R Fu R eq q u ue Unit st st Tests sts Pull Reque Test Server Developers Product Owner
  • 28. Un processus de déploiement Agile Prod Server Fun c tion a l Te sts Production delivery Te sts tio nal c Fun Run Unit Tests Quality Manager V Va ll id da at e e ts & & es M lT er rg na gee Staging Server io Pu Pu ct n lll R Fu R eq q u ue Unit st st Tests sts Pull Reque Test Server Developers Product Owner
  • 29. Un processus de déploiement Agile Prod Server Fun c tion a l Te sts Production delivery Te sts tio nal c Fun Run Unit Tests Quality Manager V Va ll id da at e e ts & & es M lT er rg na gee Staging Server io Pu Pu ct n lll R Fu R eq q u ue Unit st st Tests sts Pull Reque Test Server Developers Product Owner
  • 30. Tests unitaires PHP PHPUnit Environnement de test Symfony 2 Lancés par jenkins namespace OverblogBlogBlogBundleTestsTwigNodeVisitor; use OverblogBlogBlogBundleTwigNodeVisitorMethodCallOptimizerNodeVisitor; class MethodCallOptimizerNodeVisitorTest extends PHPUnit_Framework_TestCase { public function testSingle() { $env = $this->getTwig(array('tpl' => '{{ foo.bar }}')); $env->addNodeVisitor(new MethodCallOptimizerNodeVisitor(array( array('foo', 'getbar') ))); $src = $env->getLoader()->getSource('tpl'); $php = $env->compileSource($src, 'tpl'); $this->assertContains( '$context["foo"]->getbar()', $php ); } }
  • 31. Tests unitaires Javascript YUI Test Lancés par jenkins Navigateur Chromium dans un environnement VLC var suite = new Y.Test.Suite("Timeline : TimelineView"); suite.add( new Y.Test.Case({ name: "Test TimelineView", testRender: function () { Y.Assert.areEqual( 4, Y.all('.statuses button').size() ); Y.Assert.areEqual( 2, Y.all('.class button').size() ); Y.Assert.areEqual( 3, Y.all('.advanced select').size() ); }, }); Y.Test.Runner.add(suite);
  • 32. Tests fonctionnels Cucumber Lancés par jenkins Navigateurs controlés par Watir @comment @ie Scenario: I can add a comment When I connect to my comment account When I initialize a post with title "Test comments" and text "You can comment" When I publish Then I see success message "POST_PUBLISHED" Then I need to sleep a little Given I visit my comment blog When I open article "Test comments" Then I don't see errors When I add a comment with: | name | text | | Anonym comment | This article is top | Then I don't see errors Then I should see "Your comment has been published" Given I visit my comment blog When I open article "Test comments" Then I see comment: | name | text | | Anonym comment | This article is top | When I goto admin When I delete the article with: | title | | Test comments | Then I see success message "POST_DELETED"
  • 35. Merci pour votre attention Questions? Prenez le temps de créer votre blog sur www.over-blog.com