System Development and Maintenance Procedure

Secure lifecycle steps for planning, designing, building, testing, deploying and maintaining the Organisation's software and systems.

SXL-B18Procedure4,029 words 18 min readOwner: Head of Engineering
Sign in to download the PDFFree. You return straight to this document after you sign in.
Template draft. Replace everything in [square brackets] with your own decision, delete what does not describe what you really do, and approve it through your own document control. It is not legal advice and does not make an organisation compliant or certified.

1. Purpose

This procedure defines the stages a system passes through from idea to retirement, and the security activities, evidence and approvals required at each stage. It gives engineering teams a repeatable path so that security requirements are set before design, tested before release and maintained after go-live.

  • Build security into every stage so defects are found early, when they are cheapest to fix.
  • Separate duties so that nobody can write, approve and release their own change without independent review.
  • Keep an auditable trail from requirement to code, test result, approval and deployed version.

2. Scope and Applicability

The procedure applies to all systems the Organisation develops, configures, extends or has developed for it, whether built in-house or by a supplier, and whether hosted on premises, in a cloud service or on customer-facing platforms.

  • In scope: new applications, services and APIs; major enhancements; infrastructure as code; scripts and automation that touch production; database changes; mobile and web front ends; low-code and configuration-driven tools; and open-source components included in any of these.
  • In scope people: developers, architects, testers, DevOps and release engineers, product owners, security reviewers, and supplier staff doing development for the Organisation.
  • Out of scope: off-the-shelf software installed without modification (see the Supplier Relationship Management Procedure and the Patch Management Procedure), and personal productivity spreadsheets that hold no Organisation data of classification above Internal.
  • Where a system is developed using an agile or iterative method, the stages still apply; they are completed per increment rather than once, and the evidence is recorded for each release.

3. Terms and Definitions

The glossary at the end of this procedure defines the technical terms used. The terms below are central to how the stages operate.

TermMeaning
Security gateA mandatory checkpoint at the end of a stage where named evidence is reviewed before work may proceed.
EnvironmentA separated set of infrastructure for one purpose: development, test, staging or production.
Release candidateA build that has passed all automated checks and is proposed for deployment.
ChangeAny addition, modification or removal that could affect a production service; governed by the Change Management Procedure.
Technical debtKnown shortcuts or defects in the system that increase future cost and risk, recorded in the backlog.
Definition of doneThe agreed list of activities, including security activities, that must be complete before work is accepted.

4. Roles and Responsibilities

RoleResponsibilities
Document owner (Head of Engineering)Maintains this procedure, the secure development standards and the gate checklist; reports compliance to management.
Product ownerDefines business and security requirements with security, accepts release into production, and owns the risk of the system.
Solution architectProduces the design and threat model, and enforces secure architecture principles.
DevelopersWrite code to the secure coding standard, perform peer review, fix defects and keep dependencies current.
Test leadPlans and runs functional, regression, performance and security testing, and reports results against acceptance criteria.
Security reviewerReviews requirements, designs, scan results and exceptions, and signs the security gates.
Release managerControls the release pipeline, checks approvals and deployment evidence, and manages rollback.
Operations teamOperates production, applies patches and monitors the system after release.
Information security teamProvides tools, standards and guidance, and performs independent assurance.
ActivityResponsibleAccountableConsultedInformed
Security requirements specificationProduct ownerHead of EngineeringSecurity reviewerTest lead
Architecture and threat modelSolution architectHead of EngineeringSecurity reviewerDevelopers
Secure coding and peer reviewDevelopersHead of EngineeringSecurity reviewerProduct owner
Security testing and defect closureTest leadHead of EngineeringSecurity reviewer; DevelopersProduct owner
Approval for production releaseRelease managerProduct ownerSecurity reviewer; Operations teamService desk
Patching and maintenanceOperations teamHead of ITDevelopers; Security reviewerProduct owner
Retirement and data disposalOperations teamProduct ownerInformation security teamLegal and compliance

