21 years at Microsoft led me to have great disdain for "Software Architects". 5 years at Amazon led me to fall in love with the concept of a community of Principal Engineers. The Amazon Principle Engineering tenets are amazeballs. Exemplary Practitioner - Principal Engineers are hands-on and lead by example. We deliver artifacts that set the standard for engineering excellence, from designs to algorithms to implement…
These seem like totally different roles. And the hours I've spent staring at the AWS console trying to figure whether I need "Elastic Beanball3" says to me that Amazon could use maybe just a little architecture. But I'm sure the Beanball Principal Engineer is quite proud of their resounding impact.
Behaviours to avoid in a software architecture role
21–30 of 174 posts
Re: Behaviours to avoid in a software architecture role
#22Earlier quoted context omitted.
The article explicitly covers that one: > 2. Don’t ignore the domain It’s part of the role to become a domain expert. This knowledge can be used to act as an effective translator between business and engineering.
-shrugs- I don’t get that from that paragraph, but I guess it depends on how one thinks the author means “domain”. I’m used to meeting “domain experts” who know all about the corner cases in the current implementation. Often they are the people who argue with the suits and it never ends well for them.
A domain expert understands the business use case and the market. I would say they can act as a good Product Manager.
Re: Behaviours to avoid in a software architecture role
#23People downplay software architects but I've found it's a critical role. You have to interface between business and stakeholder requirements, modeling the domain effectively, engineering management, product processes and then reality. A lot of business logic ends up encoded in the software so you really want to isolate it as much as possible so that when change is needed you know where to look. That and you have to c…
This is the Technical product managers job. The architects role is suppose to be an extreme high level view of purely the technical side of the business.
From my own anecdotal experience "architects" who try to fulfill the role to the definition end up being mostly useless.
Re: Behaviours to avoid in a software architecture role
#24Earlier quoted context omitted.
Especially then, because if that's the case then you know there's more to this story than just what you're experiencing in that moment.
2+2 = 5 situations.
Re: Behaviours to avoid in a software architecture role
#25Earlier quoted context omitted.
The article explicitly covers that one: > 2. Don’t ignore the domain It’s part of the role to become a domain expert. This knowledge can be used to act as an effective translator between business and engineering.
-shrugs- I don’t get that from that paragraph, but I guess it depends on how one thinks the author means “domain”. I’m used to meeting “domain experts” who know all about the corner cases in the current implementation. Often they are the people who argue with the suits and it never ends well for them.
I recommend DDD in particular, it's a great architectural framework, though it's a bit dense and hard to approach.
A good starting point: https://martinfowler.com/bliki/DomainDrivenDesign.html
Re: Behaviours to avoid in a software architecture role
#2621 years at Microsoft led me to have great disdain for "Software Architects". 5 years at Amazon led me to fall in love with the concept of a community of Principal Engineers. The Amazon Principle Engineering tenets are amazeballs. Exemplary Practitioner - Principal Engineers are hands-on and lead by example. We deliver artifacts that set the standard for engineering excellence, from designs to algorithms to implement…
> Resounding Impact
> game-changing technology choices.
> aligning teams toward coherent architectural strategies.
> lead by example
> pioneer new spaces
> inspire others as to what’s possible.
> pragmatic problem solvers
> bring clarity to complexity
> illuminate pitfalls
> probe assumptions and foster shared understanding.
This perfectly illustrates why ppl dismiss software architects that they hide behind silly buzzwords without delivering anything tangible.
Re: Behaviours to avoid in a software architecture role
#27Earlier quoted context omitted.
I agree. This is the classic “you don’t understand it if you can’t explain it” problem. If you don’t have the domain nailed down in plain speak, there are risks to productivity - especially if an entire team is involved. Business logic becomes open to interpretation at implementation time. That means a different solution for any developer who happens to implement it, and each one potentially incorrect and unable to i…
It's why "naming things" is one of the hardest problems in CS! It's hard to work with someone who doesn't get that.
He argues that at some level, every construct is just assembly that shuffles bits around, so nomenclature doesn't matter (he also grew up with Perl as a first language...). My argument is that it makes his code unreadable without a graph unraveler.
Re: Behaviours to avoid in a software architecture role
#28I'll add another one, don't openly confront the CTO. Basic things what you should learn at your first job somehow get lost upon experienced software engineers.
>I'll add another one, don't openly confront the CTO. Looks like we found the CTO :)
Re: Behaviours to avoid in a software architecture role
#29Is software architecture role the end game for SWEs?
Re: Behaviours to avoid in a software architecture role
#30Earlier quoted context omitted.
These seem like totally different roles. And the hours I've spent staring at the AWS console trying to figure whether I need "Elastic Beanball3" says to me that Amazon could use maybe just a little architecture. But I'm sure the Beanball Principal Engineer is quite proud of their resounding impact.
The console is a UX/UI issue, not a "architectural" one. Most "architects" nowadays are just mere users of what was built by the engineers and principal engineers of amazon.