谈一谈如何降低设计在实现中的损耗!

谈一谈如何降低设计在实现中的损耗!
首先简单介绍一下我所处的开发场景:
公司没有几个做开发的人员,所以当有大规模的开发项目的时候,出于成本和软件安全的考虑,通常是我和其他同事完成公司业务
的需求分析与设计(做的非常详细,从业务模型,数据库结构,持久层,领域层,业务层对应的接口, 界面设计都被固定下来了),目的是
尽可能的减少外包程序员在软件开发的过程中自由发挥的几率,保证实现不要太偏离与设计.然后公司从外包公司租赁几个符合要求的程序员
,由我们领导着按照设计和进度进行软件的开发.软件开发测试完毕后,那些程序员就回到他们自己的公司了.
当然在实际开发的过程中,最初的设计可能要进行实际对应的调整,有的因为实际情况不得不要打一些折扣等待,这些应该是说都是设计在实现
中的损耗.
我们几个人也是一直在摸索寻找一种降低设计损耗的过程方法,也就是设计如何被很好的实现.当然在做设计的时候一定要符合需求,需要一定的

经验和扎实的分析设计理论做指导.这也是我们一直在努力的学习四色原型,分析模式,DDD,设计模式的原因.
当设计完善后,对于我们这种团队的情况,程序员基本上都是临时租赁来的,层次高低不等,你是OO的设计,可是有的程序员没有这样的程序思维,在

实现的时候就是给你写的很不令人满意.设计也就打折扣了.

我想到的解决办法:
1:狠抓上游分析设计
2:如何抓我们的下游程序开发实现,目前还在探索中.有这方面经历的请多多指教!
由于没有去软件外包公司干过,据说欧美和日本的外包需求设计规格说明书做的非常完善,设计损耗好像较少,有这方面经历的请多多指教!