4 essential skills software architects need to have but often don’t

A look into the unspoken side of software architecture.

By Brian Foster
January 17, 2017
Architecture Architecture (source: Prexels via Pixabay)

Microservices. Continuous delivery. Reactive systems. Cloud native architecture. Many software architects (or even aspiring ones) have at least a passing familiarity with the latest trends and developments shaping their industry. There are plenty of resources available for learning these topics, everything from books and online videos to conference presentations; the ability to go from novice to expert in these areas is right at their fingertips. However, as today’s trends quickly bleed into tomorrow’s standards for development, it’s paramount that software architects become change agents within their organizations by putting into practice the “unspoken” side of their skill set: communication and people skills.

With the arrival of each new year, we all verbalize New Year’s resolutions that fall on deaf ears, including our own. For software architects, these vows may take the shape of getting up to speed on a new form of architecture or finally mastering that cutting-edge technology stack. Either way, it’s the development of these soft skills that define architects as managers—both of large architecture teams and the technology choices they embrace—that’s often neglected in favor of learning the shiniest new technology.

Learn faster. Dig deeper. See farther.

Join the O'Reilly online learning platform. Get a free trial today and find answers on the fly, or master something new and useful.

Learn more

As we welcome in 2017, let’s take a brief moment to reflect on key insights as defined by O’Reilly author and expert architect Mark Richards around the necessary skills for becoming better leaders, negotiators, decision makers, and team builders. Each of the following sections contains quotes and accompanying video from Mark’s Software Architecture Fundamentals People Skills and Software Architecture Fundamentals Soft Skills video courses.

Leadership

What’s really being an effective leader? It’s being a technical as well as business domain go-to person, it’s really to help clear roadblocks to the team so they can actually move forward. Being a leader as an architect means providing technical help and guidance, it means to help the team make decisions and form those decisions and validate them, and also to provide motivation to the team and support whether it be technical or non-technical support. This is what we’re referring to when we say it’s important to be a leader as an architect.

—Mark Richards, Software Architecture Fundamentals People Skills

Step on the path to becoming an effective leader by checking out this Leadership Skills video segment.

Negotiation

Negotiation is hard, but it’s a necessary skill to have as a successful architect. Unfortunately, negotiation takes years and years of trial and error and also experience to get it right. There are two main areas where an architect is going to need negotiation skills. These skills may span a lot of other areas but at least these two: architecture trade offs, being able to negotiate trade offs between non-quality attributes, and then there’s also developer buy-in, which is really difficult and also really important.

—Mark Richards, Software Architecture Fundamentals People Skills

Learn how to drive consensus and understand tradeoffs by watching this Negotiation Skills video segment.

Decision making

An architect is responsible for defining the architecture and design principles used to guide technology decisions. Now, in many cases, it really is the architect who makes those technology decisions. But really what we’re focusing on in terms of an expectation or responsibility is to “guide” those technology decisions. This is a much more difficult task than actually making the decision itself. So the trick right here is to focus on the overall impact that a decision has on a system and the level of difficulty in implementing that decision. 

—Mark Richards, Software Architecture Fundamentals Soft Skills

Understand what is and isn’t an architecture decision by checking out this Architecture Decisions video segment.

Working with architecture teams

An approach I’ve found for working with architecture teams is to first select a mediator, and select a mediator using whatever technique fits your situation. The mediator’s role is to resolve differences and to focus and guide the team in terms of a unified architecture vision. The second step is that every decision an architecture team member makes should be accompanied by a reasonable justification. The third piece of this approach is that when conflicts occur each team member must agree to accept whatever the mediator decides. And the last piece of this approach is to make sure each team member continually understands the importance and the goal of working towards a unified architecture vision. 

—Mark Richards, Software Architecture Fundamentals People Skills

Master techniques and best practices for working with an architecture team by watching this Working with Architecture Teams video segment.

If you’re interested in diving even deeper into the communication and people skills touched on in this article, consider attending our upcoming Software Architecture Conference in New York City from April 2-5. This event is just one more avenue you can pursue to become a better all-around leader, negotiator, decision maker, and team builder in 2017.

Post topics: Software Architecture
Share:

Get the O’Reilly Radar Trends to Watch newsletter