@sinbad no software architecture survives the first contact with code.
The fun thing is that when I was talking to guys at construction sites about the plans they receive from architects, they always needed to “compensate” to be able to actually build the thing.
We saw the same thing when doing architectural visualisation based on 2d plans. And 99% of architectural plans were only 2d.
So it’s not just a software issue.
@sinbad @martinweber at a certain size you NEED an architect. I've seen so many "organic" codebases that were never refactored, but also where nobody had a clue about the big picture. Every engineer just had a view of their own specialized sub-domain, with nobody to effectively coordinate them and plan the systems evolution for 6, 12, 24 months onwards.
Those folk were all very clever people. But the lacked the overview but also sometimes interest for the big picture
@kwramm @sinbad sure, you need to plan for the big picture. It often is more of a social exercise than a technical one.
This also requires constant refactoring to adapt for changing and growing requirements.
It is a hard sell though. Why rewriting code that is not even 3 years old?
With my previous team we improved overall comprehension, reduced build times and increased decoupling to avoid side effects of changes. Delivered major features faster.
Engineering. Not just programming.