# Tech Strategy

An overview of Architecture, Technologies and Technical practices. It should align with the company strategy and business cases. Like product strategy, it offers alignment, direction, guidance. It enables small and autonomous teams. It pushes decision making to the possible lowest level.

> Strategies are also the bricks that narrow your many possible futures down enough that it’s possible to write a realistic vision. - Staff Engineer by Will Larson

### Maturity Model

If you realize that you’ve rehashed the same discussion three or four times, it’s time to write a strategy. When the future’s too hazy to identify investments worth making, it’s time to write another vision. If neither of those sound like familiar problems – move on to other work for now and return later

![https://www.cnpatterns.org/how-to-use-cards](/files/rshlc6iRVEUhL3L0k6TZ)

### Technologies

What technologies shall we use? AWS or GCP, Buildkite or TravisCI, NodeJs or .Net Core, GitHub or GitLab, React or Angular, Athena or BigQuery, Postgres or MySQL, OpenSearch or ElasticSearch, and more...and more...&#x20;

You should probably follow the technologies that are commonly used in your organization.&#x20;

### Architecture

What common architecture patterns should we use? N-Tire, CQRS, Event sourcing, or a combination of all of them. How do these services communicate with each other? REST or RPC. Is there a centralised authentication platform? Is there a Platform as a Service? Are there any shared utils that will improve developer productivity?

{% embed url="<https://docs.aws.amazon.com/wellarchitected/latest/framework/welcome.html>" %}

### Data Service

Data Platform as a Service: well-documented data ingestion, clear data ownership and governance, query schema, event catalogue, reporting and dashboarding.

### Readings

* <https://refactoring.fm/p/how-to-design-a-good-tech-strategy>
* <https://refactoring.fm/p/good-strategy-bad-strategy>
* <https://boringtechnology.club>
* <https://lethain.com/eng-strategies/>
* <https://lethain.com/solving-the-engineering-strategy-crisis/>
* <https://www.intercom.com/blog/run-less-software/>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://jamiewen00.gitbook.io/tech-lead-handbook/strategy/tech-strategy.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
