01 layer
knowledge
what it reads before it writes anything
03 playbooks
1
new product development
A technical approach describes how a product will be built. In a mature organization each product's approach lines up with the company's wider technical strategy, and where it does not, the mismatch is worth an argument before the code exists rather than after.
Its other job is the record. Two years on, the useful question is not what you chose but why, and nobody remembers.
Structure
Well written tech approach usually has following components:
- High-level introduction about product we are building (3 sentences)
- Tech Stack - what language / ecosystem are we going to use to implement the product?
- Integrity - how would this app be integrated into suite of existing apps?
- Communication - how would this app communicate with other apps? JSON REST API? Grpc? GraphQL?
- How state is managed? How are we going to store files?
- Database - do we need a relational db or document or graph db? Why?
- Security
- Automation - CI/CD pipelines, infrastructure provisioning
- 3rd party API integrations
- Buy vs Build: is it possible to buy some parts?
- FAQ: include answers to some critical questions that a reader may have. Expect reader (imagine senior technologist at a company reading this and coming up with tricky questions to argue your choice)