This is why outsourcing fails. Generally, outsourced developers will just implement exactly what the spec says to implement, no more and (hopefully) no less. You can&#x27;t communicate with them synchronously and answer their questions in real time because they&#x27;re located on the opposite side of the earth. Time is money and waiting for your answers would be too expensive, so they just don&#x27;t ask questions, instead they make guesses and assumptions about anything you haven&#x27;t clearly specified.<p>Then you slowly realize that it takes about as much time and effort to write a comprehensive, detailed specification of the software, as it does to actually write the software itself.