Teams need to look for hidden risks and blind spots they don’t realize they have.
In the world of mainframe development, invisible assumptions can lead to hidden risks and blind spots that teams often don’t realize they have. These assumptions can be costly, as you can’t test what you can’t see. Understanding and addressing these hidden traps is crucial for maintaining the stability and reliability of legacy systems.
Teams working with mainframe systems often make assumptions that end up being wrong. These can lead to significant issues, including outages, and system failures. It’s essential to identify and address these hidden traps to ensure the smooth operation of legacy systems.
Five Potential Hidden Traps in z/OS Software Applications
- Outdated Documentation: Some software applications often have outdated or incomplete documentation, leading to misunderstandings about how the code operates.
- Unseen Dependencies: Hidden dependencies between different parts of the application can cause unexpected issues when changes are made to parts of the software.
- Assumed Stability: Teams may assume that legacy business critical applications are stable and reliable, but hidden issues can cause failures, even years later.
- Overlooked Security Risks: Legacy software applications may have security vulnerabilities that are not immediately apparent, or that aren’t exploited for some time.
- Ignored Performance Bottlenecks: Performance issues in legacy applications can be overlooked, leading to slowdowns and inefficiencies.
Warning Signs of Hidden Assumptions
There are several warning signs that a team is operating with hidden assumptions. These include frequent system outages, unexplained performance issues, and difficulty in troubleshooting problems. If a team could see everything clearly, their day-to-day work would be significantly different. They would be able to identify and address issues more effectively, leading to improved system stability and performance.
Teams often think they understand certain parts of the system, but in reality, they may not have the depth of knowledge about the operating system required to engineer their code to leverage best practices. For example, they may not understand how the operating system processes the data developers store in their allocated address spaces. This lack of understanding can lead to significant issues when changes are made that either open the door to vulnerabilities or inadvertently cause system failures. It’s essential to have a clear and comprehensive understanding of the system to avoid these problems.
A Story of Invisible Assumptions
Building upon our example of how invisible assumptions that are not readily apparent can cause serious outages, if a developer clears an address space of its contents at the wrong location to post information required by an application, this could inadvertently clear content required by the operating system. These risks may lead to a significant outage, causing downtime and financial losses. By identifying and addressing these hidden assumptions, the teams are able to prevent future issues and improve system reliability.
Of course, the big question is this: If a team could see everything clearly, how would that change their day-to-day work? How would it affect team productivity? How would it impact morale? How would it drive value for customers? Would teams be able to spend more time on revenue generating work and less time handling support requests and fixing errors? Would junior programmers be able to step in and handle the more basic tasks so that senior engineers are able to focus on vision rather than day-to-day execution?You can’t test what you can’t see…and it’s costing you. Invisible assumptions in mainframe development can lead to hidden risks and blind spots that teams often don’t realize they have. By identifying and addressing these hidden traps, teams can improve the stability and reliability of their legacy systems. Understanding the warning signs and having a clear understanding of the system is crucial for maintaining smooth operations and preventing outages.