Software architects occupy a strange no man’s land in most business hierarchies. While they often work with programmers, they aren’t coders in the traditional sense. Nor are they truly part of upper management, even if they report to upper management. They sit somewhere in-between, which means that they need an unusual set of skills. If you’re in the market for a software architect, here are some of the skills they need.
Developers can often get away with knowing a small handful of coding languages and frameworks. Your basic front-end developer can usually get away with HTML5, CSS3, JavaScript, along with AngularJS and some basic API experience. Your average back-end developer can generally get by on Python, Ruby-on-Rails, Java, and some databases like PHP or SQL. A software architect needs a good working knowledge of all of those and will probably know several others.
Software development happens over time. That means it gets broken down into stages, such as planning, designing, building, and testing. There are many approaches to SDLC. A software architect should be familiar with at least one or two of the following:
Without working knowledge of at least one SDLC, a software architect can’t break up the process into workable chunks.
A good software architect also needs some project management skills. Even straightforward programming projects can take a few months. Your software architect needs to know how to set up reasonable goals and milestones. They also need to evaluate a reasonable timeline for deliverables.
Soft skills get short shrift in a lot of tech departments, but they are crucial for a software architect. The software architect must be able to talk with upper management and clients about the project in terms that make sense to a layperson. At the same time, they must be able to translate management and client feedback into language that programmers can implement.
The software architect will also likely take on a mentoring role for at least some of the programmers. This may take the form of career development advice or helping refine a coder’s programming skills. This is another area where sharp communication skills play a key role.
The need for computer science will vary from project-to-project. Projects with heavy data processing on a specific hardware set will depend a lot on computer science. Projects with low overhead meant for internal use will likely rely more on good user experience design. All things being equal, go for the software architect with computer science skills.
A software architect isn’t a coder who can get by with a few programming languages under their belt. Software architects need programming chops, SDLC knowledge, program management skills, and communication skills. In an ideal world, they’ll also bring some CS experience to the table.
Can’t track down a good software architect candidate? Let Timpl do the legwork and find someone with the right skills.