I have an interesting question for you. Let's say I'm a software engineer and I want to make my way up to lead enterprise architect. What's the most useful knowledge to gather in my next years working in an IT organisation? Fortunately, having studied at the university, and having worked as a freelancer for many years, not only do I know my programming languages, frameworks and design patterns, but I also have good knowledge of networking, operating systems, hardware, remote server management, cloud, etc.
What I've noticed is that even though one could study things in theory, like SOA, microservices, integration patterns, etc, you really become able to make important architectural decisions, and explain how to implement them, only when you do things in practice. Making things in practice will make you appreciate pros and cons of one approach vs another, and makes you really understand why certain patterns exist, both in software and architecture. For example, you can explain people in theory how to do dependency injection, mocking and unit tests, but only experience will make you good.
Since I'm working as team lead in my company, I have the luxury of being involved, and thus learning and becoming better, in both software implementation and design and even operations. So, among the many exciting challenges I might be facing in the near future, which areas would you suggest for me to focus and from which I can get the most bang for the buck? Security? Operations? Infrastructure? Integration patterns? Database and domain? Big data? Analytics? Strategy? Project management? Etc...
Sometimes I have the impression that, in order to make it to the top levels of an IT career, like chief architect or CTO, it is important to be (or have been) a decent programmer, but it seems that other kind of skills are relevant to these higher level tasks. If that's the case, I'd rather not spend too many years of my future career on programming. Although, sometimes it feels like programming is the best way to get your hands dirty and really understand stuff like test driven design, microservices, good db performance, continuous delivery, distributed computing, concurrent programming.
Any advice is highly appreciated. Thanks for your time.
There are roles that need you to be hands-on. Mark Zuckerberg I read programmed something similar to Jarvis. I would just follow my passion and continue in my core competencies. This book is a consolidation of my expertise of several years of working for SI and Consulting Organizations.
Martin Bechtle wrote:Hi Sameer,
What's the most useful knowledge to gather in my next years working in an IT organisation?
As an architect I can tell you that technical skills are important but so are things like public speaking (for when you need to present your ideas to a roomful of decision makers), leadership, and relationship building. If you've got the technical chops, but can't get decision makers to listen to your suggestions then it's not going to work.
The good news it that in addition to helping at work, soft-skills can help outside of work too.
SCJP, SCJD, SCEA 5 "Any sufficiently analyzed magic is indistinguishable from science!" Agatha Heterodyne (Girl Genius)
Doody calls. I would really rather that it didn't. Comfort me wise and sterile tiny ad: