You have 1 article left to read this month before you need to register a free LeadDev.com account.
It can be easy to assume what the role of a software architect entails. But what does it really look like? And how can you become one?
What does a software architect* do?
A software architect is typically an individual contributor (IC) – not a people leader with direct reports. Architects can be subject matter experts in a broad area, or have an in-depth knowledge of a single project or technology. As a software architect, you will interact with code often. Though you may find that you are not writing it so much anymore, you are still a creator. Solving problems and building new, exciting products is what attracts a lot of engineers to computers in the first place. This does not change just because you have advanced in your career as an IC.
An architect’s deliverable may be a design document, an architecture diagram, or even a long-form content piece in addition to a product feature or block of code. You could be spending your time working on long-term project planning, system design, or thinking about team structures and resource needs. To be successful as an architect, you must be prepared to talk and collaborate with a number of people across roles and levels, from engineers and scrum masters to product managers and customer support agents. Some in the role call this ‘bilingual’: a core competency of an architect is having the ability to build a system but also to explain it to stakeholders.
In some organizations, employees can progress along a parallel path as either a technical or a people management track, meaning architects are at an equivalent level to a senior director, leading through their technology and influence rather than by having direct reports. As a manager, your contribution to the team is in terms of project organization and how you develop your people. As an architect, you have the ability to contribute the same value, but your responsibility lies within the architecture and technical design as opposed to people development. You will still lead projects and mentor people in an architectural role, it is just more informal than in management.
There is trust placed in you as a software architect – both by the folks you will work with and the organization you work for. They value your experience, your ability to deliver, and your ability to explain what you want to do. This trust will help them help you build software.
Despite the common belief that becoming an architect simply means a deeper focus on what you do in software already, the reality is that the expectation of you as an engineer changes. You may be given a problem you have no prior knowledge of or expertise on; your comfort level with context switching and digesting new information has to grow quickly; you have to build relationships so that, when a problem appears, you know the key partners you can delegate to. As an architect, you should be the person who knows who to talk to to find the answer, not the person who necessarily knows the answers.
What experience does an architect need?
Software architects need to have mastery of computer science fundamentals in order to be successful. This doesn’t mean that you have to have an advanced degree in the field, or even an undergraduate degree, but you need to pick up the relevant underlying skills. This can mean that making a mid-career move to software architect requires extraordinary diligence and commitment to learning.
Think of computer science as a tool. In the role of an architect, you need to put business context and capability into this tool; if you have that background, adding computer science knowledge can put you ahead because you know certain industries very well, and that can be very powerful. The reason a degree can help is that having one in a scientific discipline teaches you a way of thinking, and that way of thinking can be applied in a programming setting. But really, if you can think logically, then you can code.
If you’ve had experience as a software engineer, you’re well-placed to work toward the competencies required of an architect. In your journey to becoming an architect, identify the traits that you want to be known for and work to make those traits become true. By committing to this improvement and sharing your ideas, you will be actively given more responsibilities and consequently advance in your career. Being noticed in this way and having colleagues be aware of your work is the push that will result in reaching the software architect role.
Can I find a mentor to help me become a software architect?
Access to mentors is incredibly important in architecture roles and the wider tech industry – particularly if you are an engineer belonging to an underrepresented group. A mentor can guide you on your technical career path, providing you with the means to level you up in your career with knowledge from their own experience.
In tech, we need to be holding our organizational cultures and leadership accountable to being mentors: fixing and creating space for underrepresented groups to excel in their careers. For women in tech, in particular, the road to becoming a software architect can be filled with others trying to dampen their love of code, building, and problem-solving; trying to push them off course. A mentor can help to quiet these negative voices and help the engineer to thrive. In a culture where mentorship is fostered and valued, we can ensure that everyone in tech feels a sense of belonging and that they have a seat at the table.
* A software architect is not to be confused with a solutions architect, who works with customers to help them implement software products. To save ourselves some characters, we’ll use the shorthand “architect” throughout this article to refer to software architects.