. . .
Very true! On some large projects I have developed I spend like 4 to 5 weeks fulltime just on how to structure processes, division into objects and data flows. Not a single line of code! But once a good design is in place, writing code is a real joy because everything falls into place the right way.
Make more then 1 year in my case.
We were nearly two years in before writing line one of code.
We ended up with 4 three inch binders describing the requirements and
another 15 or so binders for the system design description. Some misunderstanding
here appears to be that most are unaware of the system design phase. This phase
has nothing to do with actual code. It describes how the project works and how
it meets the requirements.
Most of what people are talking about here occurs AFTER these design phases.
The actual breakdown and organization of the software, libraries, and tools used usually
is not a one-to-one mapping between system design items and code items.
This is not about "a team of programmers arguing over a bunch of bullshit and burnout".
How do you organize and layout your software if you can't even remember what it is suppose to do?
This is getting down on paper the big picture, what needs to be done, organizing it, and dividing up the tasks.
When you struggle just to grasp your small little piece of the whole, everyone needs something to refer to if for no other reason than not to forget something.