Upload
parker
View
33
Download
0
Embed Size (px)
DESCRIPTION
Agile on the Mainframe (and Other Odd Places). How Mainframe Agile Teams Are (not so) Different November 8, 2007 Charlie Poole. Introductions. Charlie Poole. What I do… Languages… Cobol, PLI, Fortran, C, C++, C#, IBM & Intel assembler Platforms - PowerPoint PPT Presentation
Citation preview
PooleConsulting
Agile on the Mainframe (1/49)© 2007 Charlie Poole. All rights reserved
Agile on the Mainframe
(and Other Odd Places)
How Mainframe Agile TeamsAre (not so) Different
November 8, 2007Charlie Poole
PooleConsulting
Agile on the Mainframe (2/49)© 2007 Charlie Poole. All rights reserved
Introductions
PooleConsultingAgile on the Mainframe (3/49)© 2007 Charlie Poole. All rights reserved
Charlie PooleWhat I do…
Languages…
Cobol, PLI, Fortran, C, C++, C#, IBM & Intel assembler
Platforms
Mainframe, Windows, .Net, Linux, Mono, Cross-platform
Coaching and Training
XP, Agile, TDD, NUnit
Open Source
NUnit, NUnitLite, VSUnit, Fit
PooleConsultingAgile on the Mainframe (4/49)© 2007 Charlie Poole. All rights reserved
Charlie PooleMy dubious past…
Languages…
Cobol, PLI, Fortran, C, IBM assembly language
Hardware Platforms
Hardware: IBM, Dec, Honeywell, CDC, Univac
Software Environments
CICS, SQL, VM
PooleConsultingAgile on the Mainframe (5/49)© 2007 Charlie Poole. All rights reserved
About Mainframe Programmers Take a card...
Write a word or short phrase that comes to mind when you think of mainframe programmers, who are still doing it today.
Write several if you like. It’s OK to be unfair – we’ll try to be more
reasonable later on.
PooleConsultingAgile on the Mainframe (6/49)© 2007 Charlie Poole. All rights reserved
Discussion – Part I
What sorts of feelings are represented on your cards? Admiration? Respect? Pity? Disdain? Puzzlement?
PooleConsultingAgile on the Mainframe (7/49)© 2007 Charlie Poole. All rights reserved
Discussion – Part II
Have similar words, phrases, feelings been applied to programmers in your own company? By managers? By co-workers? By you?
What does this mean for introducing Agile?
PooleConsulting
Agile on the Mainframe (8/49)© 2007 Charlie Poole. All rights reserved
A Mainframe Tale
Experiences at Key Bank
PooleConsultingAgile on the Mainframe (9/49)© 2007 Charlie Poole. All rights reserved
Warning Label
This is a story about one of my clients and is included here with their permission, for which I am very grateful.
For obvious reasons, I will not be able to answer every question that pertains specifically to work being done for this client.
I request your understanding in limiting questions as much as possible to the general ideas this story illustrates.
PooleConsultingAgile on the Mainframe (10/49)© 2007 Charlie Poole. All rights reserved
A Mainframe Tale
Key Bank is a very forward-looking company in its software development and has introduced agile approaches company-wide over the past few years.
They have their own internal coaches and bring in other folks from outside as needed.
They have been very successful at it.
PooleConsultingAgile on the Mainframe (11/49)© 2007 Charlie Poole. All rights reserved
A Mainframe Tale
From the preceding, you can see that Key Bank are not amateurs at Agile...
except on the mainframe...
where we are all amateurs.
PooleConsultingAgile on the Mainframe (12/49)© 2007 Charlie Poole. All rights reserved
A Mainframe Tale - Details
Key has LOTS of mainframe work, even as they increase their use of desktop and distributed apps.
Almost everything else depends on the mainframe apps.
The programmer population is getting older.
Conversion is not practical for much of this work.
PooleConsultingAgile on the Mainframe (13/49)© 2007 Charlie Poole. All rights reserved
A Mainframe Tale - Details
Key has introduced Agile development in all technical areas except for the mainframe.
Management likes what Agile does for them, but they aren’t getting it from the mainframe.
Programmers don’t know how to give management what they want.
PooleConsultingAgile on the Mainframe (14/49)© 2007 Charlie Poole. All rights reserved
Interlude: How I Got into This Experience
Mainframe (years back) and Agile coaching
Attitude Respect for Mainframe programmers Like a challenge
Availability Nobody else wanted to do it
PooleConsultingAgile on the Mainframe (15/49)© 2007 Charlie Poole. All rights reserved
A Mainframe Tale - Objectives To support agile in the mainframe environment. In
particular, mainframe development should not appear to be an impediment in the overall flow of technical work.
To be able to prioritize features and deliver them incrementally, rather than waiting for the end of a project.
To shorten final testing times after introducing more reliable testing into the development process.
PooleConsultingAgile on the Mainframe (16/49)© 2007 Charlie Poole. All rights reserved
A Mainframe Tale - Objectives To identify the aspects of agile methodology, which
are relevant to mainframe development – in most cases by actually trying them out.
To be able to estimate projects more aggressively in the future.
To be able to react quickly to problems and changes.
PooleConsulting
Agile on the Mainframe (17/49)© 2007 Charlie Poole. All rights reserved
Defining Agile
What Do We Want?
PooleConsultingAgile on the Mainframe (18/49)© 2007 Charlie Poole. All rights reserved
Defining Agile - the Wrong Way Agile is sometimes taken to mean practices
Doing Test-Driven Development Using Scrum etc.
Not a satisfactory approach It assumes Agile can be made into a recipe Doesn’t help us move across technologies
PooleConsultingAgile on the Mainframe (19/49)© 2007 Charlie Poole. All rights reserved
Defining Agile Based on Results
“Create real software in an iterative fashion, delivering small functional increments on a
regular basis so that the team and the users can always see real progress”
PooleConsultingAgile on the Mainframe (20/49)© 2007 Charlie Poole. All rights reserved
Top-down Agile – the Wrong Way Tell the programmers to be “agile”
Tell them precisely how to be agile
Make sure they do it
PooleConsultingAgile on the Mainframe (21/49)© 2007 Charlie Poole. All rights reserved
Top-down Agile – the Right Way Tell the programmers why agile is important to the
company.
Tell them what results you want to see.
Ask them to figure out how, providing them the time and support they need to do it.
Identify and remove obstacles.
PooleConsultingAgile on the Mainframe (22/49)© 2007 Charlie Poole. All rights reserved
One Good Thing About the Mainframe We don’t have pre-existing tools and
practices in most cases.
We can’t tell them how to do it.
We are forced to enable the developers to “invent” their own flavor of agile.
PooleConsulting
Agile on the Mainframe (23/49)© 2007 Charlie Poole. All rights reserved
Mainframe Obstacles
PooleConsultingAgile on the Mainframe (24/49)© 2007 Charlie Poole. All rights reserved
Mainframe Obstacles
Very large file sizes are the norm, leading to long run times for any tests.
Test runs consist of a number of interdependent jobs and it is often not possible to run tests of a single job step.
For many applications, programs are not run directly but are under the control of a third-party application (Hogan) which is widely used in the banking industry.
PooleConsultingAgile on the Mainframe (25/49)© 2007 Charlie Poole. All rights reserved
Mainframe Obstacles
The need to submit jobs and then wait for them to complete makes mainframe development proceed at a much slower pace than desktop work. Developers must either wait or turn their attention to some other task while a test proceeds.
For test runs, job steps must often be staged manually, because automated scheduling is not available. Because of processing demands during the day, this is reported as frequently done by developers working from home.
PooleConsultingAgile on the Mainframe (26/49)© 2007 Charlie Poole. All rights reserved
Mainframe Obstacles
Existing utilities, such as dump analysis and tracing tools are not always used systematically due to unfamiliarity or inconvenience. Practice in this area can differ significantly from developer to developer.
For most applications, there is no standard test bed used to automatically run tests and determine if regressions have occurred. Where such tests exist, manual review is usually required.
PooleConsultingAgile on the Mainframe (27/49)© 2007 Charlie Poole. All rights reserved
Mainframe Obstacles
The verification of test results is often manual, although it may sometimes be assisted through the use of file comparison utilities.
Testing tools, such as exist in the worlds of desktop and distributed development, are not generally available for the mainframe, and would need to be developed locally.
In many cases, separate tools are needed for Hogan and non-Hogan applications.
PooleConsulting
Agile on the Mainframe (28/49)© 2007 Charlie Poole. All rights reserved
COBTEST
A Low-level Test Framework
PooleConsultingAgile on the Mainframe (29/49)© 2007 Charlie Poole. All rights reserved
Second Warning
This is more interesting than important!
PooleConsultingAgile on the Mainframe (30/49)© 2007 Charlie Poole. All rights reserved
COBTEST : a Prototype Test Framework Works for both Hogan and non-Hogan Cobol
programs.
Tests at a very low level – xUnit style.
Building block for higher level tools.
PooleConsultingAgile on the Mainframe (31/49)© 2007 Charlie Poole. All rights reserved
COBTEST Structure
ProgramUnder Test
Test Program
Test Framework(COBTEST)
PooleConsultingAgile on the Mainframe (32/49)© 2007 Charlie Poole. All rights reserved
Using COBTEST
CALL ‘COBTEST’ USING INIT-ACTION.
PERFORM ACCOUNT-TESTS.
PERFORM TEMPERATURE-TESTS.
PERFORM FRAMEWORK-SELF-TESTS.
CALL ‘COBTEST’ USING TERM-ACTION.
PooleConsultingAgile on the Mainframe (33/49)© 2007 Charlie Poole. All rights reserved
Using COBTEST
TEMPERATURE-TESTS. MOVE ‘BOILING POINT’ TO TEST-NAME’ MOVE 212 to F-TEMP CALL ‘TEMPF2C’ USING TEMPS MOVE 100 TO EXPECTED-PACKED MOVE C-TEMP TO ACTUAL-PACKED CALL CHKPACK …
PooleConsultingAgile on the Mainframe (34/49)© 2007 Charlie Poole. All rights reserved
COBTEST Entry Points
COBTEST Initialization and Termination
CHKEQUAL Compare two alphanumeric fields
CHKPACK Compare two packed fields
CHKBIN Compare two binary fields
PooleConsultingAgile on the Mainframe (35/49)© 2007 Charlie Poole. All rights reserved
TESTSPEC Copy Book77 INIT-ACTION PIC X(4) VALUE 'INIT'.77 TERM-ACTION PIC X(4) VALUE 'TERM'.
01 TEST-SPECIFICATION. 05 TEST-NAME PIC X(50). 05 USER-MESSAGE PIC X(50). 05 EXPECTED-VALUE PIC X(100). 05 EXPECTED-REDEF-1 REDEFINES EXPECTED-VALUE. 10 EXPECTED-PACKED PIC S9(9). 10 FILLER PIC X(91). 05 EXPECTED-REDEF-2 REDEFINES EXPECTED-VALUE. 10 EXPECTED-BINARY PIC 9999 BINARY. 10 FILLER PIC X(98). 05 ACTUAL-VALUE PIC X(100). 05 ACTUAL-REDEF-1 REDEFINES ACTUAL-VALUE. 10 ACTUAL-PACKED PIC S9(9). 10 FILLER PIC X(91). 05 ACTUAL-REDEF-2 REDEFINES ACTUAL-VALUE. 10 ACTUAL-BINARY PIC 9999 BINARY. 10 FILLER PIC X(98).
PooleConsultingAgile on the Mainframe (36/49)© 2007 Charlie Poole. All rights reserved
COBTEST as a Tool
Aimed at tests written by programmers before or during coding. Tests are of individual programs or routines. Test program supplies data, one case at a time.
Can also be used to find out how a routine responds to various inputs.
Need other tools for other purposes.
PooleConsultingAgile on the Mainframe (37/49)© 2007 Charlie Poole. All rights reserved
Potential Extensions of COBTEST Run tests dynamically, based on input
Possibly, separate Hogan and non-Hogan runners
Additional test predicates and data types
Data driven tests Test reads inputs and expected values
Data interception Test is inserted into processing flow
PooleConsultingAgile on the Mainframe (38/49)© 2007 Charlie Poole. All rights reserved
A Major Weakness
COBTEST enables running small, fast tests as you work.
Unfortunately, it can take 20 or 30 minutes to submit the test and get the result.
Two possible solutions… Come up with way to eliminate the wait time. Invent new patterns of working that take the time delays
into account.
PooleConsulting
Agile on the Mainframe (39/49)© 2007 Charlie Poole. All rights reserved
An Agile Workshop
Engaging Mainframe Developers
PooleConsultingAgile on the Mainframe (40/49)© 2007 Charlie Poole. All rights reserved
An Agile Workshop
Open Space Format
Approximately 70 mainframe developers
Approximately 40 sessions offered around our two-part theme.
PooleConsultingAgile on the Mainframe (41/49)© 2007 Charlie Poole. All rights reserved
Workshop Theme
What would it meanto be agile
on the mainframe?
How can we
make it happen?
PooleConsultingAgile on the Mainframe (42/49)© 2007 Charlie Poole. All rights reserved
An Agile Workshop
Half day introduction to what agile means
Two Days of Open Space
Half day follow-through Session reports and project organization Creation of project backlogs Top-level management acceptance
PooleConsultingAgile on the Mainframe (43/49)© 2007 Charlie Poole. All rights reserved
After the Workshop
Teams are organized as for any project, with a top-level manager as the Product Owner.
Mix of “low-hanging fruit” and projects requiring a long-term effort.
Quarterly two-day workshops will be held.
PooleConsulting
Agile on the Mainframe (44/49)© 2007 Charlie Poole. All rights reserved
Conclusions and Discussion
PooleConsultingAgile on the Mainframe (45/49)© 2007 Charlie Poole. All rights reserved
Conclusions
Agile on the mainframe has unique problems.
We are forced to rely on the programmers to invent the practices they need.
We hope that doing so will give us a better set of practices.
PooleConsultingAgile on the Mainframe (46/49)© 2007 Charlie Poole. All rights reserved
Meta-Conclusion
This is what we should be doing anyway!
PooleConsultingAgile on the Mainframe (47/49)© 2007 Charlie Poole. All rights reserved
Odd Places…
Are there other “Odd Places”
where this approach
might work?
What about your project?
PooleConsultingAgile on the Mainframe (48/49)© 2007 Charlie Poole. All rights reserved
Thank You
PooleConsultingAgile on the Mainframe (49/49)© 2007 Charlie Poole. All rights reserved