Skip to content


Designing software well is hard.

ISE 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, adherence to best practices, and sustainability.
  • 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.



Code Examples