Exactly.
The complexity of a software should be measured by the average time a person need to completely read and understand it.
A simple software can take a day or a week. A very complex one, a month.
Everything above, is broken beyond repair.
Yes, we need to rethink almost everything from scratch.
How many mainstream software did you try to read and understand completely in a month?
I do not mean "enough to hack them" but enough to predict where a bug is by looking at it at occurring at runtime.
@Shamar @ekaitz_zarraga
I rarely look at mainstream software. I have looked at quite a bit of software that I would personally call complex, but none of it is mainstream.
I assume you mean that most mainstream software can't be understood completely -- with your definition of "understanding completely" -- in one month or less.
So when you say "rethink almost everything from scratch", do you mean "rethink the way mainstream software is written"?
It's just that "rethinking almost everything" is a very broad statement, so I would like to understand better what you mean by it.