Better Development

Aspects of scientific software development that should be systematically addressed in order to improve software productivity, quality, and sustainability.

Software development is a process of writing, maintaining, and extending source code to create software products. In a broad sense, software development includes all that is involved between the conception of the software through to the final manifestation of the software.

See All Better Development Resources

Better Development Topics


Written text or illustration that accompanies computer software to explain how it operates or how to use it.

See All Documentation Resources

Version Control

Management of changes to files. Also known as revision control, source control, or source management.

See All Version Control Resources

Software Engineering

Procedures and considerations for getting a well engineered, reliable and maintained software.

See All Software Engineering Resources

Development Tools

Tools that support different aspects of software development, such as editors, integrated development environments, performance measurement and analysis tools, memory checkers, and debuggers.

See All Development Tools Resources

Configuration And Builds

Installing scientific software from source requires a system for setting up (configuring) software to compile and link (build) the code according to the user's specific platform and needs.

See All Configuration And Builds Resources

Software Distribution

Making software available to users and related activities. This could involve providing users with an installer, deploying the software on systems where the users can access it, or a combination of both.

See All Software Distribution Resources

Issue Tracking

The process of managing a collection of issues (bugs, feature requests, missing documentation, etc.) that are currently being handled, or should be handled, by a software development team.

See All Issue Tracking Resources


The process of improving internal attributes of a software product (e.g. readability, maintainability) without modifying any of its existing external functionality.

See All Refactoring Resources