Professional Documents
Culture Documents
Background:
We had been tracking the foundation pack projects through variety of means, including Excel spreadsheets as well as some newer Thor reports. As we passed the In QA for Applications Denali Phase 2, we generated QANs to track these issues.
being shown up. As I already mentioned we have a copy of the standard Foundations Code Search Utility that we maintain separately for the internal searches as well as for Foundations pack projects. As we can realize here, when we start working on the copy of standard utility, we make modifications and improvement to the copy as we develop and find bugs. The original utility gets out of sync with the copy and thus lacks all the improvements and the bug fixing that has been done on the copy. Also when we make any changes to the standard Foundations Code Search Utility, we hardly copy the modifications over to the copy of the utility. Thus both of them are out of sync with each other. This becomes problem sometimes as happened a few weeks back. Dan, Hardgrove tried to sync the changes from the standard utility to its copy, and in the process the changes that were already in place in the copy of the utility were gone, and the utility was broken in the sense that it was not searching records for few weeks. We were not reporting on any records for few weeks for Foundations pack projects. After we generated QANs, we started finding out that 10% of QANs were just the false positives. We had considered several theoretical cases while looking for the occurrence of specific issue in our code. E.g. for searching for direct references to data globals we were reporting on cases like EN_US or EN-US thinking that EN_ and EN- is a global reference. Clearly we can say that these are not the global references, but we tend to had flexibility so that we do not miss anything. This approach was acceptable for Thor reports because they can be generated again without any hassle. But QANs once generated cannot be regenerated without voiding the existing one or we will have multiple QANs for the existing QANs. We basically used the same code for checking for issues for generating Thor reports as well as QANs. We could have used a different strategy for QAN generation. There was no communication done between the developer and the owners of Foundations pack projects. As a result of this, we were searching for several cases as an issue in the code which were in fact legitimate to use and require no changes in the code. This resulted in a bunch of false positives. E.g. the check to search for $$zterm should never had been the part of the search because usage of $$zterm requires the context to decide whether the usage if legitimate or not. And as Foundations Code Search Utility cannot build up the context of the usage, we cannot determine programmatically if we need to report on a particular usage of $$zterm. Several fields in the QANs were not populated. After we voided all the bogus QANs, we decided to have a PQA pass on the code generating the results as well as the ZQN import spreadsheet to make sure that we do not miss anything. But as very little time was spent on reviewing the spreadsheet, I, Dan Hardgrove and Rob Owen failed to notice that few required fields were missing. We realized this only after the generation of QANs.
We did not have any ahead of time preparations for the auto generation of these QANs. As we never had any checklist for the To-Do things, we missed the important part of the over all process. DOCUMENTATION. So once the QANs were assigned to the applications, they did not know anything about the false positives of the utility, and some of the people did not know about what they need to do for these QANs.
We can now breakdown the above mentioned issues into a summary here.
We did not have any process in place that could have avoided the above made mistakes Our development was informal in the sense that we did not have any associated DLG for the development. We worked on the copy of standard utility leaving both standard and copy out of sync We used same strategy for generating Thor reports as well as QANs. Very little time was spent reviewing the ZQN import spreadsheet. Lack of communication between developer and project owners. No ahead of time preparations. Lack of documentation to assist people to resolve the issues.
3) The development of these checks must be done in a standard DLG. 4) Now to develop some extra stuff, like code for ZQN import compatible output file and gathering objects information from the TRACK, we must maintain some excel sheet in some shared folder that can act as a substitute for the DLG PQA and notes section. Here a developer can document the changes that he has made to the copy of the utility, and then similarly PQA comments can be addressed in a somewhat formal way. Every revision must require a sign off from PQAers. This way in future we can track the changes made to the copy of the utility, and apply them to the standard utility and make both in sync. 5) The process of creating the results file must be automated. I.e we must have a batch run for this utility to perform its searching at the scheduled times. This requires updating the Batch job with new checks in every release. 5) After the development is done, demo must be given to R&D TL, QA TL and the owners of the associated projects. This step will ensure that what we are searching for is correct and meet everybody's expectations 6) A meeting must be done with the DIV OPS to ensure that nothing has changed in the process of creating thor reports. 7) Once we are ready to run the reports, the same must be conveyed to the R&D TL, so that they know that we have started creating the reports and can communicate with the applications people to make them aware of the reports. 8) Wiki needs to be created for the new Foundations Pack projects keeping in mind that we will be creating QANs later in the release. It must have all the information for the people who will be looking into these QANs, including FAQs and To-Do steps. 8) Developer must ensure that all the above steps have been completed, before QANs can be generated for the applications 9) The ZQN import file created, must be reviewed by atleast two persons in the team as another PQA round for the file. This step will ensure that the import file does not create any bogus/corrupted data, and hence we can avoid creating bogus QANs. Also this step will ensure that all the necessary fields for the file have been filled correctly. 10) Now finally we can create QANs for the teams and hence can prepare ourselves for the feedback.
FILENAME \p C:\Users\gbatra\AppData\Roaming\Microsoft\Templates\Normal.dotm
- PAGE 3 -