技术开发 频道

潘加宇:开发人员应该具有市场思维

  和“底层”一样带着光环的是“技术”一词,有趣的是,不少开发人员说到“技术”的时候,含义就是“我懂得或感兴趣的那点东西”,不懂且不感兴趣的就称为“业务”。例如,开发部的程序员认为“Java编码是技术,产品部那帮需求人员做的是业务”;产品部的需求人员则认为“我做的是技术,客户那帮报关员做的才是业务”;报关员也会说“Kao!我做的当然是技术,我薪水比你还高呢”。所以,我经常用“核心域”、“非核心域”来代替“业务”、“技术”。

  计算机科学不是软件工程

  造成以上问题的根源,我认为部分原因来自开发人员对计算机科学和软件工程的区别认识不清。软件工程和计算机科学的关键区别在于人。软件是为人开发的,所以我们要做需求;软件是由人开发的,所以我们要做设计。考虑到人的因素,软件工程更接近于经济学,而非计算机科学。“程序员”这个职业,软件工程的成分要比计算机科学的成分大。

  现在的大学计算机教育,基本还是以教授计算机科学为主,所教的软件工程仅是聊胜于无。这本来也没什么问题,毕竟象牙塔里的教授要教出好的软件工程也不容易,开发人员还是要在业界历练学习。不过,因为软件工程看起来没有计算机科学那么“深奥”,开发人员常会误认为某人只要对计算机科学的某个领域有一定研究,他对软件工程所发表的见解也一定是有道理的!这时问题就大了。

  事实上,以我的所见所闻,即使是拿到了名校计算机专业的硕士、博士学位,又在著名IT公司的研究院做研究多年,一张口仍然是“软件工程盲”的人士,并不鲜见。上海的张恂先生2002年曾经和我一起写作《驳UML三大“硬伤”论》,这些年,张先生一直高举软件工程大旗,多次批驳过类似的现象。

  同样作为一名软件工程的研究者,我没有轻视计算机科学研究的意思,只是稍作提醒其中的区别,双方的研究者应该互相尊重。

  因篇幅所限,先谈到这里。后面我将从执行者和用例开始,谈谈里面的市场思维——“小人圈圈不简单”。

0
相关文章