-
Notifications
You must be signed in to change notification settings - Fork 5
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
base: main
Are you sure you want to change the base?
Conversation
- 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 |
There was a problem hiding this comment.
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/ |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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
Discussed in SD guild:
|
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:
e.g. Writing a principle and Writing a standard