EuroSTAR 2011 Agile on huge banking mainframe legacy systems. Is it possible? Christian Bendix Kjær Hansen Test Manager November 22, 2011
What is this presentation about? Goal Inspire others working with mainframe to go agile Provide insight on Our challenges when going Agile How we face these challenges Our key experiences How far are we on our Agile journey?
Agenda Introduction Getting started with Agile Challenge 1 Huge batch programs Challenge 2 Legacy system Challenge 3 Test automation Automated unit test System test in India Conclusion
Christian B.K. Hansen Working experience Test practitioner for 7 years Test Manager in Danske Bank Test analyst/designer in IBM Test Certifications ISEB foundation and ISEB Practitioner (with distinction) Education MSc in Mathematics from Aarhus University Computer Science as Minor subject
One group, One core system, Multiple channels Teller ATMs Markets Online CRM Customer Advisory Tools Corporate e-banking Branches Cash Management Retail e-banking Brand Channel Product Loan Finance Centres Treasury Contact Centre Asset Customer Management Packages Cheque Core Interests Securities Currency Payments IT Group Custody Customer Security Fees Group Forex Cards Customer Accounts Finance output Organisation Workflow Bookkeeping Data Trade Warehouse Finance Asset Finance Business procedures Business Controlling e.g. Credit, Risk, GMI & ERP/Axapta Insurance & Pension Customer Portal Intranet Portal Internet Homepages Telephone Banking
About the project Card Group Invoice Stabilize and Consolidate Credit card invoices Mainframe, legacy and batch Costly to maintain and extend Stabilize and Consolidate Solving known issues Consolidate functionality
Agenda Introduction Getting started with Agile Challenge 1 Huge batch programs Challenge 2 Legacy system Challenge 3 Test automation Automated unit test System test in India Conclusion
Getting started with Agile Scrum One month sprints root causes and consolidation tasks Iterative Small corrections released Challenges Testing too time consuming Code corrections too time consuming No test automation tool support Team Dedicated and committed team
Agile practices (from agilemanifesto.org) Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done The best architectures, requirements, and designs emerge from self-organizing teams The most efficient and effective method of conveying information to and within a development team is face-to-face conversation At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly
Agenda Introduction Getting started with Agile Challenge 1 Huge batch programs Challenge 2 Legacy system Challenge 3 Test automation Automated unit test System test in India Conclusion
Challenge 1 Huge batch programs Challenge Testing is extremely time consuming Causes All functionality in one program Complex test data needed Shared test environment across projects
Challenge 1 Huge batch programs Solution Requirement to new system design with high testability
Challenge 1 Huge batch programs Agile principle Continuous attention to technical excellence and good design enhances agility Status Now: Any change tested in 1-2 days Future: Any change tested the same day
Agenda Introduction Getting started with Agile Challenge 1 Huge batch programs Challenge 2 Legacy system Challenge 3 Test automation Automated unit test System test in India Conclusion
Challenge 2 Legacy system Challenge: Code corrections difficult and time consuming Causes Lacking maintainability and extendibility Undocumented functionality Solution Requirement to system maintainability Refactoring System documentation
Challenge 2 Legacy system Agile principle Simplicity--the art of maximizing the amount of work not done--is essential Status Now: Main batch program completed Future: All functionality in the invoice flow
Agenda Introduction Getting started with Agile Challenge 1 Huge batch programs Challenge 2 Legacy system Challenge 3 Test automation Automated unit test System test in India Conclusion
Challenge 3 Test automation Challenge Status of the system not visible Causes Automated test not possible Solution Build our own unit test tool
Automated unit test Unit test process - demo Unit Test Demo
Service tester (in Eclipse )
Create test cases (in Microsoft Excel)
Create unit test script
Create unit test script
Create unit test script
Create unit test script
Create unit test script
Create unit test suite
Execute unit test suite
View unit test execution report
Automated unit test Unit test process - demo Experiences Unit Test Demo Pilot, dedicated resource, resistance Improved test process, status on modules, beneficial
Challenge 3 Test automation Challenge Status of the system not visible Causes Automated test not possible Solution Build our own unit test tool Utilize internal offshore test center for system test
System test in India Test Centre of Excellence Dedicated test specialist Follow sprints (not in team) System test process Automation in QTP of manual test cases Existing version = Test Oracle for expected results Experiences Daily status on the system can be obtained Frequent regression test on system level is possible
Challenge 3 Test automation Challenge Status of the system not visible Causes Automated test not possible Solution Build our own unit test tool Utilize internal offshore test center for system test
Challenge 3 Test automation Agile principle Working software is the primary measure of progress Status Now: Status on modules on request Now: Status on main batch program on request (daily) Future: Daily status on the entire invoice flow
Agenda Introduction Getting started with Agile Challenge 1 Huge batch programs Challenge 2 Legacy system Challenge 3 Test automation Automated unit test System test in India Discussion and conclusion
Lessons learned Scrum supports a good start on agile Key learning Requirement to Testability Requirement to Maintainability Build own tool Benefits from design before implementing it It can be difficult but it is not impossible!
Agile or not? What does it take to be agile? Compliance with the Agile principles supporting the Agile manifesto
Principles behind the Agile Manifesto Our highest priority is to satisfy the customer through early and continuous delivery of valuable software Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale Business people and developers must work together daily throughout the project Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done The most efficient and effective method of conveying information to and within a development team is face-to-face conversation Working software is the primary measure of progress Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely Continuous attention to technical excellence and good design enhances agility Simplicity--the art of maximizing the amount of work not done--is essential The best architectures, requirements, and designs emerge from self-organizing teams At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly
Agile or not? What does it take to be agile? Compliance with the Agile principles supporting the Agile manifesto We are agile!
Questions
Conclusion Did we managed to become agile or did we just made a huge improvement in our development process and in our test process in particular? I think, we did both! Huge process improvements Started the agile journey