"The kernel has always been complicated, Torvalds said, but it is not getting less complicated over time. There is a balancing act between the right level of complexity to do the job right and over-complicating things.
Cox believes that the complexity problem is self-correcting for the most part. Once a subsystem becomes too complicated, it eventually gets replaced with something simpler. But code quality is a problem our industry has faced for sixty years."
I was going to write about how both problems are similar, but I just realized that simplicity is just a subset of the fuzzy group of properties we call "quality". It has also the nice property of being well defined (mathematically) and directly measurable.Quality on the other hand is a broad and probably subjective concept. The trouble with complexity is that we actually need some of it if we want to do anything non trivial, the trick being finding just how much is enough.
Alan's comment on complexity does easily apply to quality in general. Any part of the code bad enough will eventually be rewritten.