技术能干什么
这是这篇文章的第一个问题,你觉得技术能干什么?
维基百科对技术的定义是,技术是指人类对机器、硬件或人造器皿的运用,但它也可以包含更宽广的运用。那么,如何种水稻、如何制作农耕器具、如何照明、如何通信、如何上网、如何开发一个App都算作技术。而人类在进化史中不断创造技术,就是为了更好的生存。所以,技术能干什么?技术能创造价值。技术能带来生产效率的提高。当你每天浪费大量时间在做低效率的事,算是一个合格的技术人员吗?不着急下定论,我们接着聊。
你是代码机器嘛
这个这篇文章的第二个问题,你是代码机器吗?
当你在用高级语言一行一行编织你的应用时,你能确定的告诉我这些代码可以产生更高效的价值吗?当然这个可以从两个方面来评估。
一是你在做真正有价值的需求。比如微信的二维码扫描加好友,将加好友的操作缩减到两步,给用户节省了极大的时间。这是有价值的需求。
但支付宝内的聊天功能,真的有点鸡肋。我们使用支付宝是把他当做支付工具,聊天的话还是优选QQ跟微信。这是待评估的需求。支付宝完全可以根据用户使用次数统计改善甚至删除聊天功能。当然这个例子有点极端了,因为这涉及到公司战略问题了,恐怕不是简单下线就下线的。当产品提出一个需求是,你是完全接受呢?还是会考虑产品现有的定位而跟产品探讨是否有开发的必要呢?如果你完全接受,那么可能这个产品下周迭代就下线了,所以你辛辛苦苦写的代码就白费了。这种就是代码机器。可能每天都在费劲写代码,但是做出来的东西跟代码质量却没有多大的提升。
二是明明是很好的需求,但是你的实现方式很差劲,case通过率较低,那么你的工作质量决定了你的产出没有多大价值。
以上,你应该能回答出我的问题了。当你也跟我一样对自己的工作质量产生疑惑,不妨想下,除了闷头写代码,我们还能做什么?
做一个完美主义患者
希望在工作中,人人都是完美主义患者。
为什么这么说呢?完美主义患者会很注意细节的处理,打败对手的也许就是你的细致,打动用户的也许就是你的细心。不单单是产品经理,开发、测试、UI都可以是。所以说,作为开发,我们不能选择只做代码机器。
我希望我们做的每一个需求,都是为了更好的用户体验,工具类应用就要提升更多的用户效率。无论你是什么角色,其实目的都是一致的,只是你办事的方法不同。产品要提出更加深思熟虑、详细的需求,开发要设计最稳定、易扩展、低漏洞的开发架构,测试要准备更详尽的case, UI要设计最简洁、易交互的界面设计。当一个需求是大家工作的起点时,这个需求就要被打磨的越来越精细才好。 只有这样,大家才不会把时间浪费在无用的工作上。今天提了一个需求,没考虑充分,下个迭代下线了;这个功能用的人不足10%,写了这么多代码白费了。。。等等,想下,你开发的产品有这样的问题吗?但,作为一个开发,如果能多思考一下,觉得这个需求有点突兀,就希望PM给出比较充分的理由,或者商量这期先做一个小样,统计下用户使用情况再决定是否值得后续的开发。有人觉得开发操着产品的心有点越界了。不是啊,做一个优质的需求胜过做十个可有可无、欠缺考虑的需求,这是双赢。再重申一遍,技术是用来创造价值的,我们不是代码机器。当你抱怨工程越来越臃肿,架构越来越混乱,crash越来越多时,除了反思功能代码质量,也请想下自己是不是在扮演代码机器呢?
当全部人都在做加法的时候,这个App体量会越来越大。当你发现到了不得不改变的时候,或许,已经晚了。何不从每次需求评审开始,做一个完美主义患者。
争吵但请不要互相伤害
讨论需求,各执己见,就容易越说越激动。但是,请控制好个人情绪,不要进行人身攻击或者羞辱。辩论会越变越明,但是我们不是要分出胜负啊,必要时也要学会妥协或者采用更加温和、理性的方式讲述自己的顾忌,毕竟都是一个team,还是要一起做事。互相尊重对方的工作是基础。有效的沟通是手段。工作不仅要看智商,更要看情商。恩,我们要互相关爱,不要互相伤害。
尊重别人的选择
过了几天,跟朋友聊起完美主义的事,发现自己有点天真了。你想做完美主义,这是你的选择。但是有人不想做啊,这也是他们的选择。如果,你急于把一件事做完美,而别别人增加了额外的工作量,那么,你的完美主义在别人眼里,就是“多事”。而且无形之中会给别人压力,因为工作嘛,你能想到的idea别人却没有想到,那么别人心里就会有压力啊。所以,当你的完美主义遇到现实主义,需要你多动些脑筋了。完全放弃自我也不对,完全坚持自我也不对。能做的,就是两个字,克制!尽量把自己的想法压缩在大家都能接受而且不会产生反感的基础上。做好事很重要,但,照顾到身边人情绪,也很重要。请尊重别人的选择。
有不同见解的欢迎留言~
Echo
25, Oct, 2016