3.2 KiB
3.2 KiB
Rules for developing software deliverables at TSYS Group
Adopt these principles and checklist items for every TSYS Group software deliverable—clear, testable, and production-ready.
Core Constraints
- Only perform host operations for:
- git workflows (clone, fetch, commit, push, branch, tag)
- Docker and Docker Compose (build, run, compose up/down, network operations)
- All development and runtime tasks must be performed inside Docker containers.
- Expose only the main application web interface to external networks; all other services/ports remain internal to the per-stack Docker network.
Containerization & Deployment
- Ship the application as a Docker container image.
- Provide and maintain a canonical docker-compose.yml that describes service dependencies, networks, volumes, and healthchecks.
- Ensure the container:
- builds reproducibly
- starts reliably
- passes automated smoke tests before any release or QA signoff
Testing, QA & Reliability
- Follow Test-Driven Development (TDD) for all new features and bug fixes.
- Create comprehensive automated test suites (unit, integration, E2E where applicable).
- Maintain very high test coverage and ensure all tests pass in CI before merging.
- Treat all warnings as errors; configure CI to fail on warnings where practical.
- Include CI jobs that:
- build the container
- run linting
- run tests
- perform smoke/startup checks
Security & Compliance
- Adhere to best practices for security, QA, engineering, and SRE/DevOps.
- Ensure compliance with applicable regimes (PCI, GDPR, SOC, FedRAMP, accessibility standards).
- Design for least privilege in containers and networks; avoid exposing credentials/secrets in images or source.
- Integrate static analysis, dependency scanning, and container image vulnerability scanning into CI.
Accessibility
- Prioritize accessibility from the start; satisfy applicable accessibility guidelines required by US Government contracts.
- Include accessibility checks in test and QA processes.
Code Quality & Maintainability
- Lint all artifacts (code, configuration, Dockerfiles, YAML).
- Do not incur technical debt; add required tests, docs, and refactors as part of the change.
- Maintain clear, organized repository and docs. Keep docker-compose.yml and runbooks up to date.
Operational/SRE Requirements
- Provide healthchecks and metrics-friendly endpoints where applicable.
- Document startup, configuration, and rollback procedures.
- Ensure containers start quickly and deterministically for orchestration and smoke tests.
Acceptance Checklist (must be satisfied before “done”)
- Code follows TDD and has adequate tests
- Linting passes with zero warnings
- Container image builds reproducibly
- Container starts and passes smoke tests locally and in CI
- docker-compose.yml reflects current service topology
- Vulnerability and dependency scans show no critical issues
- Accessibility and applicable compliance checks pass
- Documentation and runbooks updated
- No outstanding technical debt items left untracked
Follow this checklist and principles for every change to ensure secure, testable, and production-ready deliverables.