计算机系统不只是简单地把纸上的东西往电脑里搬。
客户的需求从来就没有变过,只是我们一开始就没有揣摩出来!
利润 = 需求 - 设计,需求致力于解决"产品好卖“的问题,设计致力于解决”降低成本“的问题。代码和设计得到最大程度的复用,从而缩短开发周期,降低开发成本。
从需求直接映射设计,会导致功能分解,得到重复代码。如果从设计出发来定义需求,会得到一大堆假的需求。
如果能学会通过业务建模去推导新系统的需求,而不是拍脑袋得出需求,假的”需求变更“会大大减少。
有的开发人员的”十年工作经验“实际上是”一年工作经验用了十年“,一直在热热闹闹的民工层次徘徊,没有积累和成长。
建模的目的是帮开发团队思考,它可以指引开发团队发现到底需要向涉众了解什么,但不是直接拿着模型和涉众交流。开发人员把建模的目的理解成和涉众交流,背后的思想是”懒“字,因为这样,就有了推卸责任的机会:不是我不想建模,就算我建模,客户也不想看啊。
愿景是改善组织的目标,不是做某事,不是问系统有什么功能,而是回到买了这个系统,对组织有什么好处。
愿景是组织的老大针对系统的目标,那其他人的目标难道不重要吗?其他人的目标也是要关注的,我们把它叫着涉众利益。
需求是不断变化的,新系统肯定在功能或性能上和旧系统有所不同,否则还做什么新系统?但是背后的涉众利益要稳定的多。比如银行领域中的涉众利益:储户--希望方便,担心利益受损;银行负责人--希望安全;节约运营成本。这些涉众利益,适用于古代的钱庄柜台,适用于取款机,也适用于网上银行。
----以上摘自《软件方法》