SlideShare a Scribd company logo
1 of 32
Download to read offline
Redefining the unit
Felix Holzäpfel-Stein & Michael Calvert
© 2020 ThoughtWorks
Mainframes and Cobol
The client context
© 2020 ThoughtWorks
Potentially shippable
increment
every 2 weeks?
Quarterly releases
with
6 weeks of
manual testing
Large insurance
with
many critical
mainframe systems
Transformation
towards
continuous and agile
software development
practices
---------------------------- XConf 2020 ----------------------------
Agenda =>
0 Context
1 Finding a testable unit
2 Testing a unit
3 Conclusions
X to exit
3270 ---------------------------------------------------------------
© 2020 ThoughtWorks
June 2020
SU MO TU WE TH FR SA
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
© 2020 ThoughtWorks
…Modules
…10k lines
of code
…Maybe
even 30k...
© 2020 ThoughtWorks
…sub
programs
…up to 3k
lines of code
© 2020 ThoughtWorks
…sections
…isolation
not possible
---------------------------- XConf 2020 ----------------------------
Agenda =>
0 Context
1 Finding a testable unit
2 Testing a unit
3 Conclusions
X to exit
3270 ---------------------------------------------------------------
© 2020 ThoughtWorks
June 2020
SU MO TU WE TH FR SA
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Some things beforehand
© 2020 ThoughtWorks
No
Cobol DSL Grammar &
Parsing
NoMAINFRAME
Running stuff on the Mainframe is expensive
© 2020 ThoughtWorks
An example module
IDENTIFICATION DIVISION.
PROGRAM-ID. MY-PROGRAM.
© 2020 ThoughtWorks
Hello, XConf 2020
Enter a number:
4
Enter another number:
13
The Result is :
000000000000017
Program metadata
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A-NAME PIC A(30).
01 AN-ID PIC 9(5) VALUE '12345'.
01 A-NUM PIC 9(12) VALUE '0'.
01 OTHER-NUM PIC 9(12) VALUE '0'.
01 RESULT PIC 9(15) VALUE '0'.
PROCEDURE DIVISION.
MOVE 'XConf 2020' TO A-NAME.
DISPLAY "Hello, "A-NAME.
DISPLAY "Enter a number:"
ACCEPT A-NUM.
DISPLAY "Enter another number:"
ACCEPT OTHER-NUM.
PERFORM ADD-TWO-INTS.
ADD-TWO-INTS SECTION.
ADD A-NUM OTHER-NUM GIVING RESULT.
DISPLAY "The Result is : "RESULT
STOP RUN.
11
Variable definitions
2
2
Like a main()
function
Like calling a
function
Like defining a
function
3
4
5
3
4
5
Building a test driver
ADD-TWO-INTS SECTION.
ADD A-NUM OTHER-NUM GIVING RESULT.
DISPLAY "The Result is : "RESULT
© 2020 ThoughtWorks
ADD-TWO-INTS SECTION.
ADD A-NUM OTHER-NUM GIVING RESULT.
DISPLAY "The Result is : "RESULT
ADD-TWO-INTS SECTION.
ADD A-NUM OTHER-NUM GIVING RESULT.
DISPLAY "The Result is : "RESULT
ADD-TWO-INTS SECTION.
ADD A-NUM OTHER-NUM GIVING RESULT.
DISPLAY "The Result is : "RESULT
WORKING-STORAGE SECTION.
01 A-NUM PIC 9(12) VALUE '0'.
LINKAGE SECTION.
01 OTHER-NUM PIC 9(12).
PROGRAM-ID. ANOTHER-PROGRAM.
WORKING-STORAGE SECTION.
01 A-NUM EXTERNAL PIC 9(12).
Module
Section
Traversing the syntax tree
© 2020 ThoughtWorks
Sub program
Sub program
Section
Declaration here
Declaration here
Declaration not
really here
User Research
© 2020 ThoughtWorks
Error messages
© 2020 ThoughtWorks Images from: https://www.techrepublic.com/pictures/weird-error-messages/14/
Mocking
© 2020 ThoughtWorks
ADD-TWO-INTS SECTION.
ADD A-NUM OTHER-NUM GIVING RESULT.
DISPLAY "The Result is : "RESULT
CALL 'CLEAN-UP' USING A-NUM, OTHER-NUM.
PERFORM PREPARE-SOMETHING.
Mocking
© 2020 ThoughtWorks
MOCK SECTION PREPARE-SOMETHING
<cobol>
MOVE 0 TO A-NUM.
</cobol>
END-MOCK
Fast feedback loop?
© 2020 ThoughtWorks
We still need to parse the
entire Cobol program...
© 2020 ThoughtWorks
What is a mainframe?
© 2020 ThoughtWorks
Compatibility with
older systems
Punch cards.
© 2020 ThoughtWorks
---------------------------- XConf 2020 ----------------------------
Agenda =>
0 Context
1 Finding a testable unit
2 Testing a unit
3 Conclusions
X to exit
3270 ---------------------------------------------------------------
© 2020 ThoughtWorks
June 2020
SU MO TU WE TH FR SA
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Conclusions
© 2020 ThoughtWorks
What we learnt in this wrestling match with
technology
Build
Collect user
feedback
Learn from
feedback
Our assumption of what a COBOL unit
test should be or look like was not what
our users needed or wanted
● Build an increment with small changes
● Actively test it in a user workshop
● Learn from and adapt to user feedback
User centric approach
© 2020 ThoughtWorks
How accurate do we
really need to be?
© 2020 ThoughtWorks
“Ambiguity? Never heard of it.”
- IBM Cobol Compiler*, 2019
© 2020 ThoughtWorks
*Not a real quote. The IBM Compiler never actually spoke these words. We’re pretty sure it was
thinking it though. Along with other evil things.
“Please, do not fix this [compiler]
issue. This is a programming error
that the IBM compiler does not catch
currently”
- Client Testmanager
© 2020 ThoughtWorks
How accurate do we
really need to be?
© 2020 ThoughtWorks
Actually not 100%
accurate
© 2020 ThoughtWorks
Fast feedback but not too expensive
© 2020 ThoughtWorks
Felix Holzäpfel-Stein &
Michael Calvert
Thank you
© 2020 ThoughtWorks
Continue the
conversation on Slack
© 2020 ThoughtWorks
XConfEurope2020
xconfeurope2020.slack.com
#talk1-redefining-the-unit
#XConfOnline

