What is the Tech Radar?
The Wayfair Tech Radar is a list of technologies we use, organized as a ring assignment. This is an idea from Thoughtworks, on which Zalando made an interesting variation. Zalando tech has written about how their Spotify-style Technologists Guild uses the radar to characterize and shape their patterns of technology usage. They generously opensourced a D3-based visualization, which is available here, and we have tweaked that version for our purposes.
- ADOPT — Technologies we have high confidence in to serve our purpose at scale. Technologies with a usage culture in our Wayfair production environment, low risk, and recommended to be widely used. Within this ring, there are varying amounts of usage, and there is guidance about what these technologies are recommended for at Wayfair. We derive focus and collective strength from a coherent point of view on what we use certain technologies things for: tooling, instrumentation, etc., are better with critical mass, and worse otherwise. Please read the corresponding documentation behind each technology, which will have comments on what a good use case looks like (technologies/php/index.html, for example).
- TRIAL — Technologies that we have seen work with success in project work to solve a real problem; first serious usage experience that confirm benefits and can uncover limitations. TRIAL technologies are slightly more risky; some engineers in our organization walked this path and will share knowledge and experiences. If a technology is in 'Trial,' there may be a cross-team pilot under way, probably accompanied by an analysis of level of effort, to evaluate possible movement into 'Adopt.'
- ASSESS — Technologies that are promising and have clear potential value-add for us; technologies worth investing in some research and prototyping efforts to gauge impact. ASSESS technologies have higher risk; they are often brand new and unproven in our organization. You will find some engineers that have knowledge in the technology and promote it, while you may even find teams that have started a prototyping effort. If the technology was formerly in 'Adopt,' its presence in this ring means that we are starting to have doubts about the strength of our recommendation, but it is still a strong possibility for its core use cases. Especially if the technology in question would require a high degree of expert maintenance for teams outside the team that wants to use it, we may restrict things in 'Assess,' almost to the same degree that we would for 'Hold.'
- HOLD — Technologies not recommended to be used for new projects. Technologies that we think are not (yet) worth to (further) invest in. HOLD technologies should not be used for new projects, but usually can continue to be used in existing projects.
What is its purpose?
The Tech Radar is a consensus statement about the technologies we use for various purposes, how confident we feel about them, and why. It is a tool to inspire and support engineering teams at Wayfair to pick the best technologies for new projects. It provides a platform to share knowledge and experience in technologies, to reflect on technology decisions, and continuously evolve our technology landscape.
How do we maintain it?
The Tech Radar is maintained by the
Architecture Advisory Board, which is run as an Inner Source project. These projects take the form of dedicated Slack channel, a Git repository, a governance/voting model (e.g. simple majority, unanimity required, etc), and occasional meetings to discuss a topic that is starting to generate interest. This allows anyone in the company to self-select into discussion, prototyping, writing RFCs, and so on. When something has started to build interest and should have broader impact, we augment this organic process with some organized activity and hierarchical decision-making, with goals such as: pick a data platform for some data sets that do not fit well into existing platforms, or deciding to green-light much broader usage of something that will require a significant investment, such as a new computer language, with all of its build processes, linting, standards, etc.