Software Process

We build and maintain a suite of open-source solutions for use in the software development process. These solutions facilitate high-­quality software development by providing a cross­-platform tool to build and compile software, a software testing framework to evaluate new code contributions, and a dashboard to highlight test results and overall software health. We use our software development process internally and work with external customers to facilitate iterative processes that ensure consistency and quality in finished software products.

When working with customers to improve their respective development processes, we evaluate their existing software development infrastructures and needs, and we configure their tools to work seamlessly in their respective environments.

Areas of Focus

Software Process Focus 1

Testing Management

Our testing expertise comes from years of creating large-scale software systems such as VTK, ITK, CMake, and ParaView. This expertise has spurred a selection of tools including CTest and CDash. These tools allow for continuous, per branch, and nightly building and testing across all platforms, and they provide immediate feedback to developers for robust software.


Software Process Focus 2

Software Process Implementation

We have developed standard software processes including agile methodologies, continuous testing, and verification, which we practice in running large-scale, distributed, open-source development projects such as the Visualization Toolkit (VTK), the Insight Segmentation and Registration Toolkit (ITK), and ParaView. We have also worked with companies and organizations to establish and grow software development communities through an efficient software process.

Software Process Platform

CMake is our cross-platform build tool for controlling the software compilation process using simple platform- and compiler-independent configuration files. CMake generates native makefiles and workspaces that can be used in the compiler of choice.