Aimless Analysis

about

Experienced Vs. Young Software Architects

Bryson McIver - December 6th, 2020

Software architecture sometimes ends up being a very abstract topic, but a lot of interviews have architecture portions and I struggle separating experienced and junior software engineers when it comes to these. Often, they will both create an acceptable solution, so what sets the experienced architect apart?

I found that the first piece, often the most difficult to appreciate if not articulated, technical prediction. When you start working in complex environments and mixing and sharing services, you're going to run into countless issues. No one is going to figure out all of those problems before pushing a design, but someone with a lot more experience is going to be able to spot pain points and prepare teams for solving those issues. They may even make certain concessions based on their predictions and push back on theoretically strong ideas knowing they are easy places for issues.

Maybe a more obvious one, communication. Experienced architects are going to do a better job driving discussions to get value and forward moment vs excess discussion and talking in circles. They are much better at resolving conflict (either through respect or just communication navigation skills) to get everyone to make progress. They are also great for making sure that teams truly understand their pieces and integrations together. My biggest struggle trying to facilitate this conversation now is getting the nods of understanding, but doing a poor job making sure the important understanding is there which I've seen our more experienced developers accomplish.

Finally, a trend I noticed. No matter how confident a young architect is, they are always going to have concerns about not predicting the whole picture. Confidence in a young architect in my experience is also low and you're going to have to others double checking and second guessing their decisions. A more experienced architect is more confident in their prediction and comfort with what difficulties a design may run in to. That comfort with discomfort is something that everyone has to deal with (even outside of architecture) but I feel it plays more into roles with higher level views which can have wide spread impact.