SlideShare a Scribd company logo
1 of 35
Download to read offline
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

More Related Content

What's hot

Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Simplilearn
 
Version control system
Version control systemVersion control system
Version control systemAndrew Liu
 
Why Aren't You Using Git Flow?
Why Aren't You Using Git Flow?Why Aren't You Using Git Flow?
Why Aren't You Using Git Flow?John Congdon
 
Git-flow workflow and pull-requests
Git-flow workflow and pull-requestsGit-flow workflow and pull-requests
Git-flow workflow and pull-requestsBartosz Kosarzycki
 
Creative Branching Models for Multiple Release Streams
Creative Branching Models for Multiple Release StreamsCreative Branching Models for Multiple Release Streams
Creative Branching Models for Multiple Release StreamsAtlassian
 
Git hub ppt presentation
Git hub ppt presentationGit hub ppt presentation
Git hub ppt presentationAyanaRukasar
 
A successful Git branching model
A successful Git branching model A successful Git branching model
A successful Git branching model abodeltae
 
Git flow Introduction
Git flow IntroductionGit flow Introduction
Git flow IntroductionDavid Paluy
 
Git Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowGit Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowMikhail Melnik
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIDavid Hahn
 
Jira Basic Concepts
Jira Basic ConceptsJira Basic Concepts
Jira Basic ConceptsMAKSTraining
 
Git flow for daily use
Git flow for daily useGit flow for daily use
Git flow for daily useMediacurrent
 
Gitlab flow solo
Gitlab flow soloGitlab flow solo
Gitlab flow soloviniciusban
 

What's hot (20)

Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
 
Version control system
Version control systemVersion control system
Version control system
 
Why Aren't You Using Git Flow?
Why Aren't You Using Git Flow?Why Aren't You Using Git Flow?
Why Aren't You Using Git Flow?
 
Git presentation
Git presentationGit presentation
Git presentation
 
Git-flow workflow and pull-requests
Git-flow workflow and pull-requestsGit-flow workflow and pull-requests
Git-flow workflow and pull-requests
 
Git flow
Git flowGit flow
Git flow
 
Creative Branching Models for Multiple Release Streams
Creative Branching Models for Multiple Release StreamsCreative Branching Models for Multiple Release Streams
Creative Branching Models for Multiple Release Streams
 
Git hub ppt presentation
Git hub ppt presentationGit hub ppt presentation
Git hub ppt presentation
 
Git best practices workshop
Git best practices workshopGit best practices workshop
Git best practices workshop
 
Git basic
Git basicGit basic
Git basic
 
Git and git flow
Git and git flowGit and git flow
Git and git flow
 
A successful Git branching model
A successful Git branching model A successful Git branching model
A successful Git branching model
 
Git flow Introduction
Git flow IntroductionGit flow Introduction
Git flow Introduction
 
Git Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowGit Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-Flow
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CI
 
Jira Basic Concepts
Jira Basic ConceptsJira Basic Concepts
Jira Basic Concepts
 
Git flow for daily use
Git flow for daily useGit flow for daily use
Git flow for daily use
 
Gitlab flow solo
Gitlab flow soloGitlab flow solo
Gitlab flow solo
 
Introduction To Git
Introduction To GitIntroduction To Git
Introduction To Git
 
Git hub
Git hubGit hub
Git hub
 

Viewers also liked

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 pour les (pas si) nuls
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nulsMalk Zameth
 
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
 
Présentation Git & GitHub
Présentation Git & GitHubPrésentation Git & GitHub
Présentation Git & GitHubThibault Vlacich
 
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
 

Viewers also liked (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 ?
 
Tutoriel GIT
Tutoriel GITTutoriel GIT
Tutoriel GIT
 
Git pour les (pas si) nuls
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nuls
 
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é
 
Présentation Git & GitHub
Présentation Git & GitHubPrésentation Git & GitHub
Présentation Git & GitHub
 
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
 

Similar to Git Flow: un processus de développement Agile

Similar to 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