写在前面:“难怪这帮程序员这样让人瞧不起!做的东西直接反映人品!”
前段时间与公司同事分享过一篇文章叫做《阿里软件资深架构师谈:开发者的人品问题》(http://www.programmer.com.cn/3373/ ),本来目的是引导程序员用心为用户写代码,结果没有起到任何可见的效果。以前开会我反复强调,以用户的角度和身份为用户写代码而不是理所当然的去凭自己感觉瞎写,“把自己的代码当作自己的孩子”,真正的为用户解决问题,少给用户制造麻烦。也不知道开发人员的leader们有没有认真去落实,似乎开发和运维的矛盾与生俱来,自己也不愿意过多的干涉他们的事情。我自己感觉一个优秀的程序员不用别人一直强调代码质量,自己就能从某一点上得到启示不断改进和完善。
做一个有原则性、严格要求自己的程序员。我虽然不是一个专业从事写代码的程序员而是一个Ops,但也以程序员的身份写过许许多多的shell脚本和无法计数的命令行,但几乎很少出错(甚至使用过程中没出过错),为什么?抛开所使用的编程语言的简单和过程化讲原因是在写的过程中我既是coder又是用户,我是在为自己写代码,写完了自己要先用,直接测试,有问题直接解决问题,决不会使用一个有明显可见bug的脚本。
拿bug的必然性逃避自身的问题是坚决不能容忍的!虽然我的php水平还停留在面向过程,不懂得如何使用框架和面向对象进行提高编程效率缩短研发周期,但我深深的明白php coding的简单。凡是程序就有bug,bug在所难免,出现问题并不可怕,可怕的是推卸责任和强调理由,这种态度无法容忍。
开发人员自身要担当起QA的角色。我们虽然是有QA,但说白了那是不会开发甚至不懂开发的QA,她们对QA的理解甚至还没有程序员们了解的透彻,程序员自己写代码从来不进行单元测试么?写出的代码不亲自测试一下吗?更有甚者,开发不建模,不进行产品规划,没有研发方案,没有使用手册,没有升级修订记录,没有bug记录,这听起来多么可怕啊,简直是被一道春雷惊吓了的感觉!相信公司内很多人的软件工程是白学了!
办法总是有的。解决办法不是没有,程序员首先必须清醒认识到问题,端正态度积极解决问题,不要怕别人提出批评,充分发挥自己的主观改进意识完善自我。leader们要积极参与引导工作,做好团队建设,反复强调代码质量的重要性,哪怕是减少功能甚至导致项目滞后也要保证产品的可用性。我们不怕裁员,现在还有近40个研发人员,程序员不合适的裁掉程序员,leader不合适的干掉leader,办法总是有的!
此外程序员也要进行绩效考核,主要一条就要规定根据bug的严重程度要扣除相应的绩效得分,尽管这样很残酷很影响团队和个人情绪,但也是没办法的办法。现在这种产品出错不算什么,既不是金融计算也不是电子商务,但一旦不进行适当引导和约束就不能生产出符合用户需要的产品。
尾记:先前跟QA团队讨论,“你们认为什么是程序设计的第一要素?”当时有一位小姑娘说是“产品的可用性”,最终也没有一个确定的答案,我给的答案是“一切以用户为中心”。不知道大家如何看待此问题,欢迎提出各位自己的看法!PS:我写文章不能像省委书记的秘书一样字字斟酌反复修改,但我也会努力靠近他们的写作水准,甚至努力拥有像省委书记一样的胸怀,各位权当是看笑话了,有不当之处请批评指正!
最后以佛语中我认为最著名最核心的一词结束此文章,谨牢记“因果报应”!