5. System Development and Maintenance

Every system follows the seven stages below. A project may not skip a stage; for small changes the activities are scaled down but the gate evidence is still recorded in the ticketing tool. The security gates for all stages are summarised in the table at the end of this section.

5.1 Planning stage

Planning decides what will be built, why, by whom and how risk will be controlled. The output is an approved project record with security embedded from the start.

  1. InitiateThe product owner raises a request with business objective, users, data types and the highest classification of data involved. Target: complete before funding is approved.
  2. AssessInformation security performs a security and privacy screening using the Risk Management Policy; if personal data is processed at scale, a privacy impact assessment is started under the Data Protection and Privacy Procedure.
  3. ScopeDefine security, availability, performance and compliance requirements, including legal duties in each jurisdiction where the system will operate.
  4. PlanAgree timeline, environments, team, tools and licences; identify third parties and start supplier due diligence under the Supplier Relationship Management Procedure.
  5. ApproveThe steering group approves the plan; security gate G1 is signed by the security reviewer within [5 working days] of submission.
  • Output: project charter, security requirements baseline, risk register entries, resource plan.

5.2 Designing stage

Design turns requirements into an architecture and detailed specification that can be reviewed for weaknesses before any code is written.

  1. ArchitectThe solution architect documents components, trust boundaries, data flows, storage, interfaces and hosting, applying least privilege, defence in depth, fail-safe defaults and separation of duties.
  2. Model threatsRun a threat model using the STRIDE categories on every new system and every major change; record threats, ratings and chosen controls. Reuse the Product Risk Assessment Procedure worksheet.
  3. Specify controlsChoose authentication, authorisation, session handling, input validation, encryption (following the Cryptography Procedure), logging, error handling and secrets management patterns.
  4. Design dataDefine data classification, retention, masking for non-production use, and deletion; avoid collecting data that is not needed.
  5. ReviewHold a design review with the security reviewer; unresolved high-rated threats block gate G2.
Design principleWhat the design must show
Least privilegeEach component, service account and user role holds only the permissions needed, with the role matrix attached to the design.
Defence in depthAt least [two] independent controls protect each high-value asset, for example network segmentation and application authorisation.
Secure defaultsA new account, feature or integration starts with the most restrictive setting and is opened up deliberately.
Fail safelyWhen a check fails or a dependency is down, access is denied and no sensitive detail is shown.
Separation of dutiesNo single person can both create and approve a sensitive transaction or release.
Minimise attack surfaceUnused endpoints, ports, libraries and features are left out; every external interface is listed and justified.
Complete mediationEvery request to a protected resource is checked, not only the first one in a session.
Keep it simple and reuseApproved shared components for login, logging and encryption are used instead of custom versions.
Note. Designs must show how the environments are separated and how production data is kept out of development and test, unless masked or anonymised.

5.3 Building and coding stage

Developers build to written standards in a controlled, separate environment, and every change is traceable to a ticket.

  • Source code is held in a central version-control system with access by named users, multi-factor authentication, and branch protection on the main branch; direct commits to the main branch are blocked.
  • Every change is peer reviewed by at least [one] developer who did not write it, using the code review checklist (Annexure B); security-sensitive changes require a security reviewer.
  • The secure coding standard must be followed: validate and encode all input and output, use parameterised queries, avoid hard-coded secrets, handle errors without revealing internals, and use approved cryptographic libraries only.
  • Secrets, keys and tokens are stored in a secrets vault, never in source code, configuration files or tickets; scanners check every commit for them.
  • Automated checks run on every commit: static analysis, dependency and licence scanning, and secret detection. Findings rated High or above stop the build.
  • Open-source and third-party components are drawn only from approved repositories, pinned to versions, and listed in a software bill of materials kept for each release.
  • Developers receive secure coding training at joining and every [12 months]; developers working on high-risk systems are trained in the specific language and framework.
  • Outsourced development follows this stage and is governed by contract clauses on code ownership, review rights, and delivery of source and build instructions.

