Live data from Hacker News

Behaviours to avoid in a software architecture role

danielwatts.info

11–20 of 174 posts

Re: Behaviours to avoid in a software architecture role

#11
post #2

#2 is probably the most important. How you model the domain is the most foundational part of any software system. If everyone on your team looks at your domain model and thinks "yep that makes total sense", then it is very likely the rest of the project can be made to go smoothly. If the meaning of a Customer or User in your system is ambiguous, or has certain nuances privy only to the architecture team... this is wh…

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 interface with correct code in its own way.

I’ve set myself up for failure this way, essentially by assuming things would just fit into place as more of the project became clear. That’s a really bad way to work, haha. But you learn as you go.

Re: Behaviours to avoid in a software architecture role

#12
People 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 create a lot of documentation and train new developers and stakeholders. So it's really a job where you spend 95% of your time contextualizing, writing and communicating to others. It's a bit like doing continuous self reflection of a project.

It's kind of a thankless job, do your job well and it's like flowing water and nobody notices you. Do it badly and things dam up quickly.

Re: Behaviours to avoid in a software architecture role

#13
post #7

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.

Re: Behaviours to avoid in a software architecture role

#14
post #6

And nothing about business needs and wants, working with stakeholders and all the rest? I’ve seen both newly minted and seasoned “architects” fail again and again because they think in terms of technology not business.

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.

Re: Behaviours to avoid in a software architecture role

#15
post #10
post #9

I'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.

Even when they have indefensible positions? When the idea doesn't hold up to ~2 hours of research?

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.

Re: Behaviours to avoid in a software architecture role

#18
post #2

#2 is probably the most important. How you model the domain is the most foundational part of any software system. If everyone on your team looks at your domain model and thinks "yep that makes total sense", then it is very likely the rest of the project can be made to go smoothly. If the meaning of a Customer or User in your system is ambiguous, or has certain nuances privy only to the architecture team... this is wh…

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.

Re: Behaviours to avoid in a software architecture role

#19
post #10

Earlier quoted context omitted.

Even when they have indefensible positions? When the idea doesn't hold up to ~2 hours of research?

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

#20
post #7

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…

[deleted]
Post reply on HN