{'fraction_non_alphanumeric': 0.011980267794221282, 'fraction_numerical': 0.0, 'mean_word_length': 5.311111111111111, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Managing software requirements in the context of the scientific enterprise

Developing production-quality software as part of a scientific research program presents unique challenges. Some of the techniques for managing requirements in this context which have evolved over the last three decades at JPL are discussed. The software development effort in support of the Tropospheric Emission Spectrometer project is presented as an example of the application of these methods. In certain respects the methods discussed appear to deviate from commonly accepted practice. In an effort to explain the success of these methods, some novel information from the field of cognitive science is explored. We discuss our assumptions about the underlying model of scientific process. The tension between the dualistic view of the world assumed by scientists, and the nondualistic nature of our solutions to the problems of software development is also discussed. We conclude with a discussion of our experience relative to current research into social methods of requirements engineering. We find that scientists are a unique type of customer, with unique needs from the software development process itself, and not just the end product as many methodologies assume. A social-based approach to development has proven to be the most efficient means of mitigating the difficulties posed by language, educational and cultural barriers.