I would say that it's about producing as little code as possible to get the job done. Short simple code is usually easy to read and maintain. It actually often requires a lot of thinking to produce short simple code; most developers solve sub-problems on the go as they surface and end up with complex, inefficient and unmaintainable solutions. It really comes down to foresight and planning.
After the downfall of the waterfall model, devs took the agile development mindset a little bit too far. The right amount of planning required is somewhere in between.