当前位置: 首页 > news >正文

我们不是客户

各位同仁,大家好,今天晚上在论坛上看到了这个帖子,感觉很适合目前我们部门的状况,所以在此发表出来供大家参考。帖子详细内容如下:

帖子引用地址:http://blog.csdn.net/lingyun2005/archive/2010/05/21/5613101.aspx

在系统开发的过程中,如何从客户那里获取正确、有效的需求,是每个团队都需要仔细考虑的问题。如果最初的需求没有明确,就开始着手开发,到最后可能会有很多东西需要修改,浪费大量的时间、精力和金钱。

这件事说起来很容易,但实际做起来的时候,总会遇到各种各样的阻力,似乎在每个项目中都一样。所以,有很多人喜欢凭借之前类似项目的经验,或者自己对于业务的理解来做需求分析,要牵着客户的鼻子有,甚至于替客户决定如何来做系统。但是,这往往会导致客户抱怨:你们做的系统不是我想要的,根本就不好用!其根本的原因就在于:我们不是客户!

很多人都清楚的一个原则是,在做系统的时候要从客户的角度出发,但什么是客户的角度呢?在明确这个问题之前,我想大家应该了解我们程序员与客户之间的一些区别。

首先,我们和客户使用计算机的水平不一样。这一点是客观存在的,我们作为程序员,计算机就是我们战斗中的枪,那必然是非常熟悉,而且整天24小时至少会有十几个小时在和计算机打交道,每个人熟悉的软件至少也会有十几种。而作为客户,可能只是在上班的时候使用,而且使用的软件非常有限,一般就是Office,加上有限的几个软件。

其次,我们和客户对业务知识的掌握不一样。客户的业务知识就是他所从事的行业的知识,比方说对于一个保险公司的业务人员来说,他们的业务知识就是与保单、代理人、承保、理赔、保全相关的各种内容,而对于贸易型企业来说,他们的业务知识就是与采购、销售、产品、订单等相关的内容。如果我们没有做过相应的行业软件的话,那么我们的业务知识就很差。这也正是为什么好多软件公司想要做一种行业软件时,所存在的壁垒。

既然有了这么大的不同,那么我们想要从客户的角度出发,就要以客户的计算机水平和业务水平来考虑,这样做出的东西才是给客户用的,而不是给我们程序员用的。

想要达到这个目的,首先我们就要从自己做起,努力去学习各种业务知识,要有不耻下问的精神,千万不要觉得自己是做IT的,就孤芳自赏,而对于其他行业的人员,就觉得不如自己。古语说得好:三人行,必有我师。每个人的知识都有不同的重点,客户中有很多人掌握着我们所不知道的知识,不向他们请教、学习是不行的。

然后就是要多多与客户沟通,不同时间、不同地点、不同的环境中,客户的想法也会有所不同,这也正是需求的变更,我们不能要求客户提出的需求是一成不变的,有人说过,唯一不变的就是变化!想要解决这个矛盾,我觉得最有效的方法就是沟通,这样的话,如果客户的需求有了变化,我们会在第一时间了解,并为其做相应的工作,这样可能就会节省出很多的时间和精力。并且,沟通是会增进我们与客户之间的感情的,如果双方都认为对方是自己的朋友,很多麻烦的事儿也就迎刃而解了。

接下来,我想和大家聊聊当前做系统时,获取需求可能的几种做法,并提出自己的浅薄的意见。

1、闭门造车型——也就是凭借自己对行业的理解,或者是以往项目的经验,猜当前项目的客户会提出什么需求,而不理会客户的具体情况。

大家也应该可以立刻给出结论,这样的项目很难成功,即便是我们之前做过100个类似的项目,那么在做第101个的时候,也会发现企业会有自己的特点,客户会有自己的特点,毕竟我们做出的系统不是给机器人用的,而是给人用的,有人存在,就会有差别,我们就应该具体情况具体分析。

2、积极沟通型——作为程序员或者是项目经理,在开发的整个过程中积极地与客户沟通,及时了解客户的需求是否有变化。

这种类型应该比上述的有很大的改善,但是我觉得需要注意的问题就在于沟通和信息传达的效率上。一般来说,可能这种工作会由项目经理来做,而不是由具体开发的程序员来做。这样的话,就需要做沟通的人有充分的计算机知识和业务知识的储备,既能够了解客户所说的话,也能够把客户所说的话正确地传达给程序员,并且还可能会加入自己对如何在系统中实现的理解。

3、现场客户型——这是敏捷开发中一个很重要的原则,就是在开发的现场要有客户,不断地提供对系统的意见和反馈。

首先这一点很难达到,毕竟客户也有自己的工作,很难整天地坐在我们旁边为我们提供反馈。另外,如果说是一个或者有限的几个客户,那么就需要他对所要负责的模块相关的业务知识都非常了解,这对于现场客户的要求也是非常高的。

