需求,还是需求

  所有软件开发都是构建在需求的基础上的,脱离需求,与现实需求脱轨的开发都不具有商业意义。许多成熟的软件开发过程学都非常重视需求,传统开发模型比如瀑布模型会要求编写非常规格化的软件需求说明文档;敏捷开发过程比如XP则更注重在开发过程中,通过高质量的沟通,在客户及开发方之间形成信息的良性循环,以渐进发展的眼光看待需求。不同开发模式对需求的处理方法可能有出入,但都基于同样的态度:需求,是软件开发的首要重点,一切偏离需求的开发都是扯淡。软件开发的过程,就是不断构建系统以满足客户需求的过程;就是不断用信息化手段解决用户问题的过程。系统满足客户需求的程度,是衡量系统质量的重要标准。我们的目标是为用户解决实际问题。

  一个组织可以通过制度、规约来约束成员的行为,却很难找到一个有效的途径来调整成员的态度,而态度又恰恰是发挥一个人潜力的重要因素。一个组织可以通过开发模式、业务流程来保证项目质量,却很难通过管理渠道来保持成员积极向上的态度,而态度是一个项目质量的重要基石。许多人都没有意识到,可能自己并没有正确对待需求。

  信奉技术的人,容易迷失在浩瀚的技术海洋中,爽歪歪的使用各种架构,牛B哄哄的宣传自己程序具有多强的扩展性,健壮性。实际是,客户需要的是一把操作简单的杀鸡刀,你做了一支吓死人的杀牛刀;客户需要的是一个能精确指示时间的挂钟,你做了一个金光闪闪的手表;客户需要的是能坐着舒服睡觉的椅子,你做了一把能自动旋转360度,全天候按摩加推拿的按摩椅。重视技术本身没错,但轻视需求就该拉出去打靶了,技术是用来解决问题的啊。

  人在变,市场在变,我们的服务行业也在变,不知道那个哲学家说的,世界上唯一不变的就是变化。我们要求菜市场的尾货低价卖出,人家怎么就不能要求给权限体系加个动态配置呢?我们要求《钢铁侠3》多加些国人的面孔,人家怎么就不能要求给款项5W以下的报销单自动审批通过呢?许多变更是在系统完善后,由客户对系统认识的变化,或开发者对业务认识的变化,又或者是行业大环境变化引起的,如果你固守陈见,不愿意接受需求的变化,怎跟得上时代的步伐?确实会有许多许多不合理的需求,你知道不合理在哪里,那你就应该跟客户讲清楚,告诉他这是不可能做的,哪里变化会导致成本增加多少,你说明白道理,客户也没理由一直难为你吧?一直觉得软件是个服务行业,敢不敢拿点国际水准的服务态度出来呢?抱怨无济于事,不如奋起解决问题。

  一个厨子能获得大众喜爱,不是因为他多会耍刀,而是因为他能做出符合大众口味的菜肴;一个程序员能安身立命,不是因为他技术能力多强,而是他做出的东西能解决用户的问题。说白了,软件开发的目标不是你设计怎么牛B的架构,用了多么复杂的设计模式,而是你开发的东西到底有没有为用户解决实际问题;不是你开发得有多爽,而是用户用的有多爽!不要把目标定义错了,不要在成长的过程中迷失方向了。

posted @ 2013-06-10 09:12  菜鸟范  阅读(1832)  评论(37编辑  收藏