3 ms·
> Out of interest, just who do you think should be doing the high level architecture? People who will maintain it have more interest in keeping it maintainable
by bombolo 3y ago
> Out of interest, just who do you think should be doing the high level architecture?
People who will maintain it have more interest in keeping it maintainable, rather than architects that won't actually do any of the work to maintain it, and will not learn from their mistakes.
- MattPalmer1086 3y agoI often see the argument that people who write the code should do the architecture as well. Maybe on a small development effort it can give better alignment. When things scale up and in bigger orgs though, it doesn't work nearly so well. There are so many different business and technical requirements and strategies to take into account and signed off. This is a full time job. It may lead to really annoying things being imposed on the developers that they would never have chosen. However, this does not mean that the architects are idiots, although that is of course possible!
- piva00 3y agoAt the company I work for, senior engineers are usually responsible for writing RFCs and getting the involved/dependent parties in the discussion, staff engineers chime in with architectural details the seniors might have missed due to a hyper-localised view of the issue/proposal. This feeds back into seniors understanding of the whole/higher-level architecture, which it's then used to adapt the proposals with the architectural decisions/requirements/constraints. High-level architecture at scale demands a level of knowledge that engineers from a specific team might not have, not due to incompetence but because the scope of the team is bounded and the context is very local, at large enough orgs it's not possible even for senior engineers to keep track of all the weird interactions systems have at a higher level, you need someone whose job is to look at a higher level and validate cohesiveness, someone that knows about other similar work being done across other orgs to see points of cross-pollination, etc. Honestly I can't see how I could depend only on myself and other senior engineers in my team to validate architectures that span cross-org, it'd be exhausting to shift my context all the way up and down architectural layers for every single RFC I write.