Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Principle: Continuously maintain and evolve #505

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

dk4g
Copy link

@dk4g dk4g commented Jan 17, 2025

Will close #504

This principle focuses on the active maintenance and regular updating of systems over time, ensuring they stay modern, secure, and efficient. While principles like "Write maintainable, reusable, and evolutionary code" emphasise how to build software that is easy to modify, and "Well managed code" highlights best practices for managing code collaboratively and effectively, this principle addresses a different phase: the ongoing responsibility to actually apply those modifications by updating codebases, dependencies, pipelines, and infrastructure regularly.
The key distinction is that even the most maintainable code will eventually become outdated if left untouched. This principle ensures we avoid the trap of stagnation, where multiple skipped updates result in systems that are hard to upgrade or replace.
By focusing on the watching and maintaining phase, this principle highlights the practical steps needed to prevent technical debt, security vulnerabilities, and costly big bang upgrades. It complements existing principles by reinforcing the idea that great systems don’t just need to be well-designed, they need to be actively cared for over time.

Content change

I can confirm:

  • Content does not include any code or configuration changes (excluding frontmatter information)
  • Content meets the content standards
    e.g. Writing a principle and Writing a standard
  • Content is suitable to open source, i.e.:
    • Content does not relate to unreleased gov policy
    • Content does not refer to anti-fraud mechanisms
    • Content does not include sensitive business logic
  • Last updated date for content is correct

@dk4g dk4g requested a review from a team as a code owner January 17, 2025 19:31
- Integrate regular time slots within each sprint or release cycle dedicated to updating dependencies, refactoring code, and maintaining pipelines. This proactive approach ensures that systems remain current and reduces the risk of accumulating technical debt
- Establish a process to continuously observe and assess updates in the technology ecosystem, such as new library versions or framework releases. Staying informed enables timely adoption of improvements and ensures compatibility with external systems
- Implement tools that automatically detect outdated dependencies and facilitate testing processes. Automation streamlines maintenance tasks, minimises human error, and accelerates the integration of necessary updates
- Incorporate planned and measurable maintenance activities into team roadmaps. By formally recognising maintenance as a critical component of the development lifecycle, teams can allocate resources effectively and maintain system integrity over time
Copy link
Contributor

@aaronrussellHO aaronrussellHO Jan 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Keeping on top of SEGAS standards, such as considering accessibility when making changes.

- text: Write maintainable, reusable and evolutionary code
href: /principles/write-maintainable-reusable-and-evolutionary-code/
- text: Well managed code
href: /principles/well-managed-code/
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could add this video as a related link: https://www.youtube.com/watch?v=jjFgyAOIhSg

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or could incorporate points from the video

@aaronrussellHO
Copy link
Contributor

Discussed in SD guild:

  • Talked about merging this and Write maintainable code principle
  • Agreed that this could be merged, then refined later, by potentially deprecating Write maintainable and reusable code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

New principle: Continuously Maintain and Evolve
3 participants