What skills to develop to become an architect?

The answer to this question as any seasoned architect will give you is "it depends". I can confirm that it's not cliché but reality. There are several types of "architects" in the market each having their own value, purpose and need. They may be Technology specific architects, Enterprise Architect, Business Domain architects, Lifecycle specific architects, Data Architect, Infrastructure architects, etc. to name a few.

According to me, some key qualities that an architect would need are:

  • Be the most adaptable and flexible person who can churn out solutions and alternatives within a given scope and constraints. 
  • Be the first to break any bad news about things that may not work (technically) with reasoning. 
  • Provide inputs to the organization's academy or learning department to add new skill courses needed by the employees for progress.

In short, give information & indications to decision-makers on architecture and technology.

There are 2 extensive books that give you guidance from both technical and soft-skills perspectives.  

  1. The Software Architect Elevator by Gregor Hohpe
  2. Software Architect's Handbook by Joseph Ingeno

Remember, if you keep doing the same work repeatedly, you probably are not doing architecture-related work.



Below are a few skills that helped me personally to become an architect.

Curiosity to Learning: 

I think this is stressed enough everywhere in all industries and more so in the IT industry. An architect should cut across different technologies and available solutions in the market to the given problem. Keep yourself updated with emerging trends in architecture, technology and the company's business expansion needs. Subscribing to forums, newsletters, networking are some of the good avenues for identifying what to learn.

Understanding the constraints:

This is a key skill of an architect. You should know what the constraints and scope of your work are. There are always evolving solutions and "right now the best" technologies that are coming at a rapid pace. While it's important to know them and learn, our solution should not always target them. The solution should address the problem in hand with all NFRs and business needs being addressed. You should have an idea of the pros and cons of different solutions and the context in which each of these solutions can be used.

Stakeholder handling:

This is a soft skill. There are enough books and material available on this. I will leave it to you to figure out what this means in your context.

Demonstration of capabilities:

What is the use of learning multiple technologies and tools without validating their capabilities and fitment for your project’s specific needs? Anything new that you learn should ideally be a futuristic idea towards which you wish to take the application that you are working on. Say, for example, if you want to implement DevOps in your project which is not yet ready or thought about, you should consider doing a hands-on in a sandbox environment and showcase its usefulness to your stakeholders and leadership.

Beyond the platform: 

One of the key skills to develop as an architect is to think and work beyond the platform of your core expertise. Yes, all of us started our career with one platform and most of us are not lucky to get to work on another platform. Over the years, we tend to develop an affinity towards the platform we are working on and don't learn or explore other platforms. As an architect, you should think about Enterprise architecture. Any new solution being built should be re-usable across the enterprise. While organizations nowadays have Enterprise Architecture teams to ensure this fitment, there are still many organizations that work in silos and are not aware of other departments' architecture or solutions that can be reused.

Picture your thoughts and ideas:

I feel this is almost an "expected" skill from an architect. I wasn't much of a "picture" person in my early days. I used to rely on my memory and mind for capturing any ideas we go through in brainstorming. However, I felt the need to picturizing my ideas, especially during brainstorming or discussions with stakeholders. This will help everyone to visualize the solution and roles of every stakeholder. Do not hesitate to use a whiteboard or your notepad whenever you "start drawing mental picture" and put it out. There are virtual tools too like PPT or Visio. Use whichever tool you are comfortable with. The most important thing is to start using it. It will most definitely make a difference to put forth your point to your stakeholder more easily.

Comments

Popular posts from this blog

What resources are available for learning?

Do I really have career growth if I continue in mainframe projects?