Better Planning

Improving strategies for planning in order to increase software productivity, quality, and sustainability, while underscoring the unique characteristics of scientific software, including that requirements often change during discovery.

See Resources: Better Planning

Better Planning Topics

Software Process Improvement

Approaches for improving various aspects of software development, with emphasis on iterative and incremental advances that acknowledge concurrent needs for developing new science capabilities.

See Resources: Software Process Improvement

Software Engineering

Procedures and considerations for developing well-engineered, reliable and maintainable software.

See Resources: Software Engineering


Statements about what functions a software product shall perform, including any constraints under which it shall operate but avoiding as much as possible entanglements in how it shall be implemented.

See Resources: Requirements


Major considerations in designing software to meet its scientific objectives and sustainability goals. Because requirements for scientific software often change during scientific discovery, design tends to evolve over time.

See Resources: Design

Software Interoperability

The ability of two or more software elements to be used together in an application, without special effort on the part of the user. Levels of interoperability range from side-by-side usage through various types of interactions between packages.

See Resources: Software Interoperability