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

Requirements

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

Design

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

Software Sustainability

The ability of software to continue or evolve. Considerations are often different when viewed from different perspectives (user, developer, manager, funder), but generally relates to resources to maintain or evolve the code, adaptability of the codebase to new uses and new computational platforms.

See Resources: Software Sustainability

User Experience Design

An intentional process of designing for the user experience of a software (or other) product.

See Resources: User Experience Design