程序员每天最不希望见到的是什么,除了BUG,估计就是需求了。每当见到新需求,大部分程序员的内心是挣扎的。并不是因为不希望做,而是怕因为需求导致一连串的问题。小编深有体会。 下面是一个实际的案例:
从上面的案例中,在第一次提出产品要进行修改的时候,相信产品人员提出的需求是:请把播放器的逻辑进行调整,播放器被关闭后,下一次都从关闭的那个音频源的最开始进行播放。可能当程序员接到这个需求时,自己也是想不到,这个需求是白做的,做了后面还是要改。这确实是很多程序员郁闷的地方。 但是程序员能否自己把关需求,减少无谓的工作和返工呢?答案一定是能。关键是是否足够的换位思考,找到根本原因。 我们再看一个案例。
为什么我们的需求经常会改,原因有很多。但是很重要的一点,就是因为提出需求的同事,很多时候提出的并不是原始的需求,而是他们认为的解决方案。很多时候程序员就会被绕进去,从一个错误或者并不完善的解决方案中越走越远。 这个需求的目的是什么?这句话看似简单,但是至关重要。找出客户心中的原始想法,然后针对原始需求,定制一个完整的解决方案,可以极大的减少反复的工作,并且通常能增加客户满意度。程序员的工作也会慢慢“舒适”起来。 说白了,也就是换位思考,多理解客户的想法。其实这种情况在工作中出现的几率是很大的。为什么会这样,原因也有多种: 1. 有时候客户会有“不给产品人员添麻烦”这种心理,就在原始想法出来后,自己想一个解决方案,觉得这样需求就显得简单了。而产品人员同样会有这样的心理,不给程序员添麻烦,想把需求简单化。但是其实效果是适得其反的。 2. 人性本质。人越大,越是包装自己的原始想法,这很正常。一个3岁的孩子,口渴了会说:妈妈我要喝水。但是一个30岁的男人去到丈母娘家,口渴了,恐怕就不敢这么直接,可能会说:妈,我听说您这买了上好的茶叶,可以品尝下么? 3. 也不排除一些强势的客户或者产品经理,认为我说的方案就是对的,原始需求只要我知道,我的下游就是给我完成任务的。 4. 小编没想到的种种原因。 程序员并不是流水线工人,更多的是系统的主导者。每天的工作“常规”化,是程序员的大忌。要清晰的知道解决方案和原始需求的区别,当接到需求的时候,搞清楚到底是原始需求还是解决方案,多思考,多沟通,这样一定能规避一些常见的问题。 ——————————————————— |
|