一个上位机项目做了两年多,甲方是真能忍!那么,是这个上位机项目比较难做吗?其实不是的,而是做这个上位机项目的人没有编程功底,之所以做两年多,只能慢慢磨,一边学习编程知识一边做这个项目,得知这个事情后,我直竖大拇指:“甲方是真能忍!”
朋友公司的一个员工最近离职了,留下来一个烂摊子,据说这个员工本来是做PLC的,公司主要从事设备开发业务,一般软件项目都是外包出去的。可是,在两年前,公司的甲方突然要求公司帮他们在原先的上位机系统上再开发一套中间件上位机系统。
朋友本来准备拒绝,但是甲方说之所以让他们开发,是因为这套系统牵扯的东西很多,走外包,甲方不放心,并且,因为这套系统只有朋友公司熟,所以也只能朋友公司能做。
甲方既然那么信任朋友,朋友只能答应下来,但是,朋友又不想多招个人导致有额外的开支,所以,就问公司里面几个PLC程序员,问他们能不能学学上位机开发。
此时,朋友公司的员工老A站出来,说他正想学上位机开发,可以把这件事情交给他来做。
朋友看老A能够站出来揽下这份责任,当然很开心,然后就问老A大搞需要多久能搞定,老A因为没有上位机开发基础,也拿不定时间,但是复盘了下开发需求,觉得自己差不多两个月能搞定。
朋友特地去问了一些专业从事上位机开发的人,觉得这个需求最多一个月就可以搞定,老A说自己要两个月,也是比较合理的,所以就拍了板,把这个开发需求交给了老A。
但是,谁知道,原本老A承诺的两个月,最后搞了两年多,最近才上线!老A也被这个项目搞得心力交瘁,提了离职,到底怎么搞得呢?
原来,这个上位机程序看起来简单,但是实际上涉及到很多图形界面、图形绘制、还有各种复杂的算法。
本身这个上位机软件即使是专业从事上位机开发的程序员,开发起来都比较吃力,更何况是像老A这样没有一点上位机编程基础的PLC程序员了!
就这样,一个图形界面搞一个月,另外一个图形绘制搞两个月,研究A算法又搞一个月,研究B算法又搞一个月,就这样,时间慢慢就堆到了两年多!
最近,老A总算实现了甲方要求的所有功能,但是此时的老A已经不像当初刚刚接触这个项目那样对这个项目抱有一边学习一边开发的态度了。
两年时间,一个事情做不成,足够把一个人的耐心给磨没了,所以,即使老A完成了这个项目,但是他干得他是心力交瘁,实在不想再面对这个项目了,所以就干脆辞职了!
老A辞职以后,换朋友着急了,因为老A花两年做完了这个项目,一旦他走了,这个项目就又没有人维护了,于是,朋友想把这个项目交给我,让我好好把老A的代码捋捋,因为他知道,老A的编程水平不咋样,相信写出来的代码肯定不好维护。
我拿到老A写的代码,果然和朋友想的那样,老A的代码写得非常凌乱,大量代码都是互相套着写出来的,重复性的代码写了很多。
但是,这也不奇怪,老A毕竟不是专业的上位机程序员,而且是PLC开发出身,写的代码有点逐过程的意思,因此也不知道把一些重复性的工作进行封装。
但是,老A其实已经很厉害了,因为代码里面涉及到很多复杂的图形处理和一些数据处理的算法,对于一个非专业程序员,能写出来已经很厉害了!
夸完老A,我好奇地问了下朋友,他是怎么让他的甲方能忍住两年去让他们开发这个项目而不发火的。
朋友无奈得跟我解释,他们(甲方)也是没有办法,因为甲方用的设备,除了设备开发商,只有我朋友是知根知底的,里面牵扯到上千个零部件,一般公司根本接不了这个项目。
再者,如果让设备开发商去开发这个项目,那么开发费用也不低,如果去找其他第三方的外包公司,一来外包公司熟悉这套设备需要时间,二来,如果外包公司如果因为不熟悉设备,会有生产风险。即使是有外包公司能够避免这种风险,那么熟悉这套设备的底层运行逻辑,没有三五个月也是不行的。
所以,综合考虑,虽然朋友的公司不具备开发这个项目的能力,但是,甲方只能选择朋友的公司。
但是,老A开发这个项目的时间毕竟也太长了,我大概看了下老A写的整套代码,其实如果写这套软件的人足够专业,其实真的只要一个月就可以了,比如我!(有点自夸,但的确是这样)
结语
我觉得,朋友公司的甲方之所以能够容忍一个上位机项目做两年才交付,其实道理很简单,因为这边上位机程序本来就是一个中间程序,即使有,也只是锦上添花,没有,也不会影响他们设备的正常生产。
另外,从各项成本上去考虑,反正老A已经做了那么久了,中间如果换别人开发,一样是要耗时间,所以,只能指望老A了。
但这里面最惨的还是老A,一个项目把自己的自信心和耐心给干没了!