# 1.2 Technology Strategy

# 1.2.1 Technology Strategy

Level: Basic

Your team has a technology strategy that reflects the needs of its product strategy and vision. This approach is communicated, and aligns with, strategies used by other teams.

A strong technology strategy ensures that product architecture, choice of technology, and design decisions strike a balance between minimizing technical debt and maximizing efficiency. This should prevent your team’s productivity from being hobbled by technical limitations, cost-scaling issues, and talent shortages.

# 1.2.2 Technical Debt

Level: Basic

Your team’s development process is designed to keep technical debt to a minimum. All team members maintain a clear awareness of the amount of technical debt associated with the product.

Technical debt increases the risk that future development activity will be more difficult than anticipated. Maintaining visibility into technical debt in product teams—and minimizing it to a reasonable level—is an important aspect of managing risks that could hinder future growth.

# 1.2.3 Tech Stack Scalability

Level: Basic

Your team’s tech stack is designed to scale effectively (both costs and capabilities) alongside your product. The stack can be updated efficiently without hindrance from technical limitations.

To future-proof your product, it’s necessary to consider how its tech stack can scale throughout its lifecycle. Barriers to efficient scaling include excessive technical debt, cost control issues, and technical limitations that prevent performance from scaling effectively alongside growth in demand.

# 1.2.4 Business Understanding

Level: Intermediate

Your team has a deep understanding of its company’s business needs, and leverages that knowledge to make sound technology decisions.

Teams need to understand their company’s core business needs in order to ensure that their technology decisions consistently align with the company’s best interests. Discussions about the business purpose of your team’s efforts should occur at all stages of the software development lifecycle.

# 1.2.5 Technology Assessment

Level: Intermediate

Your team has a set method to evaluate the value of adopting a new technology. This enables it to keep pace with important industry trends without getting caught up in industry hype.

It is important to have a consistent method to evaluate whether the benefits of a new technology are greater than its costs. Key criteria to consider include: performance, scalability, ease of use, ease to onboard, available talent pool, etc. By the end of the assessment, the entire team should understand both the costs and benefits of the technology being considered.

# 1.2.6 Dependency Evaluation

Level: Advanced

Your team has an organized system for tracking the health and usefulness of its dependencies. This system includes regular testing for dependency failures.

It’s necessary to reassess your dependencies on a regular basis to ensure they remain useful and reliable. Testing for dependency failures should include a focus on ensuring the system can remain available if point failures occur, especially external dependencies whose failure might be outside your control.