SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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...
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdfAndrey Devyatkin
 

Kürzlich hochgeladen (20)

Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
 

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