Every product should undergo strict validation before going to customers. Functionality tests alone can’t produce reliable products. It should be maintainable, should follow certain quality standards then only product will sway the customers.
Static code check is process of ‘Analyzing code without executing it’. Generally used to find bugs or ensure conformance to coding guidelines. The classic example is a compiler which finds lexical, syntactic and even some semantic mistakes.
Static analysis tools should be used when they help maintain code quality. If they’re used, they should be integrated into the build process, otherwise they will be ignored.
Two common pathologies occur when using static analysis tools:
- The tools produces spurious warnings/errors that the developers cannot silence. Eventually, most of the warnings are spurious and the developers stop paying attention to the output. This is why many teams require that code compile cleanly. If developers feel comfortable ignoring compiler warnings, the compile phase will eventually be filled with warning nobody ever pays attention to, even though they may be bugs.
- The tools take too long to run and developers never bother to run them.
Much awaited NW latest version is out today with great features like ‘delivery of the on-premise edition of SAP S/4HANA’ — is designed to meet these needs and lay the groundwork for supporting the next stage of innovation. It will be the compatible successor of SAP NetWeaver, and will provide the on-premise foundation for SAP Business Suite (as of enhancement package 8 for SAP ERP) and for the on-premise edition of SAP S/4HANA.
The SAP JVM is a standard compliant, certified JDK, supplemented by additional supportability and developer features and extensive monitoring and tracing information. All these features are designed as interactive, on-demand facilities of the Java VM with minimal performance impact. They can be switched on and off without having to restart the VM (or the application server utilizing the VM). Latest NW is equipped with Java8 features, we have product verification checklist to ensure code quality standards. SAP has well defined process to verify the product at each stage of the development to ensure that product follows all the standards.
We faced many challenges during NW development, Adoption of latest Java version i.e JDK8 is reason for this. Oracle introduced lot of strictness and also decommissioned few obsolete API’s, This leads to unanticipated errors in modules which are not even touched since decade. It was hard time to debug these issues because JDK is reason for the same. I still remember developers are notified with thousands of error in maintenance codelines !!!. It really blocked the developers who are working for latest features for new version of NW.
Not only in the static check, we had big complications to generate Javadoc for NW with Java8. ‘Oracle made it worst this time..!’ Strictness level was beyond anticipation. Only computer can generate that much neat code. Developers can think of the great logic, design, algorithms and data structures but comments in code for giving information about class or API. We should not expect the syntax in the comments. Not sure why they introduced this much strictness here, this is not only problem for us, whole world is complaining about this today. Biggest problem is ‘at a time only 100 errors are exposed, till you fix them next set of errors are hidden..!!!’, it was slowing down the pace of development.
Module owners are worried about their EC dates, developers are bothering about these unanticipated errors. Finally we provide the instant solution to help the developers. We adopted certain measures in our environment to handle this situation. Few features are added by our team completely unblocks the developers. I still remember when I made audit last time before adopting latest measures more than 11000 errors were reported. Development teams are guided to fix these errors by the management. It was really hard to development teams to make changes in maintenance codelines. We were able to fix all these false positive (because these are not so critical and not there with old version of Java) errors. As a result of the new implementations now error number reduced to 90…!!! And developers’ bandwidth is used for the feature developments and additional support activities.
Story not ends here… From last 2 months I am working for other product. Now one of my colleague is working to make this process better and better for tomorrow. NW release notification and Lakshmi’s blog – my-365-days-with-sap-nw motivated me to pen down my thoughts.
Nevertheless, we have lot more challenges in coming days to support and make NW as a great product of the decagon.