上面几种形式都是我们被动地来接收需求,其实我觉得我们还可以主动出击,去找需求。

4、观察客户型——就是说我们要在客户工作的时候一直观察,看客户是如何在实际工作中作出各种各样的决定的,也了解客户的工作方式和工作内容,看看如何能够通过系统来帮助他们。

5、一起工作型——这种方式意味着我们要把自己下放到客户的办公室中,去和他们一起工作,有些边缘性的工作,我们作为学徒的角色,帮客户完成。

上面的两种方式所获取的需求都是第一手的需求,而且通过和客户一起摸爬滚打,我们不仅能够获取宝贵的需求和业务知识,而且还可以了解到客户对于每个需求的迫切程度,以及完成每个需求能够为客户带来什么,这样就可以做到知己知彼,百战不殆,不出意外的话,可以达到一种双赢的结果。

然而,这需要高度的信任关系,毕竟行业之间都是有很多秘密的,不是一个公司的人,不一定会把很多信息和资料放心地交给我们程序员,所以,一般来说,这两种方式其实对于做自己公司内部项目的程序员来说会比较适用。

总之,在获取客户需求的时候,我们要牢记一点,我们不是客户,要想获取有效的需求,想要做出客户满意的系统,那么就要向客户接近,多沟通,从客户的角度来做系统。

OK,到此这个帖子已经结束了,那么看完这个帖子各位有什么想法呢?请大家自己思考下,我先列出我个人的几点想法,希望各位批评指正。

上面这位发帖的大哥,讲的东西很实在很值得我们去思考,那么在我们软体代工中究竟有哪些需要注意的地方呢?

我们不是客户,我们应该做出怎样的系统来给客户使用呢?我们应该怎样让客户对我们做出的系统非常满意呢?

我想最重要的是帖子中所提到的第二点:积极沟通型

积极沟通在我们日常所从事的工作中应该在那几个方面来实施呢?

第一点:鉴于我们公司比较完善的流程,我们所能接触到的最多的最接近客户层面的就是开立规格的顾问(SD),鉴于大陆的客户规格开立相对来说比较不够完善,因此有些需求我们不是非常清楚,但是看似有知道是要做什么事情,这个时候就应承了上述文章中提到的按照以往的项目经验来处理此份规格,结果做下来极有可能不符合顾问的要求,不符合客户的要求,导致我们会返工,返工对我们来说,就如刘老大经常说到的一样:返工不仅会让你对修改这支程序产生厌倦,同时还有浪费大家正常的工作进度,最重要的就是对我们的心情有不少的影响,不可否认的是心情对工作的影响也不小,所以他会影响到我们的生活。

  所以应该尽量避免此类现象的发生,这就需要我们在做开发的时候对于意思理解不够清楚,或者说规格上面的描述不能够让你理解的时候,请沟通,请及时的沟通与交流,在沟通与交流的过程中我们同样会学习到其他很多的东西,很多的思考方式。当然也许有些问题顾问也不能描述的非常清楚,那么这个时刻顾问一般会提出让你与客户直接进行沟通,这个时候你赚大了,你获取到了难得与客户直接沟通交流的机会,要知道在这个里面你能够学习到很多东西,很多直接反应客户需求方面的信息,直接反应客户工作流程,等等一系列问题。那么这个对我们今后的工作,有非常大的帮助。

  故,沟通在阅读规格,撰写程序中起到了非常非常重要的作用,大家一起加油,争取在现有的基础上做的更好。

第二点:这个时候也需要你会问到,还有什么地方需要我们沟通吗?我也一愣,哦,NO,NO还是有的,呵呵,那就是在撰写程式方面。

  此点需要沟通的地方,或者更合适的应该说是互助的地方。为什么这样说呢?我们作为代工,我们所要做到的就是尽最快的速度提供给客户最好的系统服务,这点大家也许会认为矛盾,既然最快了就不可能达到最好。对,其实就是这样的,从哲学的角度来考虑,我们肯定可以找到一个平衡点。那么如何找到这个平衡点呢?

  我个人有个想法,不应该说刘老大的想法,我在此先引用过来,老大得罪了!O(∩_∩)O~在我们开发我们部门所承接的这几套产品的过程中,每个同仁都有自己的理解,自己对开发过程中的一些总结,自己对如何提高自己的开发效率都有自己的认识,这个时候我们需要沟通就体现出来了。

  1)在程序开发过程中沟通,当我们在开发程序的过程中难免遇到一些自己比较头疼的问题,这个时候如果我们一直沉思下去,如果能够在规定的时间范围内完成,当然很好,也非常支持这种做法,但是同时我们必须要考虑的另外一件事情,如果我们没有思考出结果,那么结果也是很可怕的,延期交付程序,给顾问的印象是我们部门开发效率比较低,给客户的印象是我们公司反应不够及时。总之,各方面的印象不是太好,这个时候如果我们可以及时的将问题提出,大家如果有谁做过类似的功能,及时提供给你帮助,那么你不仅学到了知识,同时出色的完成了任务,这个时候,我们大家都会暗暗的给鼓掌,明着给你鼓掌也可以(O(∩_∩)O)。那么解决这个问题的另一个途径就是经验共享,所谓经验共享就是将自己在程序开发过程中遇到的一些问题归纳总结出来,交给老大统一管理,这个的作用不仅有助于提高我们的开发效率,也有助于新来的同事更快的掌握各个产品。这样的话,我们这些老员工就可以整天Happy点了,少干了不少东西,因为每个人都能够赢利喽。哈哈,何乐而不为,有百利而无一害。

  2)系统的沟通与交流,这块我目前的接触的也比较少,懂的也很少。所以更需要沟通与交流,掌握我们所开发的系统,熟悉每一个模块甚至到每一个程序所代表的含义,这样的话,很多同事以后都可以转顾问或者售前或者实施等等,这多是我们的发展方向啊!特别是比较成熟的系统如CRM,EF等。

第三点:还有第三点,呵呵 有啦。这个也是非常重要的就是生活中的沟通,希望大家能够成为很好的朋友,或者说是知己。大家彼此关心照顾,提供一个良好的氛围,良好的工作学习环境,这样我们就都有一个良好的成长环境。说到这,我们不仅要感谢我们的刘老大,各位老一点的同事多感触颇深,刘老大让我们的部门相处的非常融洽,非常和谐,所以我感觉到非常温暖,每个人也都是吧。

  呵呵,说到这我只希望我自己能够多多给大家带来欢乐,带来快乐,如果有不小心或者管不住嘴的地方触怒了某位,请各位谅解,在此先道歉!

OK啦,都晚上12点了,我要再看个电影睡觉喽,呵呵,就发点牢骚到此了,接下来如果看到好点的文章,都会发表点自己的意见分享给各位,让我们增强我们的沟通能力,提高我们的综合素质,提高部门的效益,进一步提高部门形象。

  最用引用我们陈老大经常教导我们的一句话,我们要由Hard Work变为smart Work。让我们伴着陈老大的这句话,加强沟通,共同进步

PS:希望各位积极发表意见,也好增加下我们blog的留言量,谢谢各位,谢谢各位。留言量大了,请各位吃饭啊!O(∩_∩)O哈哈~

转载于:https://www.cnblogs.com/denylau/archive/2010/05/22/1741300.html

相关文章:

  • GHOST系统后,蓝屏代码为0x0000007B解决方法
  • xvhfeng的工作回忆总结(第三年)
  • Entity Framework Core 2.0的突破性变更
  • shell脚本编写 之 条件选择,条件判断,循环语句
  • EF架构~mysql数据库无法创建数据模型
  • 解决SecureCRT中文显示乱码
  • dbvis增加oralc连接
  • 在windows平台上搭建Android开发环境-图例
  • Reactive Programming with Spring 5
  • IIS6.0下创建用户隔离模式FTP站点
  • Hadoop如何迎击大数据分析的挑战
  • [Samba] 一路走来
  • 联动优势:PureData数据中心案例分享
  • MySQL Connector C/C++ for VS2010
  • SaaS课堂:外贸企业如何选择适合自己的软件
  • 11111111
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • HTML5新特性总结
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Java面向对象及其三大特征
  • mysql中InnoDB引擎中页的概念
  • socket.io+express实现聊天室的思考(三)
  • spring-boot List转Page
  • 百度地图API标注+时间轴组件
  • 规范化安全开发 KOA 手脚架
  • 力扣(LeetCode)965
  • 盘点那些不知名却常用的 Git 操作
  • 前端面试之CSS3新特性
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 世界上最简单的无等待算法(getAndIncrement)
  • 听说你叫Java(二)–Servlet请求
  • 小程序开发中的那些坑
  • 2017年360最后一道编程题
  • k8s使用glusterfs实现动态持久化存储
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • # 安徽锐锋科技IDMS系统简介
  • #QT(一种朴素的计算器实现方法)
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (145)光线追踪距离场柔和阴影
  • (八)Spring源码解析:Spring MVC
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (二)springcloud实战之config配置中心
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (四)Linux Shell编程——输入输出重定向
  • (一)appium-desktop定位元素原理
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • ***监测系统的构建(chkrootkit )
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .NET Framework .NET Core与 .NET 的区别
  • .NET HttpWebRequest、WebClient、HttpClient
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .net6+aspose.words导出word并转pdf