昨天(2021.03.03)微信刷新闻,看了一篇文章,关于《软件开发为什么还是这么难》,有点感触,这里给伙伴们唠叨几句。
文中说现代的编程语言已经进化的很优秀了,按理说软件开发应该没有从前那么难了,但是为什么现在的软件开发依然很难呢,列举了很多观点,有一个观点我非常赞同,那就是写程序的人,很重要。
写代码和很多艺术行为一样,具有不可复制性,发散性,不具有实体观察性等特点,并且评判标准不定,比如同样是画画,大师画一幅作品,灵感来了,一天可能就完工了,没有灵感时,一年也不一定画的出来。
可是写程序,就没有这么好的大众认知度了,如果你是一名自由职业的程序员,也许时间自由度上好一些,可以比较自由的写代码,有空余时间去思考如何优化你的代码和逻辑,但是如果很不幸,你就是一个普通的在职员工,每天被公司各种KPI考核,试问会有时间和精力去完美你的代码和逻辑吗?
这里就引申出更深一层的观点了。
那就是程序员的自我驱动力问题。
一个人具有了良好的内在驱动力,他不管在什么工作状态下,是公司打工,还是自由职业,都会抽出时间去内化自己的本领,会不断提升技术水平,对于解决问题的思路也会更发散,主动的去优化代码,从而在有限的时间内完成一个比较完美的代码作品。
可是现实很打脸,大部分程序员不会这么做,目前整个程序员行业鱼龙混杂,有的人就是冲着高薪和舒适的工作环境,才加入编程这个行业的。
有些人写的代码,惨不忍睹,不思进取(当然我不是想说自己有多优秀啊),公司上班时各种摸鱼,完成项目时东拼西凑,从来不考虑用户的使用体验感,在外加上很多外行管理者,瞎指挥,乱管理,最后的结果就是一个项目设计时,一个样子,完工时,另一个样子。
用户使用不舒服,维护人员也痛苦,永远是处于底层和前线的人,最受伤害。而那些高高在上的,远离开发的领导者们却光鲜靓丽,坐享其成,而后夸夸其谈,威名四方。
说回我的观点,人是一种变化多端的物种,其随意性很大,一个项目有100个人,就会有100个观点和想法,如果不能够用规范化的制度,和强有力的执行,是很难保证项目如期完工的。大到项目的整体设计,小到编码规范等,都是需要白纸黑字的明确出来,然后通过不断的规范改进,从而达到开发团队心往一处想,劲往一处使,开发出来的产品才是合格,好用的,才有可能成为精品。
软件开发和房地产开发相似程度最高,为什么地产开发就可以很规范,而软件开发就如此随意呢?也许是地产开发,是实体,是看得见摸得着的,从而经过多少年进化后,形成了一整套完备的模式。而代码编写,是虚拟的,是封装起来的,看不见摸不着,只能够从表象上去评判,所以就造成了编程语言众多、开发工具众多、框架众多、产品众多,总之一句话,就是乱。
语言分支多了,程序员掌握就需要很多时间,成本高;企业开发选择多了,内部沟通也就多了,简单问题就变成复杂问题,成本也高;所以软件开发还是很难。