Designing software well is hard.
CSE has collected a number of practices which we find help in the design process. This covers not only technical design of software, but also architecture design and non-functional requirements gathering for new projects.
- Provide recommendations for how to design software for maintainability, ease of extension, and adherence to best practices.
- Reference or define process or checklists to help ensure well-designed software.
- Collate and point to reference sources (guides, repos, articles) that can help shortcut the learning process.