SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
Xavier Warzee
        Email: xavier@warzee.fr
            Blog: http://warzee.fr
Site: http://www.agilescale.com
Insurance applications
Talk based on one year engagement
 In an insurance company
 A subsidiary of one of the largest french bank


6 insurance applications
 Used by several networks of regional insurance
   agencies
 Running in a datacenter (Mainframes, Unix servers)
Legacy systems
Applications
  Implemented in Java/J2EE running on Unix
   servers
  No dependency injection, no cool frameworks
   (Spring, Hibernate, …)
  Various size and maturity


Business rules and services
 Implemented in Cobol running on IBM
  mainframes
 IBM MQ to communicate with applications
Tools & practices
Building and deployment of J2EE
 applications
  with IBM RAD6 (based on Eclipse 3.0.1)


Software Configuration Management
 with IBM Rational Clearcase LT 2003 for
  Java/J2EE
 Nothing for Cobol developments


No tests (unit & acceptance tests)
Objectives
Main objectives
 To develop the code really expected for
  each release
 To prepare adoption of agile methods :-)


Short terms objectives based on the
 “follow the pain” principle
  Shrink time to release new versions of J2EE
   applications
  Ease deployment of applications
  Provide adapted testing solutions to the legacy
Bottom-up Approach
> pragmatic metrics : RTFs
Monitor projects progress with RTFs (Running,
 Tested Features)
  Running means here deployed to a Websphere
   server (we have J2EE applications) =>
   continuous deployment

  Tested means a development is done when
   tested => automated tests during projects
   building

  Features means make the latest
   developments available at any time =>
Adoption strategy/audit
> Identify steps to improve the
development
No scripted building
  Manual building under RAD6/Eclipse
  Checkout code, check dependencies, package correctly
   EAR/WAR
  1 to 3 days needed to check an application is correctly
   packaged !

No scripted deployment
  manual deployment with the Websphere console
  Error prone, need to know Websphere Application Server
  Need 1 or 2 days to deploy an application under WAS6.1


No code review to measure quality
Adoption plan proposed
(1/3)
 Use Maven to build applications/projects
  No longer use an IDE to build apps/projects
   (error prone)
  Better traceability of packaged components


 Develop scripts to deploy applications
  Jython Scripts used both by production and
   development teams to deploy to Websphere
   AS 6.1
      Avoid behavior gaps between dev and prod
  
      environments
  Scripts called from Maven to automate