5.4 Testing stage

Testing proves that the system meets requirements and resists attack before it reaches users. Testing is done in a test environment that mirrors production but holds no live data.

  1. Plan testsThe test lead writes a test plan covering functional, integration, regression, performance, accessibility and security tests, traced to requirements.
  2. Prepare dataUse synthetic or masked data; production data may be used only with written approval from the data owner and the same controls as production.
  3. RunExecute tests; record each defect with severity, owner and target date in the ticketing tool.
  4. Test securityRun dynamic application testing and, for Critical and High systems, a manual penetration test as set out in the Vulnerability Assessment and Penetration Testing Procedure. Review authentication, authorisation, input handling and logging.
  5. AcceptThe product owner and test lead sign user acceptance. Gate G4 passes only when no open Critical or High security defect remains, or an accepted-risk record exists.
Defect severityExamplesRule at releaseTarget fix time
CriticalAuthentication bypass, remote code execution, exposure of restricted dataRelease blocked[3 working days]
HighBroken access control, stored injection, weak encryption of sensitive dataRelease blocked unless accepted by the Head of Information Security[10 working days]
MediumMissing security header, verbose errors, weak session timeoutRelease allowed with a dated fix plan[30 days]
LowCosmetic or best-practice gaps without direct exploitRelease allowed[Next planned release]
  • Test information is protected and deleted when testing ends; test accounts are removed before go-live.
  • Where an audit or assurance activity needs to test live systems, the test is scheduled and agreed so that it does not damage production.

5.5 Deployment stage

Deployment moves a tested build into production under change control, in a way that can be reversed.

  1. PrepareRelease manager confirms the release candidate, software bill of materials, test evidence and rollback plan, and raises a change under the Change Management Procedure.
  2. ApproveApprovals required: product owner, security reviewer (gate G5) and change authority; emergency releases follow the emergency path and are reviewed afterwards within [2 working days].
  3. HardenApply the baseline from the Secure Configuration Policy: remove default accounts, close unneeded ports, set production secrets and enable logging and monitoring.
  4. DeployUse the automated pipeline from a protected branch; no manual changes by individuals to production outside the pipeline except under break-glass access, which is logged and reviewed.
  5. VerifyRun smoke tests, confirm monitoring and alerts, and check for new vulnerabilities in the deployed version. Target: verification complete within [2 hours] of release.
  6. InformNotify users, support and customers where needed and update documentation and the asset register.

Developers do not have standing write access to production. Access to production is given to the operations team and release pipeline, and developer support access is time-limited and approved case by case.

5.6 Maintenance stage

After go-live the system is kept secure and fit for purpose until it is retired. Maintenance is not a lower-priority activity: it is where most real-world vulnerabilities are met.

Maintenance change typeDescriptionApprovalGate evidence
StandardLow-risk, repeatable and pre-approved, such as a routine library patch with passing testsPre-approved by change authorityPipeline results and peer review
NormalFeature, configuration or data change with an assessed riskChange authority and security reviewer for High riskFull G3 to G5 evidence
EmergencyUrgent fix to restore service or close an exploited weaknessEmergency change approver, then review within [2 working days]Abbreviated record, completed afterwards
MajorChanges to architecture, data flows or trust boundariesReturn to design with new threat modelG2 repeated
  • Patch and update operating systems, runtimes, libraries and frameworks according to the Patch Management Procedure: Critical within [7 days], High within [30 days], Medium within [90 days].
  • Review dependency alerts at least [weekly] and treat any Critical alert on an internet-facing system as an incident to triage within [1 working day].
  • Run vulnerability scans after significant changes and at the frequency set by the Vulnerability Assessment and Penetration Testing Procedure.
  • Maintenance changes follow the same stages in proportion: minor fixes may use a shortened path with peer review, automated tests and security gate G5; changes that alter architecture or data flows return to design.
  • Monitor logs, performance and capacity, and review alerts daily; trends feed the capacity and problem processes.
  • Record defects found in production and perform root cause analysis for any security defect rated High or above; add the missed test to the regression suite.
  • Review user access, service accounts and secrets used by the system every [quarter].
  • Back up the system and test restoration according to the Backup Management and Retention Procedure.
  • Review support arrangements and supplier support end dates annually; plan migration at least [12 months] before a product reaches end of support.

