Context is a problem in all forms of communication. We 're only human after all.. And just rebuilding things is pain but it may work. The deep problem is having the wrong architecture from the beginning and try to rebuild things. It's where patches over patches start appearing and you end up dealing with a fur-ball. Good design, (specs and context) from the beginning lead to more functional, maintainable and expandable systems. Asking the right questions is crucial. It helps define functions and predict future needs. It is a minimum investment with maximum reward. Having a system generating the right questions really helps, because it doesn't forget to ask things. Thank you very much for commenting. Please try Socrates if you like. I will be more than happy to help you.