Writings on various topics (mostly technical) from Oliver Hookins and Angela Collins. We have lived in Berlin since 2009, have two kids, and have far too little time to really justify having a blog.
Perhaps you are familiar with the ThoughtWorks Tech Radar - I really like it as a useful summary of global technology trends and what I should be looking at familiarising myself with. Even the stuff on the "hold" list (such as Scaled Agile Framework - sometimes anti-patterns are equally useful to understand and appreciate). There's a degree of satisfaction in seeing your favourite technology rise through the ranks to become something recommended to everyone, but also in my current (new) role it has a different purpose.
Since I started a new job just over a month ago, I've come into an organisation with a far simpler tech stack and in some regards, less well-defined technology strategy. I like to put in place measures to help engineers be as autonomous in their decision-making process as possible, so a Tech Radar can help frame which technologies they can or should consider when going about their jobs. This ranges from techniques they should strongly consider adopting (which can be much more of a tactical decision) to databases they could select from when building a new service that doesn't fit the existing databases already in use. The Tech Radar forms something like a "garden fence" - you don't necessarily need to implement everything within it, but it shows you where the limits are in case you need something new.
So basically, I wanted to use the Tech Radar as a way to avoid needing to continually make top-down decisions when stepping into unknown territory, and help the organisation and decision-making scale as we add more engineers. The process I followed to generate it was very open and democratic - each development team was gathered together for an hour, and I drew the radar format on the whiteboard. Then engineers contributed post-it notes with names of technologies and placed them on the board. After about 10 minutes of this, I read through all of the notes and got everyone to describe for the room the "what" and the "why" of their note. Duplicates were removed and misplaced notes moved to their correct place.
Afterwards, I transcribed everything into a Google Doc and asked everyone to again add the "what" and "why" of each contributed note to the document. What resulted was an 11-page gargantuan collection of technologies and techniques that seemed to cover everything that everyone could think of in the moment, and didn't quite match up with my expectations. I'll describe my observations about the process and outcomes.
The purpose of the overall radar is to be somewhat strategic. ThoughtWorks prepares their radar twice a year, so it is expected to cover at least the next 6 months. Smaller companies might only prepare it once a year. However, amongst the different quadrants there is a reasonable amount of room for tactics as well. In particular I would say that the Techniques and Tools quadrants are much more tactical, whereas the Platforms and Languages & Frameworks quadrants are much more strategic.
For example, let's say you have Pair Programming in the Techniques quadrant. Of course, you might strategically adopt this across the whole company, but a single team (in fact, just two developers) can try instituting it this very day, at no impact to anyone in other teams and probably not even others in the same team. It comes with virtually no cost to just try out, and start gaining benefit from immediately, even if nobody else is using it. Similarly, on the Tools side, you might decide to add a code test coverage reporting tool to your build pipeline. It's purely informational, you benefit from it immediately and it doesn't require anyone else's help or participation, nor does it impact anyone else. For that reason it's arguable whether these things are so urgent to place on the radar - developers can largely make the decisions themselves to adopt such techniques or tools.
On the other hand, the adoption of a new Language or Framework, or building on top of a new Platform (let's say you want to start deploying your containers to Kubernetes) will come with a large time investment both immediately and ongoing, as well as needing wide-scale adoption across teams to benefit from that investment. Of course there is room for disagreement here - e.g. is a service like New Relic a tool or a platform? Adoption of a new monitoring tool definitely comes with a large cost (you don't want every team using a different SaaS monitoring suite). But the Tech Radar is just a tool itself and shouldn't be considered the final definition of anything - just a guide for making better decisions.
As touched on above, adopting a Platform or new Language/Framework has significant costs. While putting together a radar like this with input from all people, who may have different levels of experience, you might find that not all of the strategic impacts have been considered when adding an item to the list. An incomplete list of things I believe need to be examined when selecting a Language or Framework could be:
By no means is this list exhaustive, but I think all points need some thought, rather than just "is it nicer to program in than my current language".
As mentioned, I ended up with a fairly huge list of items which now needs to be filtered. This is a task for a CTO or VP of Engineering depending on your organisation size. Ultimately people accountable for the technology strategy need to set the bounds of the radar. For my list, I will attempt to pre-filter the items that have little strategic importance - like tools or techniques (unless we determine it's something that could/should have widespread adoption and benefit).
Ultimately we'll have to see what the output looks like and whether engineers feel it answers questions for them - that will determine whether we try to build a follow-up radar in the next quarter or year. If I end up running the process again, I suspect I'll make use of a smaller group of people to add inputs - who have already collected and moderated inputs from their respective teams. The other benefit of the moderation/filtering process is that the document that is later produced is a way of expressing to engineers (perhaps with less experience) the inherent strategic importance of the original suggestions. There are no wrong suggestions, but we should aim to help people learn and think more about the application of strategy and business importance in their day to day work.