代码改变世界

所谓的Dumb Question

2004-08-15 17:16 FantasySoft 阅读(...) 评论(...) 编辑 收藏

        为了能够更好的理解WebWork中的处理机制,我拜读了几位牛人写的一本书《Java Open Source Programming With XDoclet, JUnit,WebWork, Hibernate》[1] 。几位牛人在Understanding Design and Deveopment Philosopies章节中提出了三条开发项目的principle:
        1、Test First;
        2、Less Is More; 
        3、Always Ask The Dumb Questions。
        前面两点,我就不多说了,而最后一点,我却有不同的想法,因为我看到了这点之后,我开始明白公司里面为什么会出现那么多无聊而低级的问题了。
        在国内的公司,或许很多项目组都很清楚一点:用户的需求是很重要的,也就是说在做项目之前要知道客户到底想要怎样的软件,想要怎样的系统,一定要避免用正确的方法去做错的事情。如何保证所做的事情是对的呢?Ask The Dumb Questions确实是一种不错的方式,毕竟用户通常都不会关注我们用了什么技术,只会关注系统是否符合了自己的要求,业务逻辑处理是否正确,运行是否速度够快,甚至界面是否漂亮啊等等。因此,在我看来所谓Dumb Questions就是能够从用户的使用角度出发,而不是从实现角度出发的问题。
        在原来的公司当中,也很崇尚去提问题,但是问题本身的质量总让人觉得失望,而且问题通常都止步于一个很抽象的层次。我想Dumb Questions不等于没有经过大脑的问题吧,但是这样的问题会在项目组当中经常出现。“为什么我们要使用VB,而不是VC来做呢?”“为什么我们要使用B/S,而不是使用C/S呢?”“我们为什么要用J2EE呢?”像这样的问题,公司里面还专门给几个开发组开了会来阐明问题的答案。我想如果问我这样的问题的话,我只能说,It's none of my business.
        多提问题是好的,多提一些能够统一大家对于开发的认识的问题是好的,但是那些天马行空,无中生有的问题,对项目无益的问题,还是少提为好吧。断章取义,看了几天书就来鼓吹Ask The Dumb Questions,恐怕就只能给人画虎不成反类犬的感觉了。
        牛人告诉我们说,Writing software is easy;牛人也告诉我们说,Ask the dumb questions and then ask detailed questions related to the fine-grained implementation。可是我们做到了吗?

        [1] 《Java Open Source Programming With XDoclet, JUnit,WebWork, Hibernate》