As a software developer or engineer, the thoughts of being a software architect is still far away. However, it is not too early to understand what exactly a software architect does so you can build up those skills early. Knowing what a software architect does will help you decide on your career path. It will also help you gain some insights to understand the software architects that you might come across.
As usual, take the information with a grain of salt as I’m a software engineer talking about what an architect does. Also, the information is mostly geared towards the enterprise.
Expectation of a Software Architect
A software architect needs to have technical skills (that’s a given), but they also need good soft skills too. Specifically, here is a list of things that a software architect should be able to handle:
- Define the architecture and design principles to guide technical decisions for the enterprise
- Analyze technology and industry trends and keep current with the latest trends
- Ensure compliance with the architecture chosen
- Exposure to multiple diverse technologies, platforms, and environments
- Have a certain level of business domain expertise
- Possess exceptional interpersonal skills, including teamwork, facilitation, and negotiation
- Understand the political climate of the enterprise and be able to navigate the politics
Thinking Like a Software Architect
Unlike software engineers or developers who tend to focus more on technical depth, an architect would focus on technical breadth. That means giving up on knowing the ins and outs of a certain technology. Instead, they need to know about what a certain technology does then move on to another one. In another word, the architect focuses on the higher-level details and leaves the fine-grain details to the software engineers and developers.
At the end of the day, the software architect needs to be involved with developers. They can’t go off and design an entire system then toss it over to the developers and move on to the next system. However, the software architect can’t be too hands-on either.
There needs to be a balance on the architect’s contribution. For example, they should not be a bottleneck by building a framework. They should crave out simpler stuff that way they understand the developer’s pain and can make improvements to the architecture. In situations where the architect can’t be hands-on, they should be part of code reviews that way they have a big picture of what is being built.
I hope this post was helpful to you. If you found this post helpful, share it with others so they can benefit too.
Are you a software developer or engineer that is thinking about becoming a software architect? Did you know what a software architect do before this post?
To get in touch, follow me on Twitter, leave a comment, or send me an email at steven@brightdevelopers.com.