5.7 Retirement

  1. DecideThe product owner approves retirement and records the reason and date.
  2. MigrateMove needed data to the new system or archive it under the retention schedule; confirm completeness.
  3. RemoveRevoke accounts and network paths, delete or archive source code, and cancel licences and domain names.
  4. DisposeSanitise or destroy storage and infrastructure using the Asset Disposal Process and keep the certificate.
  5. CloseUpdate the asset register, remove monitoring and record closure with the security reviewer.

Unattended legacy systems with no owner are a common source of breaches; the register of systems is reviewed every [6 months] for systems with no change activity.

5.8 Governance

Governance ensures that the procedure is followed and that exceptions are visible. Gates are reviewed by people who are independent of the team being gated.

GateStageEvidence requiredSigned byTarget time
G1PlanningCharter, risk screening, security and privacy requirements baselineSecurity reviewer[5 working days]
G2DesignArchitecture, data flow diagram, STRIDE threat model, design review minutesSecurity reviewer[5 working days]
G3BuildCode review records, static analysis and dependency scan results, secrets scan, bill of materialsHead of Engineering[2 working days]
G4TestTest report, dynamic scan, penetration test for Critical and High systems, defect closureTest lead and security reviewer[5 working days]
G5DeploymentChange record, rollback plan, hardening checklist, approvalsRelease manager and product owner[1 working day]
G6MaintenancePatch compliance report, scan results, access reviewOperations team lead[Quarterly]
G7RetirementData migration or archive proof, access removal, disposal certificateProduct owner[10 working days]
  • The Head of Engineering reports gate performance, open exceptions and defect trends to the information security steering group every [quarter].
  • Internal audit samples at least [five] releases a year across the gates, covering evidence, separation of duties and approvals.
  • Standards are reviewed when a significant incident, new technology or new legal requirement changes the risk.
  • Exceptions to a gate are recorded with the risk, compensating control, owner and expiry date, and approved by the Head of Information Security; no exception lasts longer than [90 days].

6. Security Requirements Catalogue

Product owners select from this catalogue when writing requirements at the planning stage. Items marked as baseline apply to every system; others apply where the stated condition is true.

AreaRequirementApplies
IdentityUsers authenticate through the central identity service; multi-factor authentication for administrators and for any external access to restricted data.Baseline
AuthorisationRole-based access, enforced on the server for every request, with administrative functions separated from user functions.Baseline
Input and outputAll input validated for type, length and range; output encoded for its context; file uploads checked for type and size and stored outside the web root.Baseline
SessionsSession tokens are random, expire after [30 minutes] idle, and are invalidated on logout and password change.Web and mobile
CryptographyTLS for all transport; sensitive data encrypted at rest; algorithms and keys per the Cryptography Procedure and Key Management Process.Baseline
LoggingLog authentication events, access to restricted data, administrative actions and errors without storing passwords or full card or identity numbers; protect and retain logs per the Logging and Monitoring Procedure.Baseline
APIsEach API call authenticated and authorised; rate limits and request size limits applied; schemas validated; versions retired on a schedule.Systems with APIs
PrivacyCollect only needed personal data; provide ways to meet rights requests; mask or tokenise in non-production.Personal data processed
AvailabilityRecovery time and recovery point targets documented and tested; capacity monitored.Critical and High systems
Third-party codeOnly approved, current components; licence compatibility checked.Baseline
Mobile and clientNo secrets in the client; certificate validation enforced; local storage encrypted.Mobile and desktop clients

7. Pipeline and Release Controls

Automated pipelines are the only route to production. Their own security is therefore part of the system's security.

