Technology Radar
Feb 10, 2019 · 7 min readIt’s all of a buzz at my current job at the moment. Change is in the air.
- Stacks.
- Tools.
- Paradigms.
- The way we work.
- The way we deploy.
- The way we communicate.
There is a lot to take in, and a lot to learn. Recently, I was one of two people who presented to our Project Management Office (PMO) on what was happening in our department. The main aspect of this presentation, and my life at work at the moment, was the Technology Radar.
What is the Technology Radar?
The Technology Radar was something borne out of ThoughtWorks which helps visualise the technologies being used, and their maturity within the business. The Technology Radar is an evolving, living “thing”, as technologies ebb and flow.

Why is it important?
My current employer has always been a Microsoft shop. They have historically built native Windows applications, and everything from languages, tooling, frameworks etc has been Microsoft through and through.
We are now starting to move into web applications, and everything is up for discussion.
But, how do we manage this transition? How do you imbibe such a vast amount of information in areas you are not familiar with? How do you hold people to account for the choices they are making? As humans we naturally gravitate to what we already know.
Well, one of the tools helping us achieve that is the Technology Radar. Our Technology Radar is a GitHub repo full of markdown files. We have defined a branch protection policy to make sure folks are accountable for the choices being made, and that there is a thin layer of oversight. The mindset of the review team is to always try and say “yes”, as long as there is enough rationale and reasoning behind the technologies being put forward. We are not there as a hurdle to get over, but to facilitate the thinking and documentation.
How it works
- We require a certain amount of reviews before something is signed off.
- We go from assess, to trial, to adopt.
- If something is “rejected” at this moment in time, we move to hold. However, it will be reviewed in a regular cadence, in case something has changed.
- We require reviews from CODEOWNERS.
- We let anyone join the review team, and make it clear what their responsibilities will be if they want to be involved.
- We are using a GitHub project to provide visibility of who is proposing what technology.
- We have two special interest sign off stakeholders:
- Security - This is to make sure it fits securely within our business.
- Money - If there is a cost associated, the accountability sits elsewhere, and therefore we need to take this into account.
- All of the day to day chat happens in slack, so we can get a greater engagement around the business.
- The Technology Radar can impact far more than engineers in the development department.
- We have GitHub and Slack integration so updates are provided in a timely manner to keep folks in the know.
- Every two weeks we communicate all the changes that have happened.
- Since we are at the beginning of this journey, there is quite a lot of change at the moment (as there are a lot of technologies). We envisage this dying down, but change will still happen (it has too).
- We have the spreadsheet that generates the ThoughtWorks Radar for us.
- We are going to automate this, as currently this is a little manual overhead we want to remove.
- Nothing has been grandfathered in.
- Each team needs to explain the technology choices they have made.
- This is a great way to get case studies and facilitate other teams learning the technology.
Each quadrant on the Radar, has it’s own folder, and each ring in a quadrant is another folder.
tech-radar
languages
adopt
tech-one.md
tech-two.md
trial
...
assess
...
hold
...
README.md
tools
...
platforms
...
techniques
...
Within the quadrant folder, we have a README.md
that explains what we want the engineers to document in order to propose a new technology. This is not a tick box exercise. We are actively wanting this Technology Radar to be the one stop shop for engineers. To see what is being used, how it is being used, how teams picked it up, the good, the bad, the workarounds etc. Within the next few months, we are wanting teams to document their usage as case studies, for others to understand and learn from. We are very aware that a tool/language/technique etc may fail for one team, but may be perfectly fine for another, so this needs to be taken into account.
We make sure we cover off licensing, costs, management of the technology, community involvement, maturity etc. We have specifics for certain quadrants too, like “unit testing tools” and “static analysis” for the languages quadrant for example. This guidance will also change over time, once we are more mature at using this technique.
Submarines
What have submarines got to do with a Technology Radar? Well, a lot actually.
In this analogy, the submarine is your technology stack, platform, department (however you want to look at it). You have all your engineers on your submarine, but you need supplies. The supplies is your technology stack. Where you need to be careful, is taking that technology and going to the bottom of the ocean for years at a time. It’s not healthy. You have to come up for air (and to keep sane, I would imagine).
The longer you stay at the bottom of the ocean, and not at periscope level, your technology is decaying and going stale. You must come up for air, and to look around and see what technology is now available.
This is why the Technology Radar is an evolving thing for us. It’s not a one time exercise to define and publish. You need to nurture this living thing.
Define, Use, Evolve, Repeat
So, how do you stay at periscope level? We are still in the early stages of this, but at the moment we anticipate the way we are going to stay relevant is:
Review dates
Just because a piece of technology has been through the process, and made it to adopt, does not mean it will stay there. What is good for 2019, may not be good for 2020, or 2021.
The review dates are twofold:
- Provide a mechanism for constant review, to stave the decay in technology and skills.
- It helps teams understand how much they can invest in the technology. If you are spinning up a new team, and they are looking at what languages and tools to use, if they see a technology being reviewed in 2 months, they may want to air on the side of caution. However, if the technology has a review date 18 months in the future, they are good to go.
Constant proposals
Every day, there seems to be a new technology, be it a tool or framework (looking at you JavaScript), we are constantly getting new proposals to review. Being on the review team is quite a privilege, as you get to have a good overview of what the engineering teams are thinking.
Deploy to production
Without true data, you cannot gauge how useful a technology is. Therefore we mandate that a tool/language/platform needs to go into production (in some fashion) in order for a technology to transition to the adopt phase. Only when you put something through its paces, do you know how it handles.
Small features
With the above in mind, you need to start small. As with most things in software engineering, break it down, use, and then evolve.
Fail fast and fail small
Fail fast is interesting thought process. It’s not a free pass. You are still accountable. You still have to learn. It doesn’t mean you can do as you please, and then say “we failed fast”. You still need a rationale. So, for me, you need to add the “fail small” comment afterwards. Fail in ways that are not meaningful, and limit the impact.
Iterate
This is a given in our world.
Learn to throw away
Learn to throw code away. Architect your solutions whereby throwing “stuff” away is not a problem. Services, apps, should be small enough to be able to be re-written (if required).
Hold people to account
The phrase de jour is “Is it on the Tech Radar” - No. “Should it be on the Tech Radar” - Yes. I’ve even fell foul of this, and I’m pushing the Technology Radar a lot in our department. It’s important we hold each other to account, and re-affirm our culture.