This document serves as a guide for lead engineers and developers embarking on a new project. It outlines the non-functional requirements (NFRs) that may be applicable to a project.
-
Review Categories: Begin by reviewing all the non-functional requirement categories provided in this document to determine their relevance to your project.
-
Forking and Renaming: If relevant, fork this repository, rename it to match your project's name, and indicate that it is a NFRs document.
-
Disabling Unneeded Requirements: Instead of removing non-essential requirements, disable them (e.g., make them gray) to maintain a comprehensive list for future reference.
-
Defining Requirements: Break down the requirements into three categories:
- Required: Must-have requirements for the project.
- Nice to Have: Desirable requirements that could enhance the project but are not essential.
- Unneeded: Requirements that are not applicable to the current project.
-
Attach to Project's Notion File: Link the cloned repository to the project's Notion file or any other project management tool being used.
-
Ensure Understanding: Verify that all developers and a PM have a clear understanding of the requirements and their priorities as listed in the repository.
- Performance
- Security
- Code quality (linting, testing, naming, dependencies management)
- Accessibility
- SEO
- Repository formalization and figuration, deploy (zero-downtime), CI/CD, semver etc.
- Documentation for developers
- Documentation for business owner or/and non-tech employees on business owner side
- App usability (forms behavior, error handling etc.)
- Errors tracking (how does business owner get information about app errors)
- Technologies that are used (?) - e.g. we use JS/TS, but not High Valyrian programming language, React, Vue, Svelte, but not esoteric frameworks and libraries etc. - discuss this point
- Mimimal supported browser versions: Safari 13, Chrome 70, Firefox 60, Edge 79 (first Chromium-based version).