What makes code maintainable? What does it mean to be readable? Why does it matter?
My coding standards and styles change constantly.
I have yet to return to a project after a hiatus and understand it without some investigation -- no matter how intuitive it originally seemed.
If this is so, how can something be maintainable? If a project can be written in a few weeks and then not touched for several months, is there any chance you'd automatically understand or agree with the design?
There are very few solutions that cannot be figured out. Sometimes it takes minutes. Other times a bit longer. A lot of times it involves grimacing, cursing and questioning the sanity of the original developer(s).
But no matter how "awful" a solution may be, at one point it made sense to someone, so with some detective work it can be understood.
Something common of software that is easier to maintain is single responsibility and separation of concerns. These principles are not subjective. They don't change with time, mood or business domain.
If a project follows these principles understanding the entire system isn't necessary, just the part that needs to change. It may take some time to find it, but once found, the solution is simple.