从事软件行业差不多十几年,完成过各种需求,大部分需求在可控的范围,但也有客户提出一些让人哭笑不得需求,经常有人说做个类似微信的app,需要多少人力和资金,一般程序员听到这种话都会有吐血的感觉,如果遇到不懂技术的老板会更加的悲剧了,但这种也不是能避免的事情,程序员更多的一个技术执行者,但现实生活中因为很多人不懂得程序是怎么回事闹出很多让程序员很崩溃的事情。
现在国内的软件环境真正把客户就是上帝发挥到极致,产品交付的时候根本不是当初想象的样子,记得有个项目经理说过一句话,至今还是印象深刻,好的产品都是修改出来的,仔细品味起来怪怪的,目前国内的程序员很多加班时间都是为了这种修改,有些需求根本没有考虑到软件框架的实现,或者根本不给你留下构思的时间。
前端时间发生在平安公司产品经理和程序员大打出手的情况主要原因是产品经理提出一个根据手机壳颜色做出相应变化的功能,这种属于典型的对技术一窍不通的人,为什么会有这么多不合情理的需求?仔细分析主要存在三个原因:
1.压根不懂技术,没有深入调查研究,只是看到表面的现象,毕竟软件在国内发展还没有完全铺开,导致很多人不理解也属于正常,因为软件展示在终端用户只是界面以及一些功能,不调查研究一个app的开发背后可能有成百上千人支撑,如果平台版的app不仅仅是一个看到的界面,背后还有强大的服务器支撑,服务器还涉及安全以及分布式等等功能,这些功能要完全铺开,细节多的惊人。
2.甲方思想,花钱让乙方做项目,功能做成什么样子完全靠是自己说了算,这在商业合同上也说得过去,毕竟乙方作为执行方有义务给甲方提供这些义务。但凡这种项目最后长久不了,毕竟软件开发需要遵守客观规律,无论什么情况下总要尊重技术。
3.表述不清楚。在软件行业会流行这么一句话,如果一个人能把要表达的技术问题搞清楚,距离真正的解决也就不远了,要真正搞懂技术是需要下功夫的,刚入行时间不长的人未必能把一件事搞的非常清晰,何况行外人,所以需要下功夫花时间,这可能就是软件行业另外的一种门槛吧。
作为一个合格的程序员就是把需求用技术合理实现了,保质保量的完成,如何能够在技术基础上,顺便把产品设计模式内涵搞清楚了,那将会有更大的发挥空间。