对吗?对的!这个项目对于开发人员C来说确实就是一个“Java项目”,因为他不关心项目的核心领域是医院、物流还是保险,他只关心这个项目能不能提升他的Java技能、对以后的职业生涯有无帮助,所以他把这个项目叫做“Java项目”十分正确。可惜,这是从开发人员的角度看问题,而没有从客户的角度看问题。并不只是刚参加工作的Java程序员会这样回答,有一次,我问一位有将近十年开发工作经验的架构师最近做什么项目,架构师回答:在做一个数据仓库项目。继续聊下去,我才知道其实他做的是某通信公司的客户关系管理系统,里面用到了数据仓库,而数据仓库的知识恰好是他比较缺乏而且感兴趣学习的,所以他干脆把这个项目称为“数据仓库项目”了!
开发人员D喜欢钻研“底层”,明明分配给他的工作是编写一段计费的C#代码,他偏偏要花时间深入研究到编译器、操作系统甚至硬件,而且确实也搞清楚了一些门道。虽然工作是耽搁了,但D获得了“勤奋好钻研”的名声。
其实软件开发还有另一个更值得钻研的“底层”:怎样才能使这段代码更容易维护和扩展?这段代码达到的功能和性能对涉众意味着什么?……过分热衷于钻研“底层”,我认为这样的行为更像是偷懒而不是勤奋,毕竟比起离开电脑去搞清楚质管部和生产部之间有什么利益上的冲突,研究MSIL的语法要容易得多、愉快得多。我们不要忘记,能带来利润的是另一个更深不可测的“底层”——藏在涉众心底里的各种希望和担心。
▲两个底层