我以前说过,程序猿不是一般的人,是具有某种超能里的人。但问题是。程序猿往往意识不到自己的这样的特异功能。在他们的眼里。会觉得自己非常普通。跟常人一样,所以,程序猿能做到的事情,其它人——比方他们的客户/软件用户——也应该非常easy做到。

但其实,因为大部分人——绝大部分人(包含软件开发公司的客户/购买软件的用户)——都是电脑小白(对电脑知识/计算机知识/软件知识知之甚少的人)。一个对于程序猿来说非常显而易见的软件操作,换成让用户来操作。就会出现各种各样奇怪的事情。这让程序猿非常痛苦。



        记得有一次,一个客户打电话给我,说他电脑桌面上的大e找不到了。我没听懂,什么大e找不到了?客户解释说:就是那个长的像大个儿的英文字母e的图标找不到了。我倒。最终明确了他指的是桌面上的IE浏览器的图标不见了。



        另一次,有个客户提出一个需求,要求在页面上添加一个搜索功能,我问它,系统里有搜索功能,为什么还要在这个地方新增一个搜索功能。他说他要的不是那个搜索。他要的是在这个页面上搜在某个关键词。经过进一步的沟通,我明确了,他要的是浏览器上的快捷键CTRL+F的功能。

由于用户的这些特征,导致了程序猿觉得完美的程序,到了客户的手里,却变成极其难用的软件,投诉电话如乡下骂街的泼妇似的响个不停。而事后分析发现。根本原因都是应为程序猿高估了用户对软件的掌控能力。低估了自己对软件的创造能力,于是导致了他们看这些客户使用他们开发的软件时。都是那样一种可笑的行为。

假设是脾气暴躁的程序猿。遇到这样的情况,难免会对着客户发一顿牢骚。并且,程序猿的脾气一般都不是非常好,所以,通常跟客户沟通时。项目经理一般都是跟着一起。以免事态激化。



        用户尽管给程序猿带来非常多麻烦,但事实上程序猿的全部荣耀感都来自客户,由于仅仅有客户用得惬意。程序猿才会有成就感。比方像以下这几个客户在使用一个新款软件时显露出来的表情,足够让一个处在北京重度雾霾的下午的程序猿也能露出笑容:



        程序猿尽管脾气不好,但他们都是为工作着想,不带不论什么个人恩怨。当开发软件有紧急任务时。他们都是任劳任怨的加班加点,当在已经公布的软件中出现了重大bug时。他们都会深深在自责,会连夜赶制出紧急修复bug,假设不能在第一时间让用户惬意,他们会茶不思、饭不想、觉不睡。即使在实在没有短期内完整的补救措施的情况下。他们也会想出一些歪招,但也是行之有效的方案,让用户临时度过难关。



        用户应该体谅程序猿。程序猿的生活实际处在一种十分矛盾的状态中。

编程不像其他行业。比方泥瓦匠砌砖,砌一层砖,墙就会高一次。

但编程不一样,有时候一个程序猿写了一天的代码。急得满头大汗,但开发进度未必就有所进展。有时候甚至还会倒退。软件编程是一个亦虚亦实的世界。有时候你搞不清一段代码为什么好用。有时候也会诧异由那样的代码构成的软件也能跑起来。



        最后,说一下跟程序猿打交道的一些注意事项。程序猿由于整天和编程逻辑打交道。所以对因果关系特别敏感。假设你的话语的因果关系不是非常明白。这会让他们感到疑惑,假设你的话语的因果关系不完整,这会让他们办错事。假设你的话中有if,最好后面用then做结束。或者用else给出选择,主语要明晰。



       假设你是一个程序猿,你会理解我说的话。

