Back to resources

How Less Viable Solutions Solve Common Architectural Challenges

Architecture
Different Skillsets
Conflict Solving
Collaboration

13 May, 2022

Tom Hill

Tom Hill

Senior Engineering Manager – Developer Experience at ClearBank

Tom Hill, Engineering Manager at Globality, Inc., describes his decision-making practices when making architectural decisions.

Deciding on an Architecture

The important thing when setting architectural direction is to always implement the smallest viable solution. Most people tend to get themselves into a sandbox where they look for the perfect architecture to solve all of their problems.

The key thing here is to take the inverse approach. First, I recommend analyzing the problems, noting which ones are most critical and which ones are least critical. After that, it’s about designing a step of architecture that is the least viable solution for the most critical problem. The reasoning behind this is that while you’re shaping the architectural direction, features teams and innovation don’t stop.

By the time you’ve spent weeks building the perfect architectural vision, the product is at a new version, and things have changed. The essential part of architectural design is to identify problems quickly and work to the least feasible solution.

An Introduction to Flexibility:

By using less viable solutions, teams are able to be more flexible with the architecture. Without planning the ultimate end result, architecture can solve the first problem and be iterated upon in the future.

Architecture is often thought of as the foundation that everything is built – but it’s not. If you use this model, you’ll improve your technology for some time until you find yourself back in the same position. The best architectural model is iterative, just like any product or feature you’re delivering.

Trade-Offs:

The answer to any architectural question is: it depends. Don’t evaluate and pick tools based on best practices in the industry. Just because you see a lot of chatter about a specific type of solution doesn’t mean it will be right for your company. Look at the bounds in which you’re working and come to an architectural decision with that in mind.

Discover Plato

Scale your coaching effort for your engineering and product teams
Develop yourself to become a stronger engineering / product leader


Related stories

Assessing the Performance of Your Team

20 August

Parallels between Work and Sport.

Goal Setting
Different Skillsets
Coaching / Training / Mentorship
Performance
Ron Pragides

Ron Pragides

SVP Engineering at Trustly Group AB

How to Organize, Manage, and Grow Your Team

12 July

Vineet Puranik, Senior Engineering Manager at DocuSign, discusses the impact of roadmaps, organization, and proper management for your teams to procure growth.

Managing Expectations
Delegate
Collaboration
Roadmap
Strategy
Vineet Puranik

Vineet Puranik

Senior Engineering Manager at DocuSign

(Re)Organizing Your Teams Using Domain-Driven Design

12 July

A proposal for how to create an org structure that will deliver software systems that you want, not ones you get stuck with.

Alignment
Architecture
Scaling Team
Building A Team
Internal Communication
Reorganization
Ram Singh

Ram Singh

CTO at REAL Engagement & Loyalty

Building Up Your Technical Skills in a Fast-Paced Industry

8 July

Otavio Santana, Distinguished Software Engineer at Zup Innovation, shares his best practices for upskilling without stretching yourself too thin.

Different Skillsets
Personal Growth
Prioritization
Otavio Santana

Otavio Santana

Java champion, software engineer, architect, and open-source Contributor at Independent Technical Advisor

How to Navigate Your Manager Role at a New Company

1 July

Saikrishna Desaraju, Engineering Manager at Marks & Spencer, draws from his personal experience to advise new managers on thriving in their roles.

Managing Up
Managing Expectations
Leadership
Collaboration
New Manager Of Manager
Changing Company
Saikrishna Desaraju

Saikrishna Desaraju

Engineering Manager at Marks and Spencer