ControlRequirementEvidence
Pipeline accessOnly named maintainers change pipeline definitions, with peer review and multi-factor authentication.Repository permissions report
Build integrityBuilds run on managed, ephemeral runners; artefacts are signed and stored in a protected registry.Signature check in deployment step
CredentialsPipeline secrets are short-lived, scoped to one environment and rotated every [90 days].Secrets vault audit log
Quality gatesTests, static analysis, dependency scan and secret scan must pass; overrides are logged and approved by the security reviewer.Pipeline run history
PromotionPromotion from test to production uses the same artefact; it is never rebuilt.Artefact hash comparison
Deployment recordEvery deployment records version, approver, time and change reference automatically.Deployment log
RollbackA tested rollback exists for each release and is exercised at least [twice a year] on Critical systems.Rollback test record
  • Infrastructure as code follows the same review and scanning as application code, and plans are reviewed before they are applied.
  • Low-code and configuration platforms are treated as development: they need an owner, access control, an approval step and a record of changes, and may not be used to process Restricted data until they have passed a security review.
  • Documentation, including architecture, runbooks and API descriptions, is updated before a release is closed, and reviewed at least [every 12 months] for Critical systems.

8. Environment Separation and Test Data

Development, test, staging and production are kept apart so that experiments, test data and unreviewed code cannot reach live information.

EnvironmentPurposeWho may change itData allowed
DevelopmentBuilding and unit testingDevelopersSynthetic data only
TestIntegration, security and acceptance testingTest lead and pipelineSynthetic or masked data
StagingFinal rehearsal on production-like setupRelease manager and pipelineMasked data; production copies only with written approval
ProductionLive servicePipeline and operations teamLive data
  • Network paths between environments are blocked by default; only the pipeline may promote builds from one environment to the next.
  • Credentials and keys are different in each environment and never reused.
  • Production data used for testing, where approved, is masked, access-limited and deleted within [30 days] of the test ending.
  • Developers do not hold production credentials; production access for investigation is time-limited, approved and logged.

9. Outsourced and Third-Party Development

Where a supplier writes or maintains code for the Organisation, the supplier must follow the stages in this procedure or demonstrate an equivalent. The contract, agreed under the Supplier Relationship Management Procedure, must cover the following.

  • Ownership of code and deliverables, and delivery of full source, build scripts and documentation at each release.
  • Right for the Organisation to run its own code review, scan and penetration test before acceptance, and to receive the supplier's test evidence.
  • Secure coding obligations, named developers cleared by the Organisation, and prompt notice of vulnerabilities discovered.
  • Escrow or equivalent protection for critical bespoke software if the supplier fails or the relationship ends.
  • Warranty and defect-fix period of at least [90 days] after acceptance, and a commitment to fix security defects within the times in the defect severity table.

10. Measures

MeasureTargetHow it is measured
Releases that passed every required gate[100 percent]Release records against gate checklist
Critical and High defects open at release[0] unless acceptedDefect tracker at gate G4
Code changes with peer review[100 percent]Version-control branch report
Critical dependency vulnerabilities fixed within [7 days][95 percent]Dependency scanner report
Developers with current secure coding training[100 percent]Training records
Production changes made outside the pipeline[0]Change log reconciled with deployment log
Emergency releases reviewed within [2 working days][100 percent]Post-implementation review records

11. Records and Evidence

RecordKept byLocationRetention
Project charter and requirementsProduct ownerDocument management systemLife of system plus [3 years]
Design, data flow and threat modelSolution architectDocument management systemLife of system plus [3 years]
Code review and scan resultsDevelopersVersion-control and pipeline tools[2 years]
Test plans, results and acceptanceTest leadTest management tool[3 years]
Release approvals and change recordsRelease managerTicketing tool[3 years]
Exception and accepted-risk recordsSecurity reviewerRisk registerUntil expiry plus [3 years]
Disposal certificatesOperations teamDocument management system[7 years]

12. Glossary