Adoption plan proposed
(2/3)
 Review projects with Maven to measure
 code quality
  Simple declarative approach to configure code
  review tools
      PMD, Checkstyle, FindBugs Maven plugins!
  

  Integrate code review reporting during nightly
  builds
      Just simply use the Maven build lifecycle
  




 Implement Builds Management with
 Cruisecontrol
 Continuous integration of changes (build, unit
Adoption plan proposed
(3/3)
 Implement unit tests with Junit, XMLUnit and
 JMockIt
  Check code behaves as expected by developers !
  JMockit helps
       to disconnect J2EE applications from MAINFRAME
   

       To test in isolation without modifying application codes
   
       (bytecode rewriting)


 Use acceptance tests with Fit/FitNesse
  check code behaves as expected by users for each
   release
  Use FitNesse plugin for RAD/Eclipse and for
   Maven
  Post deployment tests to ensure full testability by
In a legacy context
Mike Cohn tests pyramid
  adoption
  >> current practices!
                                      • Simple
                    Manual
                                      • usual approach
                  Acceptance
                                      • manual and error-prone
                    testing
                                      • traceability with requirements?
                   Using the
                      GUI
                                   • Technical solution
                  Automated
                                   • Quick to run since automated
                   tests of
                                   • numerous similar tests to write
                   the GUI
                                   • fragile tests (HTML may change)
                    Unit
                    Tests
                               • What do we test ? Priorities ?
                               • How to identify tests to run ?
                               • How to identify failing tests ?

Start Stop Look
Start Stop ?
Mike Cohn tests pyramid adoption
  > target practices: the pyramid of Mike Cohn
                            • Small number of tests
                            • Try automate these tests
            Acceptance
           tests with the
                GUI
                              • Define accurate functional tests

           FitNesse


                                    • Unit tests generalized
                                    • Adopt a TDD approach
           Unit Tests




Start Stop Look
Start Stop ?
Mike Cohn tests pyramid
  adoption
  > pragmatic target practices!

               Acceptance
                                       • Try to reduce the number of tests
              tests with the
                   GUI
                                       (if any, use FitNesse + Selenium)
                  Automated
                  acceptance
                               • Use Fit/FitNesse
                     tests




             Unit Tests            • reach a high coverage of code
                                   • improve capacities of test with
                                   supporting tools (xUnit tools such as
                                   JMockIt, DbUnit, XMLUnit, JUnitPerf,
                                   JsUnit, …)

Start Stop Look
Presentation layer                                                        Mainframe layer
                                             Business layer (EAR)
     (EAR)
                          Business Component
                                                                             Business
                                                                     MQ
                                                          DAS                Service
                                                                             (Cobol)
                                                 DAO
                          Business Service




 EIARD Application
                                                                             Business
                          Business Component
                                                            DAS              Service
                                                                     MQ
  Application                                     DAO
                            Business Process                                 (Cobol)
   Process
                                 Service
    Service
HTML/JS/JSP
                                    Business Service
  Pages


                                         Business Component




                     xml/http                                   mq
Functional testing with FitNesse
> Business layer
Black box approach
Wiki to easy functional data injection!
                                                                     Mainframe layer
                                               Business layer

                        Dossier component
                                               DAO     DAS             Functional
                                                                MQ
                          PMListeDossiers                               Service
                               SUT                                      (Cobol)


                                            Business
                                             Service
      PMColumnFixture




                        Personne component
                                                                       Functional
                                                DAO    DAS      MQ
                                                                        Service
                         PMGestionCompte
                                                                        (Cobol)
                              SUT


                                        Business
                                         Service

                               ElementStructure component
Functional testing with FitNesse
    > Presentation layer with Selenium
      Selenium is powerful
      Issues to set timeout when MQ access not mocked!
        (JDBC/DB2) layer                                                                       Mainframe layer
                                                                       Business layer
             Presentation

                                               Dossier component
                                                                                                 Functional
                                                                                          MQ      Service
                                                                               SAD
                                                                                                  (Cobol)

                                                     OM            CAD
                                                   DevisA4




              SeleniumRunner
                                               Personne component
                                                                                                 Functional
                                                                       CAD
                                                                                          MQ      Service
                       PUPerteMdp                 PMGestionCompte                                 (Cobol)
Selenium RC

                    Pages
                                                                  OM
                                                 Request
                 HTML/JS/JSP

                   EIARD application
                                                             ElementStructure component


                                       Other systems
Testing scenarios
> Car insurance quote scenario
 Write scenario in natural language with the FitNesse wiki
 Use the SeleniumRunner fixture to translate natural
  languages into Selenium verbs (open, click, select, …)
 The SeleniumRunner fixture invokes a Selenium instance
 The Selenium instance interacts with the application !
FitNesse Tests & Continuous integration
   1/3
                                                    3

                                                            4       5
                          6

                                                                                Deployment Platform
                              Continuous integration server machine
                              - Windows Service : Selenium-RC
                              - Windows Service : FitNesse Server (port 9987)

          1           2
                                                   1 – Check in (restitution)
                                                   2 – Projects updated on the continuous
                                                      integration server
                                                   3 – Projects built :
                                                      compilation, application and tests resources
                                                      generation, unit tests and components tests
                                                      execution, code review,
                                                   4 – Projects deployment (when needed : EAR)
 SCM repository
                                                   5 – Acceptation tests executed using FitNesse
(Clearcase, SVN, …)
                                                      (and Selenium)
                                                   6 – Notification by email
FitNesse Tests & Continuous integration
 2/3
 > Maven command called by Cruisecontrol
Definition of a Maven profile:
 “fitnesse”
  To declare and configure Fitnesse
    plugin
  To set FitNesse parameters to use
           Here for the Dossier project:
       
           <fitNesseServerName>s00sic001.ca-pacifica.fr</fitNesseServerName>
       

           <fitNesseServerPort>8081</fitNesseServerPort>
       

           <fitNesseServerPage>TestsAcceptation.TestsNm.TestsDossier</fitNe
       

           sseServerPage>

Select a Maven project phase
 After “package”:
    ear applications are deployed to
   

   Websphere App Server during this phase !!!                              (création du jar)


Command to launch FitNesse tests
FitNesse Tests & Continuous integration 3/3
Cruisecontrol builds applications with Maven
      Maven launches FitNesse tests (if present) after
    
      application deployment
     Cruisecontrol webapp adapted to collect FitNesse
      results in a new tab !
     Adaptation de Cruisecontrol
         Ajout d’un onglet Fit (FitNesse est la surcouche

          Wiki à Fit)
How to define scenarios? (1/3)
Launch an application with Firefox (here e-
 IARD)
Select Tools -> “Selenium IDE”
How to define scenarios? (2/3)
 Complete forms for Car Insurance
  Quote (“Simulation Assurance
  Automobile”)
        Events captures by Selenium IDE
    
How to define scenarios? (3/3)
 FitNesse
  Page
FitNesse reports
  > included in the web site generated by
  Maven




   Integration of
The FitNesse report
Eclipse/RAD plugins
  > Plugin Eclipse FitNesse (Band XI)
Boutons d’accés aux serveurs Fitnesse
     En local
   

    En remote
Incremental releases




   Iterative releases
Adopting Agile Tools & Methods In A Legacy Context

Mais conteúdo relacionado

Mais procurados

Shirly Ronen - Documenting an agile defect
Shirly Ronen - Documenting an agile defectShirly Ronen - Documenting an agile defect
Shirly Ronen - Documenting an agile defect
AgileSparks
 
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft AjaxThe Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
Darren Sim
 
Introduction to RamLog
Introduction to RamLogIntroduction to RamLog
Introduction to RamLog
CorrieTaljaard
 
Shirly Ronen - rapid release flow and agile testing-as
Shirly Ronen - rapid release flow and agile testing-asShirly Ronen - rapid release flow and agile testing-as
Shirly Ronen - rapid release flow and agile testing-as
AgileSparks
 
Dfr Presentation
Dfr   PresentationDfr   Presentation
Dfr Presentation
eraz
 
[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application
[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application
[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application
javablend
 

Mais procurados (20)

Shirly Ronen - Documenting an agile defect
Shirly Ronen - Documenting an agile defectShirly Ronen - Documenting an agile defect
Shirly Ronen - Documenting an agile defect
 
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft AjaxThe Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
 
20111007 activiti
20111007 activiti20111007 activiti
20111007 activiti
 
BenchmarkQA Performance Testing Quality Forum March 2012
BenchmarkQA Performance Testing Quality Forum March 2012BenchmarkQA Performance Testing Quality Forum March 2012
BenchmarkQA Performance Testing Quality Forum March 2012
 
Introduction to RamLog
Introduction to RamLogIntroduction to RamLog
Introduction to RamLog
 
Modernize your-java ee-app-server-infrastructure
Modernize your-java ee-app-server-infrastructureModernize your-java ee-app-server-infrastructure
Modernize your-java ee-app-server-infrastructure
 
Shirly Ronen - rapid release flow and agile testing-as
Shirly Ronen - rapid release flow and agile testing-asShirly Ronen - rapid release flow and agile testing-as
Shirly Ronen - rapid release flow and agile testing-as
 
Постоянное тестирование интеграции
Постоянное тестирование интеграцииПостоянное тестирование интеграции
Постоянное тестирование интеграции
 
Dfr Presentation
Dfr   PresentationDfr   Presentation
Dfr Presentation
 
Avea Release Management IBM Innovate 2012
Avea Release Management IBM Innovate 2012Avea Release Management IBM Innovate 2012
Avea Release Management IBM Innovate 2012
 
Pragmatic Model Driven Development In Java Using Smart Use Cases
Pragmatic Model Driven Development In Java Using Smart Use CasesPragmatic Model Driven Development In Java Using Smart Use Cases
Pragmatic Model Driven Development In Java Using Smart Use Cases
 
[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application
[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application
[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application
 
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011
 
Teams progress presenation
Teams progress presenationTeams progress presenation
Teams progress presenation
 
Agile Evolution with Kanban
Agile Evolution with KanbanAgile Evolution with Kanban
Agile Evolution with Kanban
 
RABIT
RABITRABIT
RABIT
 
Neil Tompson - SoftTest Ireland
Neil Tompson - SoftTest IrelandNeil Tompson - SoftTest Ireland
Neil Tompson - SoftTest Ireland
 
Test Objects -- They Just Work
Test Objects -- They Just WorkTest Objects -- They Just Work
Test Objects -- They Just Work
 
JDXA, The KISS ORM for Android
JDXA, The KISS ORM for AndroidJDXA, The KISS ORM for Android
JDXA, The KISS ORM for Android
 
Correlation of simulation_models_using_concept_modeling
Correlation of simulation_models_using_concept_modelingCorrelation of simulation_models_using_concept_modeling
Correlation of simulation_models_using_concept_modeling
 

Destaque (9)

AWS Summit 2013 | Singapore - Understanding Databases Options
AWS Summit 2013 | Singapore - Understanding Databases OptionsAWS Summit 2013 | Singapore - Understanding Databases Options
AWS Summit 2013 | Singapore - Understanding Databases Options
 
Lightning talk flupa ux day
Lightning talk flupa ux dayLightning talk flupa ux day
Lightning talk flupa ux day
 
Leadership talents
Leadership talentsLeadership talents
Leadership talents
 
Jeux d'Innovation (FLUPA UX Day 2013)
Jeux d'Innovation (FLUPA UX Day 2013)Jeux d'Innovation (FLUPA UX Day 2013)
Jeux d'Innovation (FLUPA UX Day 2013)
 
Innovation games + agile in retail banking
Innovation games + agile in retail bankingInnovation games + agile in retail banking
Innovation games + agile in retail banking
 
Peter Keating Dec2008
Peter Keating Dec2008Peter Keating Dec2008
Peter Keating Dec2008
 
Lightning Talk - Damien Thouvenin
Lightning Talk - Damien ThouveninLightning Talk - Damien Thouvenin
Lightning Talk - Damien Thouvenin
 
Htaccess with Cookies
Htaccess with Cookies Htaccess with Cookies
Htaccess with Cookies
 
Atelier "SOS du Titanic, perdu dans l'Atlantique" - leadership des talents
Atelier "SOS du Titanic, perdu dans l'Atlantique" - leadership des talentsAtelier "SOS du Titanic, perdu dans l'Atlantique" - leadership des talents
Atelier "SOS du Titanic, perdu dans l'Atlantique" - leadership des talents
 

Semelhante a Adopting Agile Tools & Methods In A Legacy Context

Model Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & FutureModel Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Future
elliando dias
 
M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case Study
ADC Austin Tech
 
Gredy - test automation management and team collaboration
Gredy - test automation management and team collaborationGredy - test automation management and team collaboration
Gredy - test automation management and team collaboration
Gredy
 
Dot Net Frame Work
Dot Net Frame WorkDot Net Frame Work
Dot Net Frame Work
LiquidHub
 
IBM Pulse 2013 session - DevOps for Mobile Apps
IBM Pulse 2013 session - DevOps for Mobile AppsIBM Pulse 2013 session - DevOps for Mobile Apps
IBM Pulse 2013 session - DevOps for Mobile Apps
Sanjeev Sharma
 
Aras Innovator PLM Deployment Methodology
Aras Innovator PLM Deployment MethodologyAras Innovator PLM Deployment Methodology
Aras Innovator PLM Deployment Methodology
Aras
 
Cast Application Intelligence Platform
Cast Application Intelligence PlatformCast Application Intelligence Platform
Cast Application Intelligence Platform
John Fotiadis ✔️
 
[DSBW Spring 2009] Unit 03: WebEng Process Models
[DSBW Spring 2009] Unit 03: WebEng Process Models[DSBW Spring 2009] Unit 03: WebEng Process Models
[DSBW Spring 2009] Unit 03: WebEng Process Models
Carles Farré
 
SPEC INDIA Java Case Study
SPEC INDIA Java Case StudySPEC INDIA Java Case Study
SPEC INDIA Java Case Study
SPEC INDIA
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009
Stefane Fermigier
 

Semelhante a Adopting Agile Tools & Methods In A Legacy Context (20)

Model Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & FutureModel Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Future
 
Quality Best Practices & Toolkit for Enterprise Flex
Quality Best Practices & Toolkit for Enterprise FlexQuality Best Practices & Toolkit for Enterprise Flex
Quality Best Practices & Toolkit for Enterprise Flex
 
Software Measurement for Lean Application Management
Software Measurement for Lean Application ManagementSoftware Measurement for Lean Application Management
Software Measurement for Lean Application Management
 
10 reasons why Nuxeo is using GlassFish
10 reasons why Nuxeo is using GlassFish10 reasons why Nuxeo is using GlassFish
10 reasons why Nuxeo is using GlassFish
 
M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case Study
 
Session #1: Development Practices And The Microsoft Approach
Session #1: Development Practices And The Microsoft ApproachSession #1: Development Practices And The Microsoft Approach
Session #1: Development Practices And The Microsoft Approach
 
Gredy - test automation management and team collaboration
Gredy - test automation management and team collaborationGredy - test automation management and team collaboration
Gredy - test automation management and team collaboration
 
Dot Net Frame Work
Dot Net Frame WorkDot Net Frame Work
Dot Net Frame Work
 
IBM Pulse 2013 session - DevOps for Mobile Apps
IBM Pulse 2013 session - DevOps for Mobile AppsIBM Pulse 2013 session - DevOps for Mobile Apps
IBM Pulse 2013 session - DevOps for Mobile Apps
 
21st Century Service Oriented Architecture
21st Century Service Oriented Architecture21st Century Service Oriented Architecture
21st Century Service Oriented Architecture
 
"Production Driven Development", Serhii Kalinets
"Production Driven Development", Serhii Kalinets"Production Driven Development", Serhii Kalinets
"Production Driven Development", Serhii Kalinets
 
Aras Innovator PLM Deployment Methodology
Aras Innovator PLM Deployment MethodologyAras Innovator PLM Deployment Methodology
Aras Innovator PLM Deployment Methodology
 
Cast Application Intelligence Platform
Cast Application Intelligence PlatformCast Application Intelligence Platform
Cast Application Intelligence Platform
 
[DSBW Spring 2009] Unit 03: WebEng Process Models
[DSBW Spring 2009] Unit 03: WebEng Process Models[DSBW Spring 2009] Unit 03: WebEng Process Models
[DSBW Spring 2009] Unit 03: WebEng Process Models
 
21st Century SOA
21st Century SOA21st Century SOA
21st Century SOA
 
SPEC INDIA Java Case Study
SPEC INDIA Java Case StudySPEC INDIA Java Case Study
SPEC INDIA Java Case Study
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009
 
San Jose Selenium Meet-up PushToTest TestMaker Presentation
San Jose Selenium Meet-up PushToTest TestMaker PresentationSan Jose Selenium Meet-up PushToTest TestMaker Presentation
San Jose Selenium Meet-up PushToTest TestMaker Presentation
 
Plugin-able POS Solutions by Javascript @HDM9 Taiwan
Plugin-able POS Solutions by Javascript @HDM9 TaiwanPlugin-able POS Solutions by Javascript @HDM9 Taiwan
Plugin-able POS Solutions by Javascript @HDM9 Taiwan
 
Business processes, business rules, complex event processing, the JBoss way
Business processes, business rules, complex event processing, the JBoss wayBusiness processes, business rules, complex event processing, the JBoss way
Business processes, business rules, complex event processing, the JBoss way
 

Mais de Xavier Warzee

Retour expérience Agilité & Données fonction finances risques - Agile Tour ...
Retour expérience Agilité & Données fonction finances risques - Agile Tour ...Retour expérience Agilité & Données fonction finances risques - Agile Tour ...
Retour expérience Agilité & Données fonction finances risques - Agile Tour ...
Xavier Warzee
 
Faciliter une transformation agile avec les Innovation Games dans une banque ...
Faciliter une transformation agile avec les Innovation Games dans une banque ...Faciliter une transformation agile avec les Innovation Games dans une banque ...
Faciliter une transformation agile avec les Innovation Games dans une banque ...
Xavier Warzee
 
Scrum day 2013 sponsoring package
Scrum day 2013 sponsoring packageScrum day 2013 sponsoring package
Scrum day 2013 sponsoring package
Xavier Warzee
 
Annonces du french scrum user group v1.2
Annonces du french scrum user group   v1.2Annonces du french scrum user group   v1.2
Annonces du french scrum user group v1.2
Xavier Warzee
 
Annonces du french scrum user group - rencontre du 24 juin 2011
Annonces du french scrum user group - rencontre du 24 juin 2011Annonces du french scrum user group - rencontre du 24 juin 2011
Annonces du french scrum user group - rencontre du 24 juin 2011
Xavier Warzee
 
Journées NEPTUNE - Keynote Modélisation chez Microsoft
Journées NEPTUNE - Keynote Modélisation chez MicrosoftJournées NEPTUNE - Keynote Modélisation chez Microsoft
Journées NEPTUNE - Keynote Modélisation chez Microsoft
Xavier Warzee
 
Enquête 2011 - Vous, votre organisation et Agile
Enquête 2011 - Vous, votre organisation et Agile Enquête 2011 - Vous, votre organisation et Agile
Enquête 2011 - Vous, votre organisation et Agile
Xavier Warzee
 
Scrum Day France 2011 : ouverture avec Xavier Warzee
Scrum Day France 2011 : ouverture avec Xavier WarzeeScrum Day France 2011 : ouverture avec Xavier Warzee
Scrum Day France 2011 : ouverture avec Xavier Warzee
Xavier Warzee
 
Embedding a Scrum culture avec Harvey Wheaton, Scrum Alliance
Embedding a Scrum culture avec Harvey Wheaton, Scrum AllianceEmbedding a Scrum culture avec Harvey Wheaton, Scrum Alliance
Embedding a Scrum culture avec Harvey Wheaton, Scrum Alliance
Xavier Warzee
 
Path to agility, Ken Schwaber
Path to agility, Ken SchwaberPath to agility, Ken Schwaber
Path to agility, Ken Schwaber
Xavier Warzee
 
Bilan 2010-2011 du FSUG
Bilan 2010-2011 du FSUGBilan 2010-2011 du FSUG
Bilan 2010-2011 du FSUG
Xavier Warzee
 
Quand mon produit est un système d information
Quand mon produit est un système d informationQuand mon produit est un système d information
Quand mon produit est un système d information
Xavier Warzee
 
Un format dynamique de rétrospective, Jean-Charles Meyrignac
Un format dynamique de rétrospective, Jean-Charles Meyrignac Un format dynamique de rétrospective, Jean-Charles Meyrignac
Un format dynamique de rétrospective, Jean-Charles Meyrignac
Xavier Warzee
 
Le Product Owner proxy, Bertrand Dour
Le Product Owner proxy, Bertrand DourLe Product Owner proxy, Bertrand Dour
Le Product Owner proxy, Bertrand Dour
Xavier Warzee
 
Scrum au-delà du projet, pour des produits et des organisations
Scrum au-delà du projet, pour des produits et des organisationsScrum au-delà du projet, pour des produits et des organisations
Scrum au-delà du projet, pour des produits et des organisations
Xavier Warzee
 

Mais de Xavier Warzee (20)

SOS TITANIC - Be a highly performant team to save your life!
SOS TITANIC - Be a highly performant team to save your life!SOS TITANIC - Be a highly performant team to save your life!
SOS TITANIC - Be a highly performant team to save your life!
 
Le Management à l'ère des organisations Agiles
Le Management à l'ère des organisations AgilesLe Management à l'ère des organisations Agiles
Le Management à l'ère des organisations Agiles
 
Be very efficient and innovative thanks to disorder!
Be very efficient and innovative thanks to disorder!Be very efficient and innovative thanks to disorder!
Be very efficient and innovative thanks to disorder!
 
L'Agilité - breakfast IDC devops, 18 septembre 2014
L'Agilité  - breakfast IDC devops, 18 septembre 2014L'Agilité  - breakfast IDC devops, 18 septembre 2014
L'Agilité - breakfast IDC devops, 18 septembre 2014
 
Advanced infrastructure for pan european collaborative engineering - E-colleg
Advanced infrastructure for pan european collaborative engineering - E-collegAdvanced infrastructure for pan european collaborative engineering - E-colleg
Advanced infrastructure for pan european collaborative engineering - E-colleg
 
Retour expérience Agilité & Données fonction finances risques - Agile Tour ...
Retour expérience Agilité & Données fonction finances risques - Agile Tour ...Retour expérience Agilité & Données fonction finances risques - Agile Tour ...
Retour expérience Agilité & Données fonction finances risques - Agile Tour ...
 
Faciliter une transformation agile avec les Innovation Games dans une banque ...
Faciliter une transformation agile avec les Innovation Games dans une banque ...Faciliter une transformation agile avec les Innovation Games dans une banque ...
Faciliter une transformation agile avec les Innovation Games dans une banque ...
 
Scrum day 2013 sponsoring package
Scrum day 2013 sponsoring packageScrum day 2013 sponsoring package
Scrum day 2013 sponsoring package
 
Annonces du french scrum user group v1.2
Annonces du french scrum user group   v1.2Annonces du french scrum user group   v1.2
Annonces du french scrum user group v1.2
 
Annonces du french scrum user group - rencontre du 24 juin 2011
Annonces du french scrum user group - rencontre du 24 juin 2011Annonces du french scrum user group - rencontre du 24 juin 2011
Annonces du french scrum user group - rencontre du 24 juin 2011
 
Journées NEPTUNE - Keynote Modélisation chez Microsoft
Journées NEPTUNE - Keynote Modélisation chez MicrosoftJournées NEPTUNE - Keynote Modélisation chez Microsoft
Journées NEPTUNE - Keynote Modélisation chez Microsoft
 
Enquête 2011 - Vous, votre organisation et Agile
Enquête 2011 - Vous, votre organisation et Agile Enquête 2011 - Vous, votre organisation et Agile
Enquête 2011 - Vous, votre organisation et Agile
 
Scrum Day France 2011 : ouverture avec Xavier Warzee
Scrum Day France 2011 : ouverture avec Xavier WarzeeScrum Day France 2011 : ouverture avec Xavier Warzee
Scrum Day France 2011 : ouverture avec Xavier Warzee
 
Embedding a Scrum culture avec Harvey Wheaton, Scrum Alliance
Embedding a Scrum culture avec Harvey Wheaton, Scrum AllianceEmbedding a Scrum culture avec Harvey Wheaton, Scrum Alliance
Embedding a Scrum culture avec Harvey Wheaton, Scrum Alliance
 
Path to agility, Ken Schwaber
Path to agility, Ken SchwaberPath to agility, Ken Schwaber
Path to agility, Ken Schwaber
 
Bilan 2010-2011 du FSUG
Bilan 2010-2011 du FSUGBilan 2010-2011 du FSUG
Bilan 2010-2011 du FSUG
 
Quand mon produit est un système d information
Quand mon produit est un système d informationQuand mon produit est un système d information
Quand mon produit est un système d information
 
Un format dynamique de rétrospective, Jean-Charles Meyrignac
Un format dynamique de rétrospective, Jean-Charles Meyrignac Un format dynamique de rétrospective, Jean-Charles Meyrignac
Un format dynamique de rétrospective, Jean-Charles Meyrignac
 
Le Product Owner proxy, Bertrand Dour
Le Product Owner proxy, Bertrand DourLe Product Owner proxy, Bertrand Dour
Le Product Owner proxy, Bertrand Dour
 
Scrum au-delà du projet, pour des produits et des organisations
Scrum au-delà du projet, pour des produits et des organisationsScrum au-delà du projet, pour des produits et des organisations
Scrum au-delà du projet, pour des produits et des organisations
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

Adopting Agile Tools & Methods In A Legacy Context

  • 1. Xavier Warzee Email: xavier@warzee.fr Blog: http://warzee.fr Site: http://www.agilescale.com
  • 2.
  • 3. Insurance applications Talk based on one year engagement In an insurance company A subsidiary of one of the largest french bank 6 insurance applications Used by several networks of regional insurance agencies Running in a datacenter (Mainframes, Unix servers)
  • 4. Legacy systems Applications Implemented in Java/J2EE running on Unix servers No dependency injection, no cool frameworks (Spring, Hibernate, …) Various size and maturity Business rules and services Implemented in Cobol running on IBM mainframes IBM MQ to communicate with applications
  • 5. Tools & practices Building and deployment of J2EE applications with IBM RAD6 (based on Eclipse 3.0.1) Software Configuration Management with IBM Rational Clearcase LT 2003 for Java/J2EE Nothing for Cobol developments No tests (unit & acceptance tests)
  • 6. Objectives Main objectives To develop the code really expected for each release To prepare adoption of agile methods :-) Short terms objectives based on the “follow the pain” principle Shrink time to release new versions of J2EE applications Ease deployment of applications Provide adapted testing solutions to the legacy
  • 7. Bottom-up Approach > pragmatic metrics : RTFs Monitor projects progress with RTFs (Running, Tested Features) Running means here deployed to a Websphere server (we have J2EE applications) => continuous deployment Tested means a development is done when tested => automated tests during projects building Features means make the latest developments available at any time =>
  • 8.
  • 9. Adoption strategy/audit > Identify steps to improve the development No scripted building  Manual building under RAD6/Eclipse  Checkout code, check dependencies, package correctly EAR/WAR  1 to 3 days needed to check an application is correctly packaged ! No scripted deployment  manual deployment with the Websphere console  Error prone, need to know Websphere Application Server  Need 1 or 2 days to deploy an application under WAS6.1 No code review to measure quality
  • 10. Adoption plan proposed (1/3) Use Maven to build applications/projects  No longer use an IDE to build apps/projects (error prone)  Better traceability of packaged components Develop scripts to deploy applications  Jython Scripts used both by production and development teams to deploy to Websphere AS 6.1 Avoid behavior gaps between dev and prod  environments  Scripts called from Maven to automate
  • 11. Adoption plan proposed (2/3) Review projects with Maven to measure code quality  Simple declarative approach to configure code review tools PMD, Checkstyle, FindBugs Maven plugins!   Integrate code review reporting during nightly builds Just simply use the Maven build lifecycle  Implement Builds Management with Cruisecontrol Continuous integration of changes (build, unit
  • 12. Adoption plan proposed (3/3) Implement unit tests with Junit, XMLUnit and JMockIt  Check code behaves as expected by developers !  JMockit helps to disconnect J2EE applications from MAINFRAME  To test in isolation without modifying application codes  (bytecode rewriting) Use acceptance tests with Fit/FitNesse  check code behaves as expected by users for each release  Use FitNesse plugin for RAD/Eclipse and for Maven  Post deployment tests to ensure full testability by
  • 13. In a legacy context
  • 14.
  • 15. Mike Cohn tests pyramid adoption >> current practices! • Simple Manual • usual approach Acceptance • manual and error-prone testing • traceability with requirements? Using the GUI • Technical solution Automated • Quick to run since automated tests of • numerous similar tests to write the GUI • fragile tests (HTML may change) Unit Tests • What do we test ? Priorities ? • How to identify tests to run ? • How to identify failing tests ? Start Stop Look Start Stop ?
  • 16. Mike Cohn tests pyramid adoption > target practices: the pyramid of Mike Cohn • Small number of tests • Try automate these tests Acceptance tests with the GUI • Define accurate functional tests FitNesse • Unit tests generalized • Adopt a TDD approach Unit Tests Start Stop Look Start Stop ?
  • 17. Mike Cohn tests pyramid adoption > pragmatic target practices! Acceptance • Try to reduce the number of tests tests with the GUI (if any, use FitNesse + Selenium) Automated acceptance • Use Fit/FitNesse tests Unit Tests • reach a high coverage of code • improve capacities of test with supporting tools (xUnit tools such as JMockIt, DbUnit, XMLUnit, JUnitPerf, JsUnit, …) Start Stop Look
  • 18. Presentation layer Mainframe layer Business layer (EAR) (EAR) Business Component Business MQ DAS Service (Cobol) DAO Business Service EIARD Application Business Business Component DAS Service MQ Application DAO Business Process (Cobol) Process Service Service HTML/JS/JSP Business Service Pages Business Component xml/http mq
  • 19. Functional testing with FitNesse > Business layer Black box approach Wiki to easy functional data injection! Mainframe layer Business layer Dossier component DAO DAS Functional MQ PMListeDossiers Service SUT (Cobol) Business Service PMColumnFixture Personne component Functional DAO DAS MQ Service PMGestionCompte (Cobol) SUT Business Service ElementStructure component
  • 20.
  • 21.
  • 22.
  • 23. Functional testing with FitNesse > Presentation layer with Selenium  Selenium is powerful  Issues to set timeout when MQ access not mocked! (JDBC/DB2) layer Mainframe layer Business layer Presentation Dossier component Functional MQ Service SAD (Cobol) OM CAD DevisA4 SeleniumRunner Personne component Functional CAD MQ Service PUPerteMdp PMGestionCompte (Cobol) Selenium RC Pages OM Request HTML/JS/JSP EIARD application ElementStructure component Other systems
  • 24. Testing scenarios > Car insurance quote scenario  Write scenario in natural language with the FitNesse wiki  Use the SeleniumRunner fixture to translate natural languages into Selenium verbs (open, click, select, …)  The SeleniumRunner fixture invokes a Selenium instance  The Selenium instance interacts with the application !
  • 25. FitNesse Tests & Continuous integration 1/3 3 4 5 6 Deployment Platform Continuous integration server machine - Windows Service : Selenium-RC - Windows Service : FitNesse Server (port 9987) 1 2 1 – Check in (restitution) 2 – Projects updated on the continuous integration server 3 – Projects built : compilation, application and tests resources generation, unit tests and components tests execution, code review, 4 – Projects deployment (when needed : EAR) SCM repository 5 – Acceptation tests executed using FitNesse (Clearcase, SVN, …) (and Selenium) 6 – Notification by email
  • 26. FitNesse Tests & Continuous integration 2/3 > Maven command called by Cruisecontrol Definition of a Maven profile: “fitnesse” To declare and configure Fitnesse plugin To set FitNesse parameters to use Here for the Dossier project:  <fitNesseServerName>s00sic001.ca-pacifica.fr</fitNesseServerName>  <fitNesseServerPort>8081</fitNesseServerPort>  <fitNesseServerPage>TestsAcceptation.TestsNm.TestsDossier</fitNe  sseServerPage> Select a Maven project phase After “package”: ear applications are deployed to  Websphere App Server during this phase !!! (création du jar) Command to launch FitNesse tests
  • 27. FitNesse Tests & Continuous integration 3/3 Cruisecontrol builds applications with Maven Maven launches FitNesse tests (if present) after  application deployment  Cruisecontrol webapp adapted to collect FitNesse results in a new tab !  Adaptation de Cruisecontrol  Ajout d’un onglet Fit (FitNesse est la surcouche Wiki à Fit)
  • 28. How to define scenarios? (1/3) Launch an application with Firefox (here e- IARD) Select Tools -> “Selenium IDE”
  • 29. How to define scenarios? (2/3)  Complete forms for Car Insurance Quote (“Simulation Assurance Automobile”) Events captures by Selenium IDE 
  • 30. How to define scenarios? (3/3)  FitNesse Page
  • 31. FitNesse reports > included in the web site generated by Maven Integration of The FitNesse report
  • 32. Eclipse/RAD plugins > Plugin Eclipse FitNesse (Band XI) Boutons d’accés aux serveurs Fitnesse En local   En remote
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38. Incremental releases Iterative releases