InContext Solutions
Operational ProcessesLast reviewed: December 2024

Development Process

Overview

This document outlines the development process employed at InContext Solutions, detailing the flow of code management, testing, and deployment practices. Our processes are designed to ensure quality, efficiency, and collaboration in creating and releasing software.

Development Workflow

  1. Source Code Management

    All code is managed within a centralized source code repository. This allows for version control and collaboration among developers.

  2. Branching Strategy

    Development begins by creating a feature branch from the main trunk or branch. This isolates new development work, allowing for focused changes without affecting the main codebase.

  3. Local Development

    Developers work locally on enhancements and new features. Once the work is complete, changes are pushed to the feature branch in the repository for review.

  4. Code Review

    Changes on the feature branch undergo a peer review process. Other developers will review the code to ensure it meets quality standards and integrates well with existing code.

  5. Deployment to Development Environment

    After code review, changes are deployed to the Development (Dev) environment. This integration environment allows developers to test their changes in a system-wide context.

  6. Quality Assurance (QA)

    Changes are then merged into the main branch after successful technical, quality, and functional reviews. Software is then promoted to the QA environment, which serves as a staging area for further evaluation.

  7. Automated Deployment

    Applications are deployed to environments using an automated process. This ensures consistency and reduces the risk of human error during deployment.

  8. Access Restrictions

    Access to the deployment tools and environments is restricted to privileged team members. This control ensures that only authorized personnel can make changes to critical systems.

  9. Agile Methodologies

    Development teams operate using Agile methodologies, promoting collaboration with Product team members. This approach allows for iterative development and flexibility in response to changing requirements.

Environments

  • Development (Dev)

    The Dev environment functions as an integration space where developers push and test changes. Exploratory testing is conducted in this environment to identify defects early in the development cycle. Software is automatically promoted to this environment upon software commits, ensuring real-time integration and testing.

  • Quality Assurance (QA)

    The QA environment is a controlled setting where changes are staged and reviewed before release. This environment is utilized for comprehensive product reviews and to verify successful integration with various components of the platform. Changes are promoted to the QA environment through a manual trigger to facilitate thorough evaluation before production.

  • Production

    The Production environment is the live setting where released applications operate. This environment is tightly controlled to maintain performance, reliability, and security for end-users.

Revision History

Date of ChangeResponsibleSummary of Change
May 2016ICS TeamPolicy documented
August 2017ICS TeamAnnual policy review, no change
August 2018ICS TeamAnnual policy review, no change
August 2019ICS TeamAnnual policy review, no change
February 2020ICS TeamRemoved staging environment; updated production environment description for containers
November 2020ICS TeamRemoved role-specific language, simplified Production description
June 2022ICS TeamAnnual policy review, no change
February 2023ICS TeamAnnual policy review, no change
December 2024ICS TeamUpdate for legibility and clarity.
March 2026ICS InfoSec TeamPublished to Trust Center