More Related Content

What's hot

Designers, Developers & Dogs
Designers, Developers & DogsDesigners, Developers & Dogs
Designers, Developers & DogsThoughtworks
 
Cheetah solver breakthrough in geometric constraints modeling
Cheetah solver   breakthrough in geometric constraints modelingCheetah solver   breakthrough in geometric constraints modeling
Cheetah solver breakthrough in geometric constraints modelingNick Sidorenko
 
Solving The Agile Contract Puzzle
Solving The Agile Contract PuzzleSolving The Agile Contract Puzzle
Solving The Agile Contract PuzzleAgile Montréal
 
Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22Thoughtworks
 
La loi de Little et le Throughput Accounting - La convergence de la science
La loi de Little et le Throughput Accounting - La convergence de la scienceLa loi de Little et le Throughput Accounting - La convergence de la science
La loi de Little et le Throughput Accounting - La convergence de la scienceAgile Montréal
 
Leading Digital Success - Tetris - TOPS
Leading Digital Success - Tetris - TOPSLeading Digital Success - Tetris - TOPS
Leading Digital Success - Tetris - TOPSDino Frese
 
CDIA+ trial course
CDIA+ trial courseCDIA+ trial course
CDIA+ trial courseDataVault
 
Training offerings sample
Training offerings sampleTraining offerings sample
Training offerings sampleDataVault
 
