Making Tough Architectural Decisions

What experienced Software Architects do to make Tough Architectural Decisions in their projects?

During a meeting with experienced Architects friends, I’ve shared a difficult challenge I was facing at my work!

That driven our discussion to think about approaches we do follow to help us decide things that can have big impact and costly consequences in our projects.

Here are the four best tips and practices highlighted from our discussion:

Focus on real problem

Discussing architectures for complex problem is stressful and can become extensive. During the design process is very common to get hyped with many solutions and lose focus on the real problem.

Invest time to state the real problems you need to solve in a clear and visible way for you and your team, and revisit it frequently to stay close to your goals.

Create Proof of Concepts

Architectural patterns are solution blueprint and should be used as a reference only. There are no silver bullets, and a great way to get rid of hidden challenges is to create small Proof of Concepts to validate ideas.

Don’t be shy and create as many disposable samples as you can just to stress out potential solutions. You’ll be surprised, in a good way, how many things you haven’t covered before going through a practical exercise.

Tradeoff with involved parts

Not every tradeoff is about technology aspects. In a project, many other roles needs to contribute to have balanced weights when deciding the directions to follow.

The Managers, Product Owners, End Users, Stakeholders and also Developers, each of them can contribute with their perspectives and concerns to better drive your solution architecture.

Make sure to write documents such as Architecture Decision Records, to capture important architectural decisions made along with its context and consequences.

Think together

It’s good to have time alone and go deep on analysis during tough tradeoffs, but having someone else to discuss a solution is as valuable practice to keep focused and don’t get biased by yourself.

All these awesome tips only raised because I had to share my challenge with other Architects. Our discussion helped me to think in the problem with different perspectives 🙂

How about you? What you do when you have to make tough decisions in your project? Share with us!

Leave a Reply

Your email address will not be published. Required fields are marked *