IBM Destination Z - Group home

A View to Solving System Problems: What a Developer Can Do

By Destination Z posted Mon December 23, 2019 03:40 PM

Early in my career, we had our entire batch processing cycle documented on large sheets of paper taped to the walls. It made it easy to quickly determine the impact of a failed job, understand downstream impacts of delays and more. Changes were much more limited then and our systems were simpler, but these charts really helped us visualize what was going on to quickly resolve any issues.

It didn’t take long before we were making significant enough changes to render our picture invalid. And batch processing got much more complex; we didn’t have enough wall space, even if we had the time or ability to update these huge charts. Though diligent operations folks tried to keep up documenting what they knew to compensate for the lack of a picture, they weren’t always clued into changes in the system. Over the years, managing batch meant playing a guessing game. Workload automation produced some pictures, but you had to understand the software to get the images you wanted. And none of this helps you understand your online systems’ work flow.

As systems performance and availability have become key factors in the competitive edge, the more you know about your systems, the more you can keep them up and running and recover fast from any issue. But how do you keep up on all the details of every application, every system and every batch job stream? There are simply too many systems and too much change.

Although developers aren’t the front line of support, it’s everyone’s job to keep IT humming. Savvy developers may already have a tool that can give everyone a view into the way the system actually works, not how we think it works. If you’re dealing with millions of lines of code, it makes sense that you have an automated code analysis tool. Great tools serve a number of purposes, such as connecting business rules to the underlying code and showing code areas that might benefit from technical debt remediation.

For the purposes of supporting availability, these tools should offer visualization of the data and application flow, allowing you to trace through any application and understand it quickly, online; a computer model of what we used to have on our walls. And unlike the pictures on the wall, you can be sure these models are up to date, reflecting accurately what the applications are really doing. The drilldown capability of automated code analysis to delve deeply into the specific area of an application or batch job allows you to have as granular a view as needed, with the ability to rapidly scroll through related applications and downstream jobs.

By sharing this part of your development tool with operations and systems programmers, you can show them how they can more readily determine the impact of a slowdown or outage in a dynamic view that is readily understandable to all players. Too often, we don’t see the value of our tools to other parties, but as part of a robust DevOps practice, let’s open up access to our code analysis tool to a wider audience.

But you don’t have one? Be the hero who brings it in, not just to define business rules and document the application but also to significantly reduce the mean-time-to-recovery of your production systems. Knowledge is power. Share the power of your view with everyone.

Denise P. Kalm is chief innovator of Kalm Kreative Inc.