软件质量小谈

最近学习的东西好多好多,毕业这么多年来,为数不多的集中学习的时期,很忙但很充实: 抽空认认真真总结后,和大家共勉。

计划好每周一篇博客的,除了国庆节,自己给自己放假了,不写还挺难受的–违背自己的初衷呢。

针对软件质量这个大的话题写点东西,刚好几天前和同事聊天:“你这么大了,工作这么多年了,还犯这么严重的错误”

(c.TCH_TRAFFIC<0.25 or c.TCH_TRAFFIC=0.3)

“这是你写的sql中用的条件”

“真够可以的”

“还好意思笑”

“还以为你写的代码能可靠一点”

“原来也糊弄人呢”

“这要让张总看到,能说你一年”

做过软件开发的都知道,没有谁自己主观去写这种类似的bug,即作为程序员的个体是“无辜的”,但是从后果上看,发现的自然要严重的处理的,该扣绩效扣绩效,该打板子打板子,没有啥说的, SVN提交的,人赃俱获,故服。

我这几年在思考的是,为什么敏捷、TDD、结对编程能大行其道,而不是依赖1、2个高级软件工程师:自己设计、自己编码、自己测试,依靠所谓的责任心把软件质量踏踏实实的搞起来。

透明、阳光、过程受控能使得团队动起来,配合起来,各司其职,减少某人、某事、某时的错误,即用团队机制把软件质量提升起来,这个是我一直要思考的话题,还需要多多的努力呢。

数字趣谈四年成长历程–OSS系统研发

风华正茂的四年,一晃而过,

转眼间又到5月20号了。 其间,成长颇多,有业务方面的、技能方面的、也有管理心得,总之成功的从人生的30岁这个坎上迈了过来,下面用一组数字趣谈:

l -60%: 当初面试我面试官先后有5人,目前名字在册的剩2人。

l -100%: 当时部门坐落在美丽的北京西山脚下,一进门有一缸“宝莲灯”鱼,很漂亮,去年去京发现鱼缸已经水干很久了。

l -100%: 2009年5月份公司股票15元左右,2013年5月份股票7元左右。

l 150%: 家庭人口增加,刚入职尚是新婚燕尔,目前儿子已经2.5岁了。

l 200%: 当时base在北京,目前包括西安和北京2个地方。

l 200%: 从了解TD-SCDMA、GSM无线业务,到现在扩大到WCDMA、CDMA EVDO

l 300%: 刚入职数据库不太了解,目前能用Oracle、Informix、Sybase做点东西。

l 400%: 当时.net应用层仅有一个组,目前已经扩展为4个组并行了,全电信运营商。

l 500%: 入职时,干部只有一名,目前有5名认证干部。

l 600%: 出差走过的城市:哈尔滨、石家庄、西安、太原、长沙、合肥。

再说2个最吧:

l 最引以为耻的:2009年的A***项目,单机版,到底是用文件数据库还是采用单机版数据库,5人评审,4:1(单机版数据库 : 文件数据库),因为我刚入职1个多月势单力薄,文件数据库方案被无情的pass掉了。 而4年后看,因为采用了单机版数据库方案导致用户在安装阶段是重灾区,而我作为一个曾经的实践着感到耻辱。

l 最引以为豪的:2011年回到西安,东拼西凑了西安规模的10个人的开发团队。据不完全反馈,曾经的同事们说“你们西安的这批人都还行”。 且,自从转正后,截至发blog为止没有一人离职,创造了小组开发团队人员稳定的新里程碑。

研发小论之编码和文档视角

最近半年写的文档多一些,而前几年的工作主要是写代码和文档,从出发视角、受众范围等有些不一样,仅以自己的实际工作经历进行一点点思考,以供大家赏析: 1 出发视角: 1.1 文档视角 交流和沟通用,即是给人看的,所以主观上说视角较宽,形式可以为Word、PPT、Excel等,你不用受制于if-else逻辑思路,可天马行空的思考和发散。 重要:需要先做大纲和文档的规划,我说的不是写小说、散文,是指的计算机软件相关的规范、设计、计划等文档。 1.2 代码视角 给机器用,对编程很懂的人,看到你的东西就能理解思路和目标,但总体来说写代码思路比较受限,必须了解一门语言的特性,并把你要的业务转换为你理解的东西,再用代码实现出来,业务术语用英文单词或者简写写出来。 同时,由于大部分写代码没有经过严格的训练,代码质量参差不齐,如变量的命名有的人竟然非常乐于x,y,aa,bb,cc等单词,导致阅读的人痛不欲生。 2 受众范围 2.1 文档范围: 人员较多: 至少超过你自己,一般是小组内部,产品组内; 少数的是组间、产品组间; 极少的可在公司之间传播; 可通过邮件、SVN、版本号来管理。一般需要评审而定稿。 因为使用的人较多,故“众口难调”,考虑的东西也往往较宽。 2.2 代码范围: 影响力非常弱。以我自己的经历看,我写的90%的代码是给机器写的,偶尔才会自己回头看,而其他人看的概率非常低; 一是因为SVN源码管控权限,另外一个是因为看代码的意义不明确。往往用心去看别人写代码的人很少,但是一旦有这种习惯,则写代码的个人能力提升非常快。我所指的不是抄袭,是编程习惯的学习、编程思想。 以上就研发过程中的文档和视角简单说了一下。 一般来说,在我所经历的公司,学代码的程序员群体,写文档的非常少,或者仅有极个别会去写、填写规范模板规范,一般通过补的办法达到不扣分。 写文档的需求、业务人员,极少有机会动代码。 早些年,年少太轻狂,看古装剧太多了,把写文档誉为文臣,把写代码的誉为武将; “鬼子是用真刀真枪打倒的,不是写2~3个狗屁文档能消灭的”。觉的写文档没有啥子用,我代码都写不过过来,还要求写文档。“并把文档工作贬为繁文缛节,不肯屈伸事之。“ 而后过了几年,随着日渐增多的积累,越发觉得写文档也是一项相当重要的工作。文档和代码,对于提高团队协作能力和个人深入思考帮助非常大: 要接受新东西、新思维、新想法。。。

当懂得用另外一种视角的人的想法去考虑同样的问题,  我发现这很美。