TermMeaning
APIApplication programming interface: a defined way for programs to talk to each other.
AuthenticationProving who a user or system is.
AuthorisationDeciding what an authenticated user or system may do.
BacklogThe ordered list of work waiting to be done by a team.
BaselineAn approved configuration or document version used as a reference.
Branch protectionRules in version control that require review and passing checks before changes are merged.
BuildThe act or result of turning source code into a runnable package.
CI/CDContinuous integration and continuous delivery: automated pipelines that build, test and release changes.
Code reviewExamination of code by someone other than its author to find faults and improve quality.
ContainerA packaged, isolated runtime for an application and its dependencies.
DependencyThird-party code or library that a system needs to work.
Dynamic testingTesting a running application by sending it requests, as an attacker would.
EncryptionTransforming data so that only holders of the right key can read it.
HardeningReducing attack surface by removing unneeded features and tightening settings.
Infrastructure as codeDefining servers and networks in versioned files that are deployed by tools.
Least privilegeGiving only the access needed for a task and no more.
Peer reviewReview by a colleague of equal standing.
Regression testA test that checks that existing behaviour still works after a change.
RollbackReturning a system to its previous working version.
SandboxAn isolated environment where code can run without affecting real systems.
Software bill of materialsA list of the components and versions inside a software release.
Static analysisAutomated inspection of source code for weaknesses without running it.
STRIDEA method that sorts threats into Spoofing, Tampering, Repudiation, Information disclosure, Denial of service and Elevation of privilege.
Threat modelA structured description of how a system could be attacked and what controls address each threat.
Version controlA system that records changes to files and lets teams work on them together.
VulnerabilityA weakness that could be used to harm a system or its data.

Annexure A: Security gate checklist

GateCheckPass / FailEvidence referenceSigned by and date
G1Security and privacy requirements recorded
G2Threat model complete and high threats addressed
G3All commits reviewed; no High scan finding open
G4No Critical or High defect open; acceptance signed
G5Change approved; rollback tested; hardening done

Annexure B: Code review checklist

AreaQuestionYes / No / n/a
InputIs all external input validated and output encoded?
AccessAre authentication and authorisation checks present on every sensitive path?
SecretsAre secrets absent from the code and configuration?
DataIs personal data minimised, protected and logged only where needed?
ErrorsDo errors avoid exposing internal details?
DependenciesAre new libraries approved, pinned and scanned?
TestsAre tests added or updated, including a negative test?

Annexure C: Exception and accepted-risk form

FieldEntry
System, release and ticket reference
Gate and requirement not met
Risk description and rating
Compensating controls
Owner and expiry date (not beyond [90 days])
Approved by (Head of Information Security) and date

13. Exception

Exceptions to this document are allowed only where compliance is not practicable and the risk has been assessed. A request must state what is to be excepted, why, the risk it creates, the compensating controls, and an end date no later than [6 months]. It is approved in writing by the document owner and the risk owner, recorded in the exceptions register, and reviewed at the end date. An exception does not change the document.

14. Enforcement

Compliance is monitored through internal audits, management review and routine checks by the document owner. Non-compliance is reported through the incident or non-conformity process and handled under the organisation's disciplinary procedure, and under the terms of any contract for people who are not employees. Serious or repeated non-compliance may lead to loss of access and, where the law is broken, to referral to the authorities.

15. Review

This document is reviewed at least every [12 months], and when there is a significant change to the organisation, its systems, its risks or the law, or after an incident that shows it was not effective. Each review is recorded in the revision history.

ISO/IEC 27001:2022 references

ReferenceTitle
A.8.25Secure development life cycle
A.8.26Application security requirements
A.8.27Secure system architecture and engineering principles
A.8.28Secure coding
A.8.29Security testing in development and acceptance
A.8.30Outsourced development
A.8.31Separation of development, test and production environments
A.8.32Change management
A.8.33Test information
Sign in to download the PDFFree. You return straight to this document after you sign in.