博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

我也许是一个面向客户型程序员(Customer Oriented Programmer)

Posted on 2008-10-12 11:54  栖山  阅读(2342)  评论(34编辑  收藏  举报

第一次把博客放到首页,有很多批评,也有若干鼓励,我感谢每一个人的留言。

特别要感谢kenny.zhang,呵呵,你的留言让我感觉你好像认识我似的,给了我很多鼓励,你的博客是什么,如果可以的话,请告诉我吧。

由于一些园子里面的朋友一口断定我是初学者,或者经验不足,这引起了我的反思。因为我已经从业10年以上,可是还是被这么多朋友说成是初学者,或者是没有经验的人,那肯定是我身上出了什么问题。

经过一夜的反思,我终于又有了结论。

这个结论就是:我也许是一个面向客户型的程序员。

其实这也许和我的经历有关,因为我年轻的时候经常在上海的各个软件公司“流窜”,(当初主要当然是为了涨工资,其实现在看来是错误的,因为只要在当年一家象样一点的网站待几年肯定就发财了),在做程序员的同时,兼做销售,客服,培训等工作。做过许多小项目,也做过许多大项目,BSCS都有,走了很多弯路,也有很多血的教训。在痛定思痛后,我终于回到了原点,也就是互联网,目前我从事的是互联网Web 2.0,当然和当年的看法是完全不同了。可能由于这些经历,所以这导致了我的思路和一些园子里面的朋友的不同吧。受到kenny.zhang的鼓励,我和大家分享一下我的体验。

在昨天关于多层架构的好处的博客中,许多网友提得都很好,比较代表性的一条

有容乃大写的:

安全性在三层架构中未必能体现出来,标准化、扩展性和低藕合才是三层的精髓,看来博主对三层构架的认识还是很片面。

还有网友关于便于分工合作,保密之类的。

可是为什么我对这些没有感觉呢?

到底缺了什么呢?其实十年来一直在思考这个问题,领悟也是近两年的事情。

缺的是客户和客户的利益。而很多网友所关心的都是“程序员那些事儿”。

而我思考的角度是,多层结构能给客户带来什么,也许这就是冲突的来源吧。

许多网友说到了后期维护的事情。我想问个问题?

后期维护到底在维护什么?

比如说Windows XP ,一年左右才会出一个SP吧,一共也就3SP吧,一般也就打到sp2

而我们的软件呢?多少时间打一次补丁呢?我们开发的软件的复杂度比window小的恐怕不是一个数量级吧

有人会说,window update不是过不了几个星期就打补丁吗?可是那些都安全补丁吧

而是我的文章里面也提到了安全补丁,在我眼里后期维护就是打安全补丁,微软的实践和我的说法也吻合吧?

那么现在很多软件项目发布的第一天就开始修改了,然后客户和软件工程师互相埋怨,那又是怎么回事呢?

因为我们把后期维护看成是必须的。那么自然发布的产品就是缺胳膊少腿的。然后我们醉心于你看我的架构多好,客户来一个电话,我就给他加一个功能,一天就搞定了。

3年前,我决定转型了,为一个客户修改程序,那属于“IT服务业”,我希望我的程序为很多人很多人所用。所以我转向了Web。这里绝对没有贬低服务业的意思,服务业也是非常好的行业。只是个人选择和爱好。

我每天问自己以下几个问题:

1, 这个功能客户需要吗?

2, 这个功能有多少个客户需要?

3, 真的需要吗?还是我的猜想?

4, 如果A功能和B功能中只能选一个,客户会选择哪个。

因为我的人力很有限,我已经超负荷工作了,所以我需要把资源投入到给客户带来利益的地方。

其实各位网友的说法都有道理的。不过我再进一步深层思考,提出以下问题。

 我们的电脑配置也不差了吧,带宽也够吧,软件业不缺吧,许多软件也都开源了吧,那么为什么我们软件行业不强呢?

难道是因为吃牛肉的关系?

我想还是一个思想的问题吧。

如果我们醉心于如何省力,如何通过后期维护吊住客户,如何保密,如何让程序员成为可以替代的这些“程序员那些事儿”那么我们怎么可能进步呢?

重申一遍,网友们的意见都对,都有道理,但是有更有价值的东西,值得我们去思考。

时代在变,我们也要变,否则就要被社会淘汰了。

在我看来我们都要向周杰伦学习。

如果你要说他唱的好,那我只能佩服你的耳朵够有个性。但是他为什么那么火呢?难道是因为他长的帅?

道理很简单,因为他写的曲好,他明白客户的需求,并能满足他们。

其实大多数的程序员就如同那些歌手,我们的演唱技巧足够纯熟了,可是我们天天盼着有一首好歌能从天上掉下来。

 “那没有意义。许三多说。

多层结构对我来说就是安全性,因为它对客户有意义。

其实我把多层架构看成了必要条件,而非充分条件。

这是我一个面向客户型程序员的一些想法。欢迎大家批评。