As architects, we need to keep up with the new technologies, architecture approaches, frameworks, and tools. This can be very challenging because of lack of time and the flood of information we receive that exceeds what a single human mind could absorb.
What to do to avoid feeling overwhelmed by the torrent of information?
It is important to take control of this information problem and adopt practical strategies to focus your attention only on what you need to learn. This starts by selecting the topics of interest that you want to focus on and learn for the next weeks or months. It may vary from a person to another but for me, I can’t focus on more than three topics at a time.
But how do you select your topics of interest?
Probably, the most important things to learn are the technologies and tools that are being used by your company or that will be used soon so that you will be in a good position when your company will adopt them. For example, if your team is using the Domain Driven Design approach, you should then start learning it. Start read about it and keep your hands dirty by applying what you have learned in your day-to-day job. Experience and practice are what will make difference in the long run.
There are also the architecture core concepts that you need to learn early in your career as an architect. The non-functional requirements are usually underrated by the architects but are critical to make your architectural decisions and therefore are important to learn and understand.
In addition, it is important for architects to learn the important architecture patterns. As a developer, you had to learn and use some of the well-known design patterns such a Factory, Builder, Façade, Visitor, and Singleton patterns. Knowing the architecture patterns can help you make efficient and effective decisions.
And finally, it is important to read about some technologies that are widely in demand. But avoid to pick a lot of technologies on an ad hoc basic just because they are “cool”. Try to focus on a limited number of technologies at the time.
How to track the technologies you want to learn?
One interesting strategy to track the technologies is to build your own Technology Radar. ThoughtWorks released an online tool to help architects and developers build their own technology radar. The Radar is a graphical representation of the technologies being tracked in quadrants and rings. The quadrants represent different categories: techniques, tools, platforms and languages, and frameworks. The rings indicate the adoption stage of a technology (Adopt, Trial, Assess or Hold) as illustrated in the diagram below.
All you need to do is to create your Google spreadsheet, enter the technologies you are tracking (see example) and use the link of your spreadsheet as an input on this page to generate your visual radar. This may really help to give you a direction on what you need to put your focus on.
How to learn and keep motivated?
This depends in part on your preferred way to learn. Some people prefer to read and understand all the theory behind before start applying them. And on the other side of the spectrum, some people just want to jump in and start applying the concepts and learn on the road.
I used to be in the first category of learners, but I realized that this is just not sustainable to keep with this approach. Things are moving so fast and there are so many resources to learn from that you may feel paralyzed if you want to learn all the resources available and understand the concepts behind.
I am still a believer that understanding the why and the theory behind is important but just enough to start, then get my hands dirty by trying to apply these concepts, discuss them with my colleagues. Have this humility to talk about these concepts without being an expert and accept the comments and critics from your colleagues to keep growing. These interactions will help you to learn faster, and you can get back to the resources and books but this time with some background and a critical eye.