上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
原则17 只要可能,购买而非开发
IF POSSIBLE,BUY INSTEAD OF BUILD
要降低不断上涨的软件开发成本和风险,最有效的方法就是,购买现成的软件,而不是自己从头开发。确实,现成的软件也许只能解决75% 的问题。但考虑一下从头开发的选择吧:支付至少10倍于购买软件的费用,且要冒着超出预算100% 且延期的风险(如果最后能够完成!),并且最终发现,它只能满足75% 的预期。
对一个客户来说,新的软件开发项目似乎最初总是令人兴奋的。开发团队也是“乐观的”,对“最终”解决方案充满了希望。但几乎很少有软件开发项目能够顺利运行。不断增加的成本通常会导致需求被缩减,最终研发出的软件可以满足的需求也许跟现成的软件差不多。作为一个开发者,应该复用尽可能多的软件。复用是“购买而非开发”原则在较小范围内的体现。可参考原则84。
Brooks,F.,"No Silver Bullet: Essence and Accidents of Software Engineering," IEEE Computer,20,4 (April 1987),pp.10-19.