说实话当一个程序猿不easy的更多相关文章

  1. 每一个程序猿必知之SEO

    似乎由于受这篇文章的影响 http://katemats.com/what-every-programmer-should-know-about-seo/ 于是我也觉得我应该写一个每一个程序猿必知之S ...

  2. 每一个程序猿都应该用MBP

    换笔记本的想法非常久了.前段时间换工作就想看换工作之后是什么情况吧. 可能工作配的笔记本就是MBP.后来发现是想多了,新工作的笔记本是Thinkpad X240. 配置全然够用了,8G内存+128G的 ...

  3. 连载《一个程序猿的生命周期》-《发展篇》 - 3.农民与软件工程师,农业与IT业

    相关文章:随笔<一个程序猿的生命周期>- 逆潮流而动的“叛逆者”        15年前,依稀记得走出大山,进城求学的场景.尽管一路有父亲的陪伴,但是内心仍然畏惧.当父亲转身离去.准备回到 ...

  4. 连载《一个程序猿的生命周期》- 44.感谢,我从事了IT相关的工作

    感谢博客园一直以来的支持,写连载都是在这里首发,相比较CSDN和开源中国气氛要好的多. 节前,想以此篇文章结束<一个程序猿的生命周期>的<生存>篇,对过10的年做一个了断,准备 ...

  5. 连载《一个程序猿的生命周期》-28、被忽悠来的单身HR(女同志)

    一个程序猿的生命周期 微信平台 口   号:职业交流,职业规划:面对现实,用心去交流.感悟. 公众号:iterlifetime 百木-ITer职业交流奋斗 群:141588103    微   博:h ...

  6. 连载《一个程序猿的生命周期》-6、自学C++,二级考过后,为工作的机会打下了基础

    一个程序猿的生命周期 微信平台 口   号:职业交流,职业规划:面对现实,用心去交流.感悟. 公众号:iterlifetime 百木-ITer职业交流奋斗 群:141588103    微   博:h ...

  7. 蒙特卡洛树搜索算法(UCT): 一个程序猿进化的故事

    前言: 本文是根据的文章Introduction to Monte Carlo Tree Search by Jeff Bradberry所写. Jeff Bradberry还提供了一整套的例子,用p ...

  8. 不变(Invariant), 协变(Covarinat), 逆变(Contravariant) : 一个程序猿进化的故事

    阿袁工作的第1天: 不变(Invariant), 协变(Covarinat), 逆变(Contravariant)的初次约 阿袁,早!开始工作吧. 阿袁在笔记上写下今天工作清单: 实现一个scala类 ...

  9. 专访雷水果国:离1.5K至18K 一个程序猿5每年的成长之路

    我只是一个小菜鸟,对于自主学习和交流PHP(jquery,linux,lamp,shell,javascript,server)等一系列的知识.小菜鸟创建了一个群.希望光临本博客的人能够进来交流. 寻 ...

随机推荐

  1. Appium Python 二:理论概念理解

    简介 Appium 是一个开源的自动化测试工具,支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合应用. “移动原生应用”是指那些用 iOS 或者 Android SDK 写的 ...

  2. 圆形Camera预览实现

    需求 最近有个需求要求界面上使用圆形相机预览进行面部检测 , 具体需求如下图 关于Camera之前接触得比较多 , 主要就是通过SurfaceView显示预览视图 , 因此需要展示圆形预览界面, 只需 ...

  3. flume hdfs一些简单配置记忆

    ############################################ # producer config ##################################### ...

  4. 用Postfix + Dovecot 搭建的邮件server被垃圾邮件其中转server的处理

    今天发邮件. 发送失败.然后到server上看日志, 发现硬盘被垃圾邮件的缓存队列和日志塞满了. tail    -f    /var/log/maillog   发现疯狂刷屏.部分日志例如以下 : ...

  5. 自己写的一个读取execl的帮助类

    目标:读取execl的第一个sheet,并传入不需要读取的表头的行数,返回该execl里所有数据的list 解析共有2种:1.DOM      2.SAX import java.io.File; i ...

  6. DB2建库简单例子

    --重启数据库 FORCE APPLICATION ALL DB2STOP DB2START --创建数据库 TERRITORY US COLLATE USING SYSTEM ) CONNECT T ...

  7. VS2010没有Intellisense(智能感知)的解决办法

    VS2010没有Intellisense(智能感知)的解决办法 Visual Studio 2010 的Intellisense是依赖于Microsoft SQL Server Compact 3.5 ...

  8. 关于远程访问Oracle数据库的设置(共享数据库)

    写在前面: 需求描述:     我笔记本上安装了oracle数据库, 现在同事也想连接这个数据库. 也就是设置为别人能远程访问我本地的数据库. 思路:     通过在我笔记本WiFi共享,别人连接该W ...

  9. HDUOJ----1114(多重背包)悼念512汶川大地震遇难同胞——珍惜现在,感恩生活

    悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Jav ...

  10. 看似无参却有参-----JS中的函数传参

    事件event JS的事件event是一个非常大的对象,不管是什么事件,事件的详情都会绑定到全局变量event中.这样做之所以安全,就是因为JS是单线程的. <html> <body ...