A list of things that need to exist for any large software development project:
A general write-up of the industry, domain, etc. including terminology and conventions.
A roadmap for the growth and direction of the system.
A set of requirements (by feature) from the user’s perspective.
The user’s workflows as they relate to the domain problems they are encountering.
A model for each of the different data entities that are encountered during the workflows.
A list of real examples and all special cases.
A set of requirements from the operational perspective.
A design grid for all screens.
A color scheme for the GUI.
A high-level navigation structure for the GUI.
An arrangement of data/functionality/layout for any ‘difficult’ screens.
A high-level design/architecture for the system, broken down by major components including frameworks, libraries, and persistence.
A high-level runtime arrangement for processes, machines, etc.
A lot of mid-level designs for the organization of the code.
A code repository with full history, including highlighting the code that was released to the different environments. Also contains all dependencies necessary for building.
A development setup guide, including any tools, configurations, etc.
A style and conventions guide for making changes or new additions to the code base.
Technical notes on solving complex problems, preferred idioms, references, and other issues.
A searchable inventory of the reusable parts of the code.
Low-level specifications and/or the code.
A set of test suites that match back to the workflows and examples.
A full list of all known bugs (testing, user, or operational), solved or currently pending.
A set of scripts or instructions on how to build and package the code.
A list of expected configuration parameters and flags for testing and production setups.
A set of scripts to safely upgrade the system, including persistent schema changes and rollbacks.
An operational manual on how to handle recurring problems.
A tutorial on how to use the GUI for common tasks.
A reference document for any APIs, plus any technical notes for calling it correctly.
Any missing items will cause grief.
No comments:
Post a Comment
Thanks for the Feedback!