Appearance
Personal technology radar
A personalized technology radar for tracking the techniques, platforms, tools, and languages/frameworks I'm currently exploring or using. Structured in quadrants and rings, inspired by the ThoughtWorks technology radar.
There are four quadrants on the radar:
- Techniques: These include elements of a software development process, such as experience design; and ways of structuring software, such as microservices.
- Platforms: Things that we build software on top of such as mobile technologies like Android, virtual platforms like the JVM, or generic kinds of platforms like hybrid clouds.
- Tools: These can be components, such as databases, software development tools, such as versions' control systems; or more generic categories of tools, such as the notion of polyglot persistence.
- Languages & Frameworks: These include programming languages like Java and Python but today primarily focus on frameworks like Gradle, Jetpack, and React.js.
The radar has four rings:
- Adopt: The Adopt ring represents things that I think you should seriously consider using. I don't say that you should use these for every project; any tool should only be used in an appropriate context. However I think that a topic in the Adopt ring represents something where there's no doubt that it's proven and mature for use.
- Trial: The Trial ring is for things I want to use on a trial basis, to decide whether they should be part of my toolkit.
- Assess: The Assess ring are things I want to look at closely, but not necessarily trial yet. Typically, things in the Assess ring are things that I think are interesting and worth keeping an eye on.
- Hold: The Hold ring is for things that, even though they may be accepted in the industry, I haven't had a good experience with.
Adopt
Trial
Techniques
Adopt
1
arc42
arc42 offers a clear, simple and effective structure to document and communicate your software system. It's is optimized for understandability and adequacy. It naturally guides you to explain any kind of architecture information or decision in an understandable way. Apply it in agile, lean or formal projects - you decide. https://arc42.org
2
C4 Model
The C4 model is an easy to learn, developer friendly approach to software architecture diagramming. Good software architecture diagrams assist with communication inside and outside of software development/product teams, efficient onboarding of new staff, architecture reviews/evaluations, risk identification (e.g. risk-storming), threat modelling, etc. https://c4model.com
3
Squad Health Check Model
Squads health checks step back from their day-to-day activities to get a broader perspective on how they are working, with the aim of improving their self-awareness, allowing them to more clearly see improvement opportunities. https://engineering.atspotify.com/2014/09/squad-health-check-model/
4
Team Canvas
Team Canvas Basic is a strategic framework that helps team members to kick off projects and align on common vision. Based on experience with startups and creative groups, it is made to smoothly start collective projects, let people learn about each other and accumulate enough momentum to get going. https://theteamcanvas.com
Trial
5
Data Product Canvas
A Data Product Canvas is a visual framework that guides your team through the data product specification. The Data Product Canvas consists of building blocks: domain, data product name, consumer and use sase, data contract, sources, data product architecture, ubiquitous language & classification. https://www.datamesh-architecture.com/data-product-canvas
Platforms
Adopt
6
Databricks Unity Catalog
Databricks Unity Catalog offers a unified governance layer for data and AI within the Databricks Data Intelligence Platform. With Unity Catalog, organizations can seamlessly govern their structured and unstructured data, machine learning models, notebooks, dashboards and files on any cloud or platform. https://www.databricks.com/product/unity-catalog
Assess
7
Industry Cloud Platforms
Vertical cloud platforms combine software, platform and infrastructure as a service (IaaS) capabilities to provide specific solutions for different vertical industries. These industry solutions are mostly based on public cloud services but offer industry players a more agile way to manage workloads and accelerate change against the particular business, data, compliance or other needs of their segment. https://www.gartner.com/en/articles/what-are-industry-cloud-platforms
Hold
8
Azure DevOps
Azure DevOps Server is a set of collaborative software development tools (project management, version control, building, testing, package management and release management). https://azure.microsoft.com/en-us/products/devops
Tools
Adopt
9
Apache JMeter
Apache JMeter is a Java application designed to load test functional behavior and measure performance. It can be used to simulate a heavy load on a server, group of servers, network or object to test its strength or to analyze overall performance under different load type. https://jmeter.apache.org
10
Apache Spark Streaming
Apache Spark Structured Streaming is an extension of the core Spark API that enables scalable, high-throughput, fault-tolerant stream processing of live data streams. Data can be ingested from many sources like Kafka, Kinesis, or TCP sockets, and can be processed using complex algorithms expressed with high-level functions like map, reduce, join and window. https://spark.apache.org/streaming/
11
ArchUnit
ArchUnit's main focus is to automatically test architecture and coding rules, using any plain Java unit testing framework. ArchUnit can check dependencies between packages and classes, layers and slices, check for cyclic dependencies and more. https://github.com/TNG/ArchUnit
12
CyberChef
CyberChef is a simple, intuitive web app for carrying out all manner of "cyber" operations within a web browser. The tool is designed to enable both technical and non-technical analysts to manipulate data in complex ways without having to deal with complex tools or algorithms. https://github.com/gchq/CyberChef
13
JDepend
JDepend traverses Java class and source file directories and generates design quality metrics for each Java package. JDepend allows to automatically measure the quality of a design in terms of its extensibility, reusability, and maintainability to effectively manage and control package dependencies. https://github.com/clarkware/jdepend
14
Poetry
Poetry is a tool for dependency management and packaging in Python. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you. Poetry offers a lockfile to ensure repeatable installs, and can build your project for distribution. https://python-poetry.org
15
Terraform
Terraform is an infrastructure as code tool that lets you define both cloud and on-prem resources in human-readable configuration files that you can version, reuse, and share. You can then use a consistent workflow to provision and manage all of your infrastructure throughout its lifecycle. https://www.terraform.io
16
terraform-docs
A utility to generate documentation from Terraform modules in various output formats. https://github.com/terraform-docs/terraform-docs
Trial
17
Bruno
Bruno is an API client, aimed at revolutionizing the status quo represented by Postman and similar tools out there. Bruno stores your collections directly in a folder on your filesystem and uses a plain text markup language to save information about API requests. https://github.com/usebruno/bruno
18
Data Contract Specification
A data contract is a document that defines the structure, format, semantics, quality, and terms of use for exchanging data between a data provider and their consumers. Think of an API, but for data. https://github.com/datacontract/datacontract-specification/
19
Databricks Asset Bundles
Databricks Asset Bundles are a tool to facilitate the adoption of software engineering best practices, including source control, code review, testing, and continuous integration and delivery (CI/CD), for your data and AI projects. https://docs.databricks.com/aws/en/dev-tools/bundles/
20
Infracost
Infracost shows cloud cost estimates and FinOps best practices for Terraform. It lets engineers see a cost breakdown and understand costs before making changes, either in the terminal, VS Code or pull requests. https://github.com/infracost/infracost
21
Pulumi
Write code in your favorite language and Pulumi automatically provisions and manages your resources on AWS, Azure, Google Cloud Platform, Kubernetes, and 120+ providers using an infrastructure-as-code approach. Skip the YAML, and use standard language features like loops, functions, classes, and package management that you already know. https://github.com/pulumi/pulumi
22
Renovate Bot
Renovate Bot is a dependency update automation tool. It scans software, discovers dependencies, automatically checks to see if an updated version exists, and helps by submitting automated pull requests. https://github.com/renovatebot/renovate
Assess
23
Amazon Verified Permissions
Amazon Verified Permissions is a scalable, fine-grained permissions management and authorization service for custom applications. Verified Permissions enables developers to build secure applications faster by externalizing authorization and centralizing policy management and administration. https://docs.aws.amazon.com/verifiedpermissions/latest/userguide/what-is-avp.html
24
Azure Verified Modules
Azure Verified Modules (AVM) is an initiative to consolidate and set the standards for what a good Infrastructure-as-Code module looks like. Modules will then align to these standards, across languages (Bicep, Terraform etc.) and will then be classified as AVMs and available from their respective language specific registries. https://azure.github.io/Azure-Verified-Modules/
25
Data Contract CLI
The datacontract CLI is an open-source command-line tool for working with data contracts. It uses data contract YAML files as Data Contract Specification or ODCS to lint the data contract, connect to data sources and execute schema and quality tests, detect breaking changes, and export to different formats. https://github.com/datacontract/datacontract-cli
26
DuckDB
DuckDB is a high-performance analytical database system. It is designed to be fast, reliable, portable, and easy to use. DuckDB provides a rich SQL dialect, with support far beyond basic SQL. DuckDB supports arbitrary and nested correlated subqueries, window functions, collations, complex types (arrays, structs, maps), and several extensions designed to make SQL easier to use. https://github.com/duckdb/duckdb
Archive
Tools
Steampipe (Assess)
Steampipe exposes APIs and services as a relational database, giving the ability to write SQL-based queries to explore cloud infrastructure, SaaS, code, logs, and more. https://github.com/turbot/steampipe
VuePress (Hold)
VuePress is a minimalistic static site generator with a Vue-powered theming system and Plugin API, and a default theme optimized for writing technical documentation. It was created to support the documentation needs of Vue’s own sub projects. https://github.com/vuejs/vuepress
Resources
Blog Post «Build Your Own Technology Radar» by Neal Ford
Technology radar: a living document to assess the risks and rewards of existing and nascent technologies. I’ve come to believe technologists need two radars: one as an individual, to help guide career decisions, and one for your employer, to help restore sanity to purchasing decisions and technology direction.
- Build Your Own Technology Radar, Neal Ford
Book «Fundamentals of Software Architecture: An Engineering Approach» by Mark Richards & Neal Ford
This book provides the first comprehensive overview of software architecture’s many aspects. Aspiring and existing architects alike will examine architectural characteristics, architectural patterns, component determination, diagramming and presenting architecture, evolutionary architecture, and many other topics.
Zalando Tech Radar
At Zalando, we maintain a public Tech Radar to help our engineering teams align on technology choices. It is based on the pioneering work by ThoughtWorks. This repository contains the code to generate the visualization.
- Tech Radar, Zalando