In software maintenance, I have noticed that very few organizations and companies publish a precise well written Software Explanation Document to explain exactly and in a very well written way how thousand lines program work. It is amazing that of all the documents that are written, none of them tell a programmer exactly how the lines of code really work, as if the real working of the code is intentionally left as guess work. I have seen this in very top class professional programs, I bet even NASA and military software programs never really have a Software Explanation Document that can tell a maintenance programmer exactly how the entire program works and all the details necessary to then modify it. Why is this so ? Software maintenance costs a huge amount of money and time and there is no real quality assurance possible without a complete and very detailed written explanation of how a program works. Actually if an organization needs a program, the only real thing that must be and should be delivered, is only the Software Explanation Document. If any programmer reading and studying this documnet cannot understand it well, then the software can be considered as not having been delivered at all and should not even be paid for until there is this precise document to back it up. How is it that after decades of software research companies simply don't deliver the most important single document that a maintenance group needs ? Aside from the fact that the program can be studied and all the design decisions can be judged upon giving the buying organization its money's worth and the power to really judge a program. I find it incredible that in this day and age almost all companies still have to waste an enormous amount of time to figure out how programs work, when it could have been forced upon from the very beginning. Software "engineering" still has a long way to go until a Software Explanation Document doesn't become the real PRODUCT that should be delivered.