How do I do software architecture and design?
Mostly I sleep on it.
Seriously – I’ll can sleep on a problem for months before coming back to it.
Or some problems I’ll chip at – an hour here, a couple of hours there. Not thinking about it in between, then coming back with a fresh mind.
Sometimes I build on previous work, and other times I might scrape it and start again.
Obviously I think a and work hard to develop a solution, but the element of design that I never hear talked about is “walking away and leaving it be for a bit”.
Working in the corporate consulting world, every project that has gone belly up I want to attribute [in hindsight] to the architecture and sales team(s) writing a proposal literally up to the 11th hour to submit by a deadline.
That’s no way to design a solution.
Like a published book, great software is never created in the first draft.