Thought Leadership
Banner Image
July 18, 2016
Agile Framework on Mainframe System
Sangeetha l

In any Mainframe developer’s life, the word ‘Mainframe Development’ means new business, time for the Mainframe brain’s to utilize their logical thinking, energizer for the developers, time for the testers to identify what a developer has missed, a capability test for the existing application to meet the new requirements, last but not the least, a longer project duration aiming for a seamless and successful project completion. But in the recent trend, most of the Mainframe customers want to see their product/project progress in a timely manner instead of waiting till the new business code goes live into the production box. Hence it is mandatory for us to figure out the various ways to embrace this change and the only key for it, is to bring in the Agile framework on Mainframe system.

Standard practices followed for an Agile project is given below –

  • Small team with 3-5 members along with their Scrum Master
  • Dedicated Product Owner – well aware of the application’s E2E business
  • Product Manager – a sponsor, involved at high level.
  • 2 to 3 week Sprint length.
  • An incremental detailed design.
  • Features are prioritized
  • The Product Owner and End-users are involved on a daily basis.

Hurdles adopting Agile Framework into Mainframe System

1. Shift from traditional SDLC methodologies

One of the major hurdles for Agile Framework to be in Mainframe system, is the current market push to move out from the normal SDLC methodologies especially the Waterfall Model through which the traditional Mainframe and other legacy systems are being conceived and developed till date. The new business requirements are usually huge and chopping them down to smaller user stories will be a cumbersome task. User stories are often very intangible for the team and it’s very hard to match the solution to a business case. Customers don’t understand the environmental specifics such as lower flexibility as an exchange of high reliability. Every minute of system downtime cost millions of dollars.

2. Legacy Code

Owing to the legacy nature of the platform and age of teams, the developers are highly specialized. Therefore, cross-training is limited, and a steep learning curve is involved in mobilizing resources. With respect to the legacy code, the major hurdles are:

a. A million lines of code with no proper documentation thereby resulting a huge dependency on the application SME’s.

b. Code full of macros for optimization, segmentation, paging and memory management.

c. No industry recognized coding standards.

d. Primitive source code repositories and configuration management tools.

3. Automated Build and Unit Testing

Programs in COBOL and other Mainframe host languages are huge and monolithic. Building and compilation take a long time. It’s often tough to run just a localized part of a program for testing and tests are seldom repeatable. Also, testing usually involves debugging by fiddling with variable values in memory and system dumps. Not to mention, screen recording scripts are often fragile. So, investigation of bugs and bottlenecks is typically time-consuming for the short nature of sprint cycles and project timelines in agile.

4. System/Acceptance Testing

Like Unit testing, acceptance testing is usually manual and not repeatable, defeating regression testing. Often it is a bucket list of tasks that has to be performed, ticked and then forgotten.

Measures to embrace Agile practice in Mainframes

1. Discuss in groups and share ideas

By detaching from the traditional top-down approaches like Waterfall model, the developers are required to be fully involved in the elaboration process, and this leads to greater understanding of the business needs and goals. Encourage the “build and show” culture and ensure all stakeholders are on the same page. Encourage shared ownership and pair programming, often rotating pairs to improve knowledge at the team level than at a developer level. Focus on knowledge sharing. Frequent connects of the team with Product Owners and Customers to improve customer satisfaction.

2. Sprint Planning

Plan significant time in every sprint to backlog grooming and to understand User Stories before Sprint planning. Initial release estimates are to be done in T-shirt sizes. Story points to be used for sprint planning when the team fully understands the scope. In the backlog grooming phase, constant checks with the customer are needed to ensure features of the product being prioritized appropriately. Improve the communication and planning to limit dependencies.

3. Adapting Build and Unit Testing

This is where the biggest change in mindset is required for the Mainframe programmers when moving to Agile development. A program can be changed into multiple stories and within each story, only the modified portion of the program should undergo testing. This in-turn urges for the development of a unit-test framework where a test program accompanies every unit of code that is testable. Typical objectives involve:

a. Taking away the need to locate/configure test data for each code change.

b. Regression testing should be automated.

c. Making specific code testable without dependencies like environment data in files or databases.

d. Identify the repeated test case and try to automate it.

4. System & Acceptance testing should also be automated which involves the creation of scripts for maintenance, preparing files and validating the test data. Test regions should be created which can be re-initialized to a particular base-point for subsequent test runs.

Despite some initial skepticism that Agile could not work on a pure mainframe project, in the recent days more and more companies, especially financial services who have their major business running on Mainframe, are now slowly adopting Agile into their development and enhancement areas. This agile approach is not only yielding the ROI for the customers but also enabling the customers to have a look and feel of their product in a timely manner, which in turn proves to be most driving factor for this fast changing IT world. Hence, it’s my responsibility to highlight some of the best Agile practices to the viewers who read this blog

  • Continuous and constant Refactoring, which not only makes the code easier to change in any direction, but also reduces its likelihood in the current version differing greatly from the operational version. This means that the ripple back is much more straightforward, and one gets their bug fixed in less than a week’s time unlike the earlier trend where it used to take months
  • Identify and acquire mainframe and cross-environment automated tools that are appropriate for the agile mainframe administrator.
  • Create an informal or software-based collaborative process between the mainframe administrator and developers.
  • Focus on cross-environment rather than mainframe-specific application.
  • Lifecycle management, runtime slowdowns or crashes frequently involve cross-environment interactions rather than just the mainframe itself.

Apart from the above listed best practices, below are the ways to boost the Mainframe system performances through Agile methodologies,

Hence, from the given best Agile practices and possible ways, let’s all empower the Agility in our Mainframe system and make it beneficial factor for our valued customers and our enthusiastic team as well.

References:

https://www.scrumalliance.org/system/slides/144/original/mainframesbcn-121020043609-phpapp02.pdf?1350919051

http://www.agilecoachjournal.com/2009-12-03/agile-in-a-cobol-world

http://it.toolbox.com/blogs/agile-in-mainframe/agile-on-the-mainframe-impossible-22173

https://theagiletribe.wordpress.com/category/agile/legacymainframe/

Comments
MORE ARTICLES BY THE AUTHOR
RECENT ARTICLES
RELATED ARTICLES