做开发两年以来的一点思考

原创
2014/10/30 22:28
阅读数 4K

         今年一直比较忙,8月份稍微松了一点,但是随后又开始忙起来,虽然工作繁忙,但是有时候不免会陷入思考和反思的流(stream)中。最近半年以来(一直 到现在),经过一些师长的教导以及对遇到开发上的问题思考,再加上对以前一些老师说过的话的反思,我对产品和项目略有一点想法,或许会被高手和过来人贻笑 大方,但至少是自己的一些真知灼见,在这里略作探讨。
        今年是2014年,我是2012年的差不多这个时候进入公司实习的,过完年(2013年春)转正的。算起来也有两年了,在2013年刚开始开发 Zigbee网络分析系统这个项目的时候,我是个刚入门的C#winform程序员,没什么想法,也不会什么东西,只是了解一些基本的C# 语法,很多东西都接触过,但是仅次于知道有这么回事而已。记得这个项目开发了一个初级版本的时候,主界面显示了一些Zigbee包结构,还有一些大致分析 出来的Zigbee网络节点,其中有个功能,叫假冒节点(假冒一个网络节点通信),我做了一个界面,显示的是下拉列表让用户选择节点地址,还有一些普通用户根 本看不懂的东西,然后我做的这个功能执行完什么信息都没反馈,虽然我知道功能被执行了,但是执行成功和失败也没多少明显的提示和反馈。就在这个时候公司需 要在北京物联网大会演示这个项目,我只是改了一些明显的bug,然后公司带着这个系统去了北京。回来之后我被我的老师(是上司,但是比老师还老师)训了。 他说了一句话:”你看看自己做的这是什么,我们做的东西,将来是要给人用的“。简单的一句话,我当时很不以为然,不就是用么。当时,我和读到这个句话也没 明白的人的思想是相同的,上面的故事不是重点,重点是后面那句话,接下来看看我最近几个月开发中的一些事情。
       今年的开发中,有个项目我糊涂了很久,负责项目的上司(也是我的一位老师),曾经多次批评过我,他是这么说的:”这项目交付,应该让XX(我)去,你拿着 自己做的东西去面对客户,让你感受一下售前(应该是售前吧,我没记清这个)的难处,你以后写程序就用心了“,当他说这个的时候,我还在因为自己不是售前而 沾沾自喜。然而,在开发快完的时候的一天晚上(那些时候很忙,回去的晚,有时会通宵加班),久久不能入睡,因为我在思考这个项目,佛家提倡顿悟,就在快开 发完的时候我顿悟了,想通了整个项目结构,越想越兴奋,基本没睡。这不是重点,重点是我明白这个项目之后,接下来我对我和同事忙了半个月赶出来的东西的失 望。在我想通之后的第二天,有客户来参观,我要提前调好给人看,但是就在这个时候亮点出现了,这个系统的控制智能家居的开关灯按钮一点就程序奔溃了,而且 上面的大多功能都不能用,看都不能看,因为有些界面一点开会弹出很多MessageBox,关一个会又弹出一个,没完没了。这个时候我虽然很失望和生气, 但是我还是没有深刻认识到这件事情,因为当时我还认为,这是因为项目做完之后没有测试和修改的原因。
         古语云,以人为镜可以明得失,接下来的这个故事,引起了我的思考。最近有一个同事写的程序,我能看懂,但是正因为能看懂,所以感觉写的一坨一坨的,当他把 自己写的一坨一坨的程序给我,让我写完的时候,我花了两天时间弄好了,你可能在想我是不是重构了,但是我没有,我改好之后给了他,说真的,我改的很痛苦。 由于下位机改协议,所以程序要调整,由于他没有看或者也是认为我写的烂吧,他给弄了个乱七八糟,然后又问我怎么改,正当我还没问明白改那的时候,他以一种 傲慢和不屑的态度对我说,走吧走吧,我自己重写。这……我当时就爆发了,我花了两天,旅游都没去写的东西,正在我沾沾自喜的时候被人这样一顿冷水。我怎么 能接受?但是,这件事刺激了我,当我在静下来思考我和他写的程序的时候,我突然想起了以前两位老师的话,我们做的东西是要给人用的,我们拿了人家的钱,项 目交付的时候要给人一个交代,我们不能把交付项目的同事抵押在客户那里就不管了。
         说了这么多,或许还是有很多人不以为然,前面我都用”项目“两个字,接下来我们要思考”产品“这个词语,项目和产品有什么区别?曾经读过梁肇新(中国第一 代著名程序员,中国的软件行业曾经经历过一个”个人英雄雄起“的时代)先生的《编程高手箴言》中曾经说过一些话,大致意思是做产品的程序员大多不会吃青春 饭,只有做项目的或者做的连项目都算不上的程序员才吃青春饭,或许有点言过其实,但是作为一个程序员,我认为做产品和做项目绝对不是一个层次,虽然项目也 是给人用的,但是绝对没有一个给很多人用的产品那样精致入微。就拿我的第一个故事来说,那个界面显示的东西用户根本看不懂,当点击运行时,谁知道这程序有 没有运行,就拿整个界面来说,根本没人知道这个功能干了些啥,更别提界面好看和功能稳定了。经过最近的思考,我真正理解了,作为产品是要给人用的这句话, 人家是付过钱的,钱都是血汗挣来的,试问谁愿意花钱买一个到处都是Bug,不能正常运行或时好时坏的软件?何况大项目都很值钱动轴几百万上千万,我们这样 的态度怎么能做出可靠的软件给人用?当我看到一些老师他们即使很小的事情,都会当做一件很重要的事情一样认真仔细的时候。我不仅在想这种态度或许就是一种 做产品的态度吧。据说德国的东西质量很好,尤其是以前德意志时期,在中国建造的一些东西百年不坏。这两年有个手机叫魅族,据说魅族的掌门人有乔布斯一样极 致的做手机或做事的态度。我感觉以后做事情就应该有做产品一样的精神,凡事要做到极致,或许做不到太多功能,但是做了的功能至少是必须稳定,怎么折腾都不 会出问题,只要用户没关它,它就能永不死机。当然,做到这个程度很难,但是不管难不难、能不能做到,我们都必须朝这个方向努力。当你经过严密的思考,精心 做出东西来,Bug虽然会有,但是会少很多很多,然后经过严格的测试,再次完善。这个时候心里会产生一种很放心和满足的感觉,再也不用像以前一样,每到交 付时,心里放不下,吃不好饭,睡不好觉,更不会睡到半夜被叫回公司调程序。当销售人员拿着系统给客户演示的时候,我们可以很放心的给他们,不会担心出了问 题丢人现眼。谨以此文作为最近几个月思考的总结,希望以后做事时时提醒自己做到完美极致,程序稳定且永不司机。。。

                                                                                                                                                           2014年10月30日晚手打

展开阅读全文
加载中
点击加入讨论🔥(22) 发布并加入讨论🔥
22 评论
41 收藏
3
分享
返回顶部
顶部