@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 smart.
I understand why management wants architects. They don’t think about the small details that will break. So they do not start asking the difficult questions during meetings.
I have an engineering mindsets. And I have been on investor and board meetings. This does not mix well, especially when they came up with “brilliant” strategies and I had to ask a few simple questions. They don’t like that. Solving problems is not positive enough.
Happy to be writing code again.
@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.
@floooh @kwramm @sinbad yes, the need for an architecture often only arises once you had code in production for a while. Then it is often much clearer what’s needed.
On a whiteboard most things look good. Some of it is either not meeting reality, is not needed, or will just fail.
So I prefer to move fast, see what works, and then quickly refactor. With a clear goal set out first.
The territory is not the map. Better walk some distance through the terrain before using the map to plan.
@kwramm @sinbad @martinweber I've written a couple of game engines since around 1992 (culminating in Nebula Device 1...3), used in a couple of dozen released games, and I stand by my opinion that 'architecture' is what you get after a couple of years of real world usage and several rewrites :)
A dedicated architect is entirely useless for such projects since it's impossible to predict long term requirements (you can plan ahead maybe for 3 months, but anything beyond that is pure guesswork).
@dotstdy @floooh @sinbad @martinweber oh yeah. I met many well meaning people but often it's how production is set up that stops them.
Lack of time, lack of mandate (sorry, that's not your job, can't make a jira for that!), lack of access to people in the know (they're on another team now, they all left), lack of standards/docs (the guy who knew it had it all in his head, sorry no docs), lack of time (sorry, the current project is more important than long term...) all plays into this.
@sinbad yeah, "spec driven agentic engineering" is basically a return to the 1970s when waterfall and separating architecure and implementation was all the rage. The Wheel of Reincarnation keeps turning.
It's a nice honeytrap for architecture astronauts though ;)
@sinbad it's been disappointing to watch an industry that was chasing quality and skill 180 into an industry completely uninterested in quality and skill.
Nerds are so fuckin' gullible.