Continuous Intelligence: Keeping Your AI Application in Production (NDC Sydne...
Continuous Intelligence: Keeping Your AI Application in Production (NDC Sydne...Continuous Intelligence: Keeping Your AI Application in Production (NDC Sydne...
Continuous Intelligence: Keeping Your AI Application in Production (NDC Sydne...Dr. Arif Wider
 
Marc Schuetz (PTC): Solving Manufacturing & Service Challenges with Augmented...
Marc Schuetz (PTC): Solving Manufacturing & Service Challenges with Augmented...Marc Schuetz (PTC): Solving Manufacturing & Service Challenges with Augmented...
Marc Schuetz (PTC): Solving Manufacturing & Service Challenges with Augmented...AugmentedWorldExpo
 
"Smart maintenance". An Augmented Reality Platform for Training and Field Ope...
"Smart maintenance". An Augmented Reality Platform for Training and Field Ope..."Smart maintenance". An Augmented Reality Platform for Training and Field Ope...
"Smart maintenance". An Augmented Reality Platform for Training and Field Ope...Graziano Terenzi
 
Éviter les pièges du waterfall dans un contexte de livraison de projet agile:...
Éviter les pièges du waterfall dans un contexte de livraison de projet agile:...Éviter les pièges du waterfall dans un contexte de livraison de projet agile:...
Éviter les pièges du waterfall dans un contexte de livraison de projet agile:...Agile Montréal
 
DevOps is the Answer... What was the question again? DevOps and Digital Trans...
DevOps is the Answer... What was the question again? DevOps and Digital Trans...DevOps is the Answer... What was the question again? DevOps and Digital Trans...
DevOps is the Answer... What was the question again? DevOps and Digital Trans...DevOpsGroup
 

What's hot (14)

Designers, Developers & Dogs
Designers, Developers & DogsDesigners, Developers & Dogs
Designers, Developers & Dogs
 
Cheetah solver breakthrough in geometric constraints modeling
Cheetah solver   breakthrough in geometric constraints modelingCheetah solver   breakthrough in geometric constraints modeling
Cheetah solver breakthrough in geometric constraints modeling
 
Solving The Agile Contract Puzzle
Solving The Agile Contract PuzzleSolving The Agile Contract Puzzle
Solving The Agile Contract Puzzle
 
Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22
 
La loi de Little et le Throughput Accounting - La convergence de la science
La loi de Little et le Throughput Accounting - La convergence de la scienceLa loi de Little et le Throughput Accounting - La convergence de la science
La loi de Little et le Throughput Accounting - La convergence de la science
 
Leading Digital Success - Tetris - TOPS
Leading Digital Success - Tetris - TOPSLeading Digital Success - Tetris - TOPS
Leading Digital Success - Tetris - TOPS
 
CDIA+ trial course
CDIA+ trial courseCDIA+ trial course
CDIA+ trial course
 
Training offerings sample
Training offerings sampleTraining offerings sample
Training offerings sample
 
Continuous Intelligence: Keeping Your AI Application in Production (NDC Sydne...
Continuous Intelligence: Keeping Your AI Application in Production (NDC Sydne...Continuous Intelligence: Keeping Your AI Application in Production (NDC Sydne...
Continuous Intelligence: Keeping Your AI Application in Production (NDC Sydne...
 
Marc Schuetz (PTC): Solving Manufacturing & Service Challenges with Augmented...
Marc Schuetz (PTC): Solving Manufacturing & Service Challenges with Augmented...Marc Schuetz (PTC): Solving Manufacturing & Service Challenges with Augmented...
Marc Schuetz (PTC): Solving Manufacturing & Service Challenges with Augmented...
 
"Smart maintenance". An Augmented Reality Platform for Training and Field Ope...
"Smart maintenance". An Augmented Reality Platform for Training and Field Ope..."Smart maintenance". An Augmented Reality Platform for Training and Field Ope...
"Smart maintenance". An Augmented Reality Platform for Training and Field Ope...
 
Éviter les pièges du waterfall dans un contexte de livraison de projet agile:...
Éviter les pièges du waterfall dans un contexte de livraison de projet agile:...Éviter les pièges du waterfall dans un contexte de livraison de projet agile:...
Éviter les pièges du waterfall dans un contexte de livraison de projet agile:...
 
Agile SAP ACTIVATE
Agile SAP ACTIVATEAgile SAP ACTIVATE
Agile SAP ACTIVATE
 
DevOps is the Answer... What was the question again? DevOps and Digital Trans...
DevOps is the Answer... What was the question again? DevOps and Digital Trans...DevOps is the Answer... What was the question again? DevOps and Digital Trans...
DevOps is the Answer... What was the question again? DevOps and Digital Trans...
 

Similar to Redefining the unit

Precomputing recommendations with Apache Beam
Precomputing recommendations with Apache BeamPrecomputing recommendations with Apache Beam
Precomputing recommendations with Apache BeamTatiana Al-Chueyr
 
© SAP SE CASE STUDY .docx
 © SAP SE   CASE STUDY .docx © SAP SE   CASE STUDY .docx
© SAP SE CASE STUDY .docxmayank272369
 
GENERAL VENTURES EDD DIRECTOR KATHRYN GALLIONPAGE 3 EDITED CALAVERAS COUNTY ...
GENERAL VENTURES EDD DIRECTOR KATHRYN GALLIONPAGE 3 EDITED  CALAVERAS COUNTY ...GENERAL VENTURES EDD DIRECTOR KATHRYN GALLIONPAGE 3 EDITED  CALAVERAS COUNTY ...
GENERAL VENTURES EDD DIRECTOR KATHRYN GALLIONPAGE 3 EDITED CALAVERAS COUNTY ...DeniseMathre1
 
DESIGN AND ANALYSIS OF SLAT OPERATED BRAKING SYSTEM
DESIGN AND ANALYSIS OF SLAT OPERATED BRAKING SYSTEMDESIGN AND ANALYSIS OF SLAT OPERATED BRAKING SYSTEM
DESIGN AND ANALYSIS OF SLAT OPERATED BRAKING SYSTEMIRJET Journal
 
Question 1Using Powerpoint, Word, Visio or any other graphical e.docx
Question 1Using Powerpoint, Word, Visio or any other graphical e.docxQuestion 1Using Powerpoint, Word, Visio or any other graphical e.docx
Question 1Using Powerpoint, Word, Visio or any other graphical e.docxIRESH3
 
Splunk 4 Ninja ITSI Workshop
Splunk 4 Ninja ITSI WorkshopSplunk 4 Ninja ITSI Workshop
Splunk 4 Ninja ITSI WorkshopMarc Serieys
 
Discus In-Process Inspection Planning
Discus In-Process Inspection PlanningDiscus In-Process Inspection Planning
Discus In-Process Inspection PlanningDISCUS Software
 
Realize 2022 MINO 7 year of implementation v0.1.pptx
Realize 2022 MINO 7 year of implementation v0.1.pptxRealize 2022 MINO 7 year of implementation v0.1.pptx
Realize 2022 MINO 7 year of implementation v0.1.pptxjakobkuhn
 
CADISON world Issue-1-2013
CADISON world Issue-1-2013CADISON world Issue-1-2013
CADISON world Issue-1-2013CADISON
 
Cis 115 Education Redefined-snaptutorial.com
Cis 115 Education Redefined-snaptutorial.comCis 115 Education Redefined-snaptutorial.com
Cis 115 Education Redefined-snaptutorial.comrobertledwes38
 
Oracle - Checklist for performance issues
Oracle - Checklist for performance issuesOracle - Checklist for performance issues
Oracle - Checklist for performance issuesMarkus Flechtner
 
Checklist for Cost Control Dept in Contracting Company
Checklist for Cost Control Dept in Contracting CompanyChecklist for Cost Control Dept in Contracting Company
Checklist for Cost Control Dept in Contracting Companykashif khawja
 
Taming the Tiger: Tips and Tricks for Using Telegraf
Taming the Tiger: Tips and Tricks for Using TelegrafTaming the Tiger: Tips and Tricks for Using Telegraf
Taming the Tiger: Tips and Tricks for Using TelegrafInfluxData
 
IRJET- Multi Tasking Software for Manufacturing Industry
IRJET- Multi Tasking Software for Manufacturing IndustryIRJET- Multi Tasking Software for Manufacturing Industry
IRJET- Multi Tasking Software for Manufacturing IndustryIRJET Journal
 
1. Why was Unicord successful in Thailand Describe the opportuni.docx
1. Why was Unicord successful in Thailand  Describe the opportuni.docx1. Why was Unicord successful in Thailand  Describe the opportuni.docx
1. Why was Unicord successful in Thailand Describe the opportuni.docxpaynetawnya
 
Lean cost planning by Takashi Tanaka at the Lean IT Summit 2013
Lean cost planning by Takashi Tanaka at the Lean IT Summit 2013Lean cost planning by Takashi Tanaka at the Lean IT Summit 2013
Lean cost planning by Takashi Tanaka at the Lean IT Summit 2013Institut Lean France
 

Similar to Redefining the unit (20)

Precomputing recommendations with Apache Beam
Precomputing recommendations with Apache BeamPrecomputing recommendations with Apache Beam
Precomputing recommendations with Apache Beam
 
© SAP SE CASE STUDY .docx
 © SAP SE   CASE STUDY .docx © SAP SE   CASE STUDY .docx
© SAP SE CASE STUDY .docx
 
GENERAL VENTURES EDD DIRECTOR KATHRYN GALLIONPAGE 3 EDITED CALAVERAS COUNTY ...
GENERAL VENTURES EDD DIRECTOR KATHRYN GALLIONPAGE 3 EDITED  CALAVERAS COUNTY ...GENERAL VENTURES EDD DIRECTOR KATHRYN GALLIONPAGE 3 EDITED  CALAVERAS COUNTY ...
GENERAL VENTURES EDD DIRECTOR KATHRYN GALLIONPAGE 3 EDITED CALAVERAS COUNTY ...
 
DESIGN AND ANALYSIS OF SLAT OPERATED BRAKING SYSTEM
DESIGN AND ANALYSIS OF SLAT OPERATED BRAKING SYSTEMDESIGN AND ANALYSIS OF SLAT OPERATED BRAKING SYSTEM
DESIGN AND ANALYSIS OF SLAT OPERATED BRAKING SYSTEM
 
CATS Approval.pdf
CATS Approval.pdfCATS Approval.pdf
CATS Approval.pdf
 
Question 1Using Powerpoint, Word, Visio or any other graphical e.docx
Question 1Using Powerpoint, Word, Visio or any other graphical e.docxQuestion 1Using Powerpoint, Word, Visio or any other graphical e.docx
Question 1Using Powerpoint, Word, Visio or any other graphical e.docx
 
Splunk 4 Ninja ITSI Workshop
Splunk 4 Ninja ITSI WorkshopSplunk 4 Ninja ITSI Workshop
Splunk 4 Ninja ITSI Workshop
 
Discus In-Process Inspection Planning
Discus In-Process Inspection PlanningDiscus In-Process Inspection Planning
Discus In-Process Inspection Planning
 
PoC Oracle Exadata - Retour d'expérience
PoC Oracle Exadata - Retour d'expériencePoC Oracle Exadata - Retour d'expérience
PoC Oracle Exadata - Retour d'expérience
 
Realize 2022 MINO 7 year of implementation v0.1.pptx
Realize 2022 MINO 7 year of implementation v0.1.pptxRealize 2022 MINO 7 year of implementation v0.1.pptx
Realize 2022 MINO 7 year of implementation v0.1.pptx
 
CADISON world Issue-1-2013
CADISON world Issue-1-2013CADISON world Issue-1-2013
CADISON world Issue-1-2013
 
Cis 115 Education Redefined-snaptutorial.com
Cis 115 Education Redefined-snaptutorial.comCis 115 Education Redefined-snaptutorial.com
Cis 115 Education Redefined-snaptutorial.com
 
Openobject bi
Openobject biOpenobject bi
Openobject bi
 
Oracle - Checklist for performance issues
Oracle - Checklist for performance issuesOracle - Checklist for performance issues
Oracle - Checklist for performance issues
 
Checklist for Cost Control Dept in Contracting Company
Checklist for Cost Control Dept in Contracting CompanyChecklist for Cost Control Dept in Contracting Company
Checklist for Cost Control Dept in Contracting Company
 
Taming the Tiger: Tips and Tricks for Using Telegraf
Taming the Tiger: Tips and Tricks for Using TelegrafTaming the Tiger: Tips and Tricks for Using Telegraf
Taming the Tiger: Tips and Tricks for Using Telegraf
 
IRJET- Multi Tasking Software for Manufacturing Industry
IRJET- Multi Tasking Software for Manufacturing IndustryIRJET- Multi Tasking Software for Manufacturing Industry
IRJET- Multi Tasking Software for Manufacturing Industry
 
COCOMO MODEL
COCOMO MODELCOCOMO MODEL
COCOMO MODEL
 
1. Why was Unicord successful in Thailand Describe the opportuni.docx
1. Why was Unicord successful in Thailand  Describe the opportuni.docx1. Why was Unicord successful in Thailand  Describe the opportuni.docx
1. Why was Unicord successful in Thailand Describe the opportuni.docx
 
Lean cost planning by Takashi Tanaka at the Lean IT Summit 2013
Lean cost planning by Takashi Tanaka at the Lean IT Summit 2013Lean cost planning by Takashi Tanaka at the Lean IT Summit 2013
Lean cost planning by Takashi Tanaka at the Lean IT Summit 2013
 

More from Thoughtworks

Design System as a Product
Design System as a ProductDesign System as a Product
Design System as a ProductThoughtworks
 
Cloud-first for fast innovation
Cloud-first for fast innovationCloud-first for fast innovation
Cloud-first for fast innovationThoughtworks
 
More impact with flexible teams
More impact with flexible teamsMore impact with flexible teams
More impact with flexible teamsThoughtworks
 
Culture of Innovation
Culture of InnovationCulture of Innovation
Culture of InnovationThoughtworks
 
Developer Experience
Developer ExperienceDeveloper Experience
Developer ExperienceThoughtworks
 
Hardware is hard(er)
Hardware is hard(er)Hardware is hard(er)
Hardware is hard(er)Thoughtworks
 
Amazon's Culture of Innovation
Amazon's Culture of InnovationAmazon's Culture of Innovation
Amazon's Culture of InnovationThoughtworks
 
Don't cross the Rubicon
Don't cross the RubiconDon't cross the Rubicon
Don't cross the RubiconThoughtworks
 
Your test coverage is a lie!
Your test coverage is a lie!Your test coverage is a lie!
Your test coverage is a lie!Thoughtworks
 
Docker container security
Docker container securityDocker container security
Docker container securityThoughtworks
 
A Tribute to Turing
A Tribute to TuringA Tribute to Turing
A Tribute to TuringThoughtworks
 
Rsa maths worked out
Rsa maths worked outRsa maths worked out
Rsa maths worked outThoughtworks
 
Do No Harm: Do Technologists Need a Code of Ethics?
Do No Harm: Do Technologists Need a Code of Ethics?Do No Harm: Do Technologists Need a Code of Ethics?
Do No Harm: Do Technologists Need a Code of Ethics?Thoughtworks
 
Making best-in-class security ubiquitous - Why security is no longer just an ...
Making best-in-class security ubiquitous - Why security is no longer just an ...Making best-in-class security ubiquitous - Why security is no longer just an ...
Making best-in-class security ubiquitous - Why security is no longer just an ...Thoughtworks
 
Security by default - Building continuous cyber-resilience.
Security by default - Building continuous cyber-resilience.Security by default - Building continuous cyber-resilience.
Security by default - Building continuous cyber-resilience.Thoughtworks
 
How to tell secrets
How to tell secretsHow to tell secrets
How to tell secretsThoughtworks
 
Alice has a Blue Car: Beginning the Conversation Around Ethically Aware Decis...
Alice has a Blue Car: Beginning the Conversation Around Ethically Aware Decis...Alice has a Blue Car: Beginning the Conversation Around Ethically Aware Decis...
Alice has a Blue Car: Beginning the Conversation Around Ethically Aware Decis...Thoughtworks
 
Holistic approach to cloud adoption
Holistic approach to cloud adoptionHolistic approach to cloud adoption
Holistic approach to cloud adoptionThoughtworks
 
Ada Lovelace Day 2019 - Sydney
Ada Lovelace Day 2019 - SydneyAda Lovelace Day 2019 - Sydney
Ada Lovelace Day 2019 - SydneyThoughtworks
 

More from Thoughtworks (20)

Design System as a Product
Design System as a ProductDesign System as a Product
Design System as a Product
 
Cloud-first for fast innovation
Cloud-first for fast innovationCloud-first for fast innovation
Cloud-first for fast innovation
 
More impact with flexible teams
More impact with flexible teamsMore impact with flexible teams
More impact with flexible teams
 
Culture of Innovation
Culture of InnovationCulture of Innovation
Culture of Innovation
 
Dual-Track Agile
Dual-Track AgileDual-Track Agile
Dual-Track Agile
 
Developer Experience
Developer ExperienceDeveloper Experience
Developer Experience
 
Hardware is hard(er)
Hardware is hard(er)Hardware is hard(er)
Hardware is hard(er)
 
Amazon's Culture of Innovation
Amazon's Culture of InnovationAmazon's Culture of Innovation
Amazon's Culture of Innovation
 
Don't cross the Rubicon
Don't cross the RubiconDon't cross the Rubicon
Don't cross the Rubicon
 
Your test coverage is a lie!
Your test coverage is a lie!Your test coverage is a lie!
Your test coverage is a lie!
 
Docker container security
Docker container securityDocker container security
Docker container security
 
A Tribute to Turing
A Tribute to TuringA Tribute to Turing
A Tribute to Turing
 
Rsa maths worked out
Rsa maths worked outRsa maths worked out
Rsa maths worked out
 
Do No Harm: Do Technologists Need a Code of Ethics?
Do No Harm: Do Technologists Need a Code of Ethics?Do No Harm: Do Technologists Need a Code of Ethics?
Do No Harm: Do Technologists Need a Code of Ethics?
 
Making best-in-class security ubiquitous - Why security is no longer just an ...
Making best-in-class security ubiquitous - Why security is no longer just an ...Making best-in-class security ubiquitous - Why security is no longer just an ...
Making best-in-class security ubiquitous - Why security is no longer just an ...
 
Security by default - Building continuous cyber-resilience.
Security by default - Building continuous cyber-resilience.Security by default - Building continuous cyber-resilience.
Security by default - Building continuous cyber-resilience.
 
How to tell secrets
How to tell secretsHow to tell secrets
How to tell secrets
 
Alice has a Blue Car: Beginning the Conversation Around Ethically Aware Decis...
Alice has a Blue Car: Beginning the Conversation Around Ethically Aware Decis...Alice has a Blue Car: Beginning the Conversation Around Ethically Aware Decis...
Alice has a Blue Car: Beginning the Conversation Around Ethically Aware Decis...
 
Holistic approach to cloud adoption
Holistic approach to cloud adoptionHolistic approach to cloud adoption
Holistic approach to cloud adoption
 
Ada Lovelace Day 2019 - Sydney
Ada Lovelace Day 2019 - SydneyAda Lovelace Day 2019 - Sydney
Ada Lovelace Day 2019 - Sydney
 

Recently uploaded

WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburgmasabamasaba
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 

Recently uploaded (20)

WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 

Redefining the unit

  • 1. Redefining the unit Felix Holzäpfel-Stein & Michael Calvert © 2020 ThoughtWorks
  • 3. The client context © 2020 ThoughtWorks Potentially shippable increment every 2 weeks? Quarterly releases with 6 weeks of manual testing Large insurance with many critical mainframe systems Transformation towards continuous and agile software development practices
  • 4. ---------------------------- XConf 2020 ---------------------------- Agenda => 0 Context 1 Finding a testable unit 2 Testing a unit 3 Conclusions X to exit 3270 --------------------------------------------------------------- © 2020 ThoughtWorks June 2020 SU MO TU WE TH FR SA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
  • 5. © 2020 ThoughtWorks …Modules …10k lines of code …Maybe even 30k...
  • 8. ---------------------------- XConf 2020 ---------------------------- Agenda => 0 Context 1 Finding a testable unit 2 Testing a unit 3 Conclusions X to exit 3270 --------------------------------------------------------------- © 2020 ThoughtWorks June 2020 SU MO TU WE TH FR SA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
  • 9. Some things beforehand © 2020 ThoughtWorks No Cobol DSL Grammar & Parsing NoMAINFRAME
  • 10. Running stuff on the Mainframe is expensive © 2020 ThoughtWorks
  • 11. An example module IDENTIFICATION DIVISION. PROGRAM-ID. MY-PROGRAM. © 2020 ThoughtWorks Hello, XConf 2020 Enter a number: 4 Enter another number: 13 The Result is : 000000000000017 Program metadata DATA DIVISION. WORKING-STORAGE SECTION. 01 A-NAME PIC A(30). 01 AN-ID PIC 9(5) VALUE '12345'. 01 A-NUM PIC 9(12) VALUE '0'. 01 OTHER-NUM PIC 9(12) VALUE '0'. 01 RESULT PIC 9(15) VALUE '0'. PROCEDURE DIVISION. MOVE 'XConf 2020' TO A-NAME. DISPLAY "Hello, "A-NAME. DISPLAY "Enter a number:" ACCEPT A-NUM. DISPLAY "Enter another number:" ACCEPT OTHER-NUM. PERFORM ADD-TWO-INTS. ADD-TWO-INTS SECTION. ADD A-NUM OTHER-NUM GIVING RESULT. DISPLAY "The Result is : "RESULT STOP RUN. 11 Variable definitions 2 2 Like a main() function Like calling a function Like defining a function 3 4 5 3 4 5
  • 12. Building a test driver ADD-TWO-INTS SECTION. ADD A-NUM OTHER-NUM GIVING RESULT. DISPLAY "The Result is : "RESULT © 2020 ThoughtWorks ADD-TWO-INTS SECTION. ADD A-NUM OTHER-NUM GIVING RESULT. DISPLAY "The Result is : "RESULT ADD-TWO-INTS SECTION. ADD A-NUM OTHER-NUM GIVING RESULT. DISPLAY "The Result is : "RESULT ADD-TWO-INTS SECTION. ADD A-NUM OTHER-NUM GIVING RESULT. DISPLAY "The Result is : "RESULT WORKING-STORAGE SECTION. 01 A-NUM PIC 9(12) VALUE '0'. LINKAGE SECTION. 01 OTHER-NUM PIC 9(12). PROGRAM-ID. ANOTHER-PROGRAM. WORKING-STORAGE SECTION. 01 A-NUM EXTERNAL PIC 9(12).
  • 13. Module Section Traversing the syntax tree © 2020 ThoughtWorks Sub program Sub program Section Declaration here Declaration here Declaration not really here
  • 14. User Research © 2020 ThoughtWorks
  • 15. Error messages © 2020 ThoughtWorks Images from: https://www.techrepublic.com/pictures/weird-error-messages/14/
  • 16. Mocking © 2020 ThoughtWorks ADD-TWO-INTS SECTION. ADD A-NUM OTHER-NUM GIVING RESULT. DISPLAY "The Result is : "RESULT CALL 'CLEAN-UP' USING A-NUM, OTHER-NUM. PERFORM PREPARE-SOMETHING.
  • 17. Mocking © 2020 ThoughtWorks MOCK SECTION PREPARE-SOMETHING <cobol> MOVE 0 TO A-NUM. </cobol> END-MOCK
  • 18. Fast feedback loop? © 2020 ThoughtWorks
  • 19. We still need to parse the entire Cobol program... © 2020 ThoughtWorks
  • 20. What is a mainframe? © 2020 ThoughtWorks Compatibility with older systems
  • 21. Punch cards. © 2020 ThoughtWorks
  • 22. ---------------------------- XConf 2020 ---------------------------- Agenda => 0 Context 1 Finding a testable unit 2 Testing a unit 3 Conclusions X to exit 3270 --------------------------------------------------------------- © 2020 ThoughtWorks June 2020 SU MO TU WE TH FR SA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
  • 23. Conclusions © 2020 ThoughtWorks What we learnt in this wrestling match with technology
  • 24. Build Collect user feedback Learn from feedback Our assumption of what a COBOL unit test should be or look like was not what our users needed or wanted ● Build an increment with small changes ● Actively test it in a user workshop ● Learn from and adapt to user feedback User centric approach © 2020 ThoughtWorks
  • 25. How accurate do we really need to be? © 2020 ThoughtWorks
  • 26. “Ambiguity? Never heard of it.” - IBM Cobol Compiler*, 2019 © 2020 ThoughtWorks *Not a real quote. The IBM Compiler never actually spoke these words. We’re pretty sure it was thinking it though. Along with other evil things.
  • 27. “Please, do not fix this [compiler] issue. This is a programming error that the IBM compiler does not catch currently” - Client Testmanager © 2020 ThoughtWorks
  • 28. How accurate do we really need to be? © 2020 ThoughtWorks
  • 29. Actually not 100% accurate © 2020 ThoughtWorks
  • 30. Fast feedback but not too expensive © 2020 ThoughtWorks
  • 31. Felix Holzäpfel-Stein & Michael Calvert Thank you © 2020 ThoughtWorks
  • 32. Continue the conversation on Slack © 2020 ThoughtWorks XConfEurope2020 xconfeurope2020.slack.com #talk1-redefining-the-unit #XConfOnline