软件方法(业务建模和分析)----阅读笔记1

为什么做出来的软件功能与客户的实际期望相差太远?

      因为最初提出来的需求根本就不是“需求”!而仅仅是一个想法,或者素材,或者这个功能是我们自己的想法而不是切合实际调查出来的想法。然而过于相信这种被产品经理、领导或者客户“加工”过的需求,没有去深入挖掘其背后隐藏的各涉众的利益诉求,当然也就不会真正解决客户的问题,最后导致的真实场景就是总抱怨需求频繁变更。实际上,客户的需求从来就没有变过,只是我们一开始就没有揣摩出来!

建民老师着重培养我们切合实际的思维,要求调查报告中的数据不要电子版,必须是真正采访学院里的学生作为虚拟客户,使我们了解客户的需求确实和我们想当然的不一样,他们的需求更加贴合自身的工作需求,但是也会出现一些问题,每个人提出的需求不尽相同,很繁琐,这时就需要我们自己去筛选出主要的功能。

      “我发现团队的开发效率不高,项目延期是常事;每个人的开发水平相差很大,有经验的上手很快,没有经验的却很难上路;Bug总是改不完;自底向上的面向过程式思维设计;代码的共享度不高,最有价值的代码得不到沉淀,每次新人接手,很多是推倒重来……为什么会出现这些问题?究其原因,还是开发人员的开发技能不足引起的。我遇到过很多人一接到需求,便开始做数据库设计,往往忽略了或者不屑于做业务建模、分析和软件本身的设计,以为做完数据库设计就万事大吉,特别是在互联网公司表现较为突出。最终导致的结果就是代码难以复用,互相看不懂别人写的代码,理解起来也很费劲,往往不如重写一遍,所以出现上面这些问题也就在所难免。”

      这段话充分说明了业务建模和分析的重要性,也是建民老师开设软件需求和分析这门课的意义所在。老师经常说现在你们感觉码代码很难,但是将来你们工作时会发现码代码的时候是最幸福的也是很短暂的,你大部分时间都在写各种文档,其中业务用例就是很重要的,如果没有各种开发文档,那么新人可能完全看不懂你写的代码,那么很可能会推翻重写,这样代码的共享度不高的同时还浪费了大量的时间。建民老师对这方面很严格,如果你写的文档没有达到要求会让我们重新写,并且请具有丰富项目经验的老师为我们讲解了标准文档的重要性及组成。

“中国刚改革开放时,出现了许多农民企业家,他们不用讲管理,也不用讲方法,只要胆子大一点,就能获得成功。当时的市场几乎空白,竞争非常少。农民企业家思路很简单:人人都要吃饭,所以开饭馆能够赚钱。现在这样的思路已经行不通了,市场竞争已经足够激烈,十家新开张的饭馆恐怕只有一家能撑下来,所以农民企业家已经很少见(连农民都越来越少了)。软件开发行业也一样,最开始的时候,会编程就了不得,思路也很简单:每个公司都要做财务,所以开发财务软件就能赚钱。现在呢?我们每想到一个“点子”,可能有上千人同时在这样想;我们要做一个东西,可能发现市场上已经有许多类似的产品,你卖高价,他就卖低价,你卖低价,他就干脆开源。机会驱动、粗放经营的时代已经远去,为了在激烈的竞争中获得优势,软件开发组织需要从细节上提升技能。”这时候设计和需求就显得愈加重要。

软件业上

利润=需求-设计

用例是收益面,对象是成本(高焕堂《Use Case入门与实例》)。在软件开发中,需求工作致力于解决“产品好卖”的问题,设计工作致力于解决“降低成本”的问题。二者不能相互取代。你能低成本生产某种软件产品,但不一定能保证它好卖。你的某种产品好卖,但如果生产成本太高,或者在市场需要新型号时,无法复用之前的组件,又要投入大量人力物力去重新制造,最终还是赚不了多少钱。如果需求和设计不分,利润就会缩水。从需求直接映射设计,会导致功能分解,得到重复代码。如果从设计出发来定义需求,会得到一大堆假的“需求”。

你可能感兴趣的:(软件方法(业务建模和分析)----阅读笔记1)