最近有幸参与了一个千人的大项目,深刻感受到了项目中存在的一些问题,做如下的记录。也希望大家能够讨论一下自己项目中面临的问题以及更好的解决问题方法。

1,测试用例的编写没有得到足够的重视

测试用例包括FT,UT以及ST。FT和UT都是有开发人员来进行编写的,ST由测试人员来进行编写测试。当然由于项目中实行的是敏捷管理方式,每个团队还包含了专职的QA来进行初步的ST测试。但是团队中的测试更多的是聚焦于功能方面的,所有上述工作完成之后,代码合入受控版本,会交由测试部门再进行测试,包括,功能,性能,可靠性,稳定性等方面,测试更加的细致。由于我所在的是开发部门,更多的体会是FT以及UT方面。首先测试工具是基于google的开源测试框架打造的,结合项目的具体特点,封装成为符合项目开发人员习惯理解方式来进行FT的编写。但实际开发过程中开发人员没有认真编写测试用例,开发者似乎更加更加热衷于实现某一个功能。造成这种现象的原因很多,例如管理方面,从上至下没有把UT,FT放在一个非常重要的位置,开发者往往只是为了FT和UT的覆盖率要求编写用例,为了赶进度,实现某个特性忽视了FT。这样就使得功能测试并不完备,为了凑覆盖率而编写和而不是验证某个功能去编写。有些问题隐藏的很深,FT能够方便的发现,ST则未必。我觉得FT的用例应该结合方案进较为详细的设计,测试用例至少要和功能开发发上同等的时间,甚至更多,因此TDD其实是一种很好的方法。

2,代码强推操作

项目中使用gerrit进行代码评审的工作,底层的版本控制是基于git的。当然git作为时下最为流行的版本控制系统,使用起来还是非常的方便的。本篇不是分析gerrit的优缺点,而是觉得即使最好的工具,如果在执行的过程中,不能够有效的控制人为的因素,那么对于版本的控制管理,也将是极为失败。因为在项目开发过程中发现,总有人会有强推代码的需求,即不通过CI上的各种验证流程,直接将代码入库。虽然这种强推的权限只是掌握在极少数的手中,但事实上强推的人总能够找到各种各样的理由,因此会不断的有强推。那么产生的问题也是显而易见的。首先,最严重的就是可能导致CI编译出现问题,对于大项目来说,这会影响很多人,因为这种级别的项目每天的CI执行会非常的频繁;其次,强推规避了pclint,覆盖率,复杂度,kw等各种检查流程。以pclint为例,强推代码中如果出现pclint问题,将会在下一次同样修改该文件的commit中暴露出来,这会增加下一次commit提交人的工作量,对于他也是不公平的,而且容易滋生怨言;还有就是破窗理论所述的那样,这种行为如果管理层不明确的进行约束和制止,会导致越来越多的人效仿,这将是一个严重的恶性循环。

3,代码走查问题

其实这个问题主要是走查人的问题,走查人对于代码质量的一个态度直接决定了版本库中代码的质量。实际的执行过程中发现,代码走查流于形式主义。走查代码最基本的是功能流程方面,这个一般人多的情况下都会考虑的比较周全,但是关于代码本身,例如变量的初始化,命名,可读性,注释,一些异常的统计等关注较少,即使注意到了,往往碍于同事之间的面子,也都同意入库了。我觉得代码走查的环节还是很重要的,因为通过我们不断的对于代码细节的推敲,库中所呈现的代码也是优秀的,这也会直接对后续的开发者产生积极的影响,因此不要轻易的code review +2,事实上在这个方面我也挺纠结。现实中我所看到的就是混乱不堪的代码导致后续的维护人员继续生产劣质的代码,又是破窗理论的再次验证。

4,人员素质参差不齐,测试返工憋成内伤

当管理者意识到可能在项目的截止日期前无法完成项目的时候,会做什么。其实你可能也会有体会,就是增加人力,加班等等,我就是在这种情况下加入项目的,这在我国的软件行业真是屡见不鲜了。无论是通过招聘还是不同部门之间的借调增加的人手都会存在这样一个问题,就是对于项目的业务不是很熟悉。同时每个人的专业知识,人员素质参差不齐。我当时参与的是一个具有庞大业务场景的软件,需要非常专业的业务知识。但是对于我这样参与进来的新人来说,仅仅经过两三周的培训,就投入了项目的开发之中。姑且不论代码质量,可能有的业务场景考虑的就不全面。因此在这种情况下生产的代码可想而知。已经被证明的是,后期产生的bug导致的不断修改所按入的人力非常的恐怖。而且代码质量真的会严重影响优秀程序员的身心健康。

5,真正开发者不需要那么多

如果领导按照他的想法安排了很多人,我倒是同意有的人的观点就是,只让少部分的人有提交代码的权限。其他身下剩下的人可以安排一些其他的工作,比如结对编程,一方面带带新人,做一下备份;另一方面也能够帮助开发者提提意见,毕竟旁观者清。还有的人可以去设辅助计ST的用例,编写一些说明手册等。因为当能够提交代码权限的人变多的时候,代码的质量是得不到保证的,这一点在4中已经验证。

6,部门团队间相互扯皮的情况多

当项目人员变多之后,尤其是跨部门的项目,相互之间推委责任的情况时有发生。因为每个人,每个部门都有考核,考核的依据可能就是每个人和部门引入的故障数量。因此呢,当出现问题的时候,每个人想到的不是如何解决问题,而是先尽可能的甩锅。其实把皮球被踢来踢去的过程的时间可能大于问题解决的时间。因此项目如何在制度上让员工在出现问题的时候第一时间想的是去解决问题还是蛮关键的。其实在公司工作这几年,我的感受是没有人愿意主动引入故障,都是希望项目能够顺利进行下去,因此以故障数量作为考核并不明智。还有就是测试部门和开发部门的长期对立。测试部以发现故障的数量为考核目标,这激励了测试人员去发现问题。但是由于在实际的执行过程中,测试部发现问题后并没有和特性开发人员进行充分的沟通,直接把现象扔过来,让开发人员去定位,有的时候可能是测试人员对于特性了解不充分,有的时候可能是别的特性引起的,开发人员的时间也是宝贵的,久而久之也会引起开发人员的反感。因此如何协调开发人员和测试人员的关系呢。

7,团队的氛围很重要

大的项目也是由一个个小的团队组成的,破窗理论前面已经验证了团队氛围的重要性,为了避免恶性的循环。团队的Leader是非常重要的。所谓兵熊熊一个,将熊熊一窝。首先团队的Leader要做到公平,能够准确的识别每个人的贡献,而不是加班时间。其次在一些小问题上,Leader要带头整改,树立团队人员的责任心。如果得过且过,然后发现问题也不想改正,小问题的不断积累最终成为大问题。最后,团队的Leader还是要多和团队成员交流,了解彼此之间的诉求和想法。

其实每个项目都会有这样或者那样的问题,这个时候管理者就会很关键。真正的发现问题并且思考解决问题其实值得每一个项目管理者重视。为了赶进度就增加人力,加班,强推代码也许暂时为自己推脱了责任,即使完成不了也可以和上层交代,但是于项目长远来说则是后患无穷。

本文为CSDN村中少年原创文章,转载记得加上小尾巴偶,博主链接这里。

记一次千人大项目的感受相关推荐

  1. 参与过上千亿项目的人,账单是何等的惊人?

    又到年底了,各种年度账单蜂拥而至,我打开自己的支付宝年度账单,发现自己有幸成为参与过上千亿项目的人!大家也都开始拿它说事:账单式小康:我们每个人都壕过! 账单比年薪高? 请查收这份大型尴尬 有图有真相 ...

  2. 如何实现情感分析在舆情场景下的千人千面效果——情感分析在舆情中的研发实践(上)

    编者按 文本情感分析是对带有主观感情色彩的文本进行分析.处理.归纳和推理的过程.互联网上每时每刻都会产生大量文本,这其中也包含大量的用户直接参与的.对人.事.物的主观评价信息,比如微博.论坛.汽车.购 ...

  3. 深圳弘辽科技电商拼多多花式“直播卖房”,千人成团“拼房”

    原标题<深圳弘辽科技电商拼多多花式"直播卖房",千人成团"拼房"> 下沉市场一直是拼多多瞄准的用户群体,低价也是拼多多的"代名词" ...

  4. 华为某部门裁员千人,任正非痛批:“这种领导鼠目寸光“,称职的CFO随时可以接任CEO!...

    点击"开发者技术前线",选择"星标????" 在看|星标|留言,  真爱 作者:任正非.咔 嚓: 来源:蓝血研究 回复"666",获取一份专 ...

  5. 亚马逊千人评分4.6分,用小说的方式解锁开发难题!

    这不是以小胜大的故事,而是以快胜慢的故事.独角兽项目向她证明,伟大可以被扼杀,但也可以被修复. 2013年,一部名为<凤凰项目>的IT励志小说横空出世,并迅速成为现象级作品,全球销量超过5 ...

  6. 阿里立秋:AI千人千面,淘宝如何做智能化UI测试?

    阿里QA导读:伴随智能UI的发展,淘宝大促会场已支持AI千人千面的解决方案.但智能UI模块样式庞大的数量级面前,传统的手工测试显得十分的力不从心,单纯地堆积人力已然无法解决问题,我们该如何应对新的挑战 ...

  7. 千人千面之3D立体个人数据营销

    目的 解决懒人买衣服难得问题. 3D立体成像技术是否成熟 根据现实中的我如何建立一个虚拟立体的我 ? 这个有什么技术可以实现吗 ?这个应该就是把现在流行的3D立体打印进行逆向处理,完成数据采集. 真人 ...

  8. 王大珩追悼会举行 上千人雨中送别“光学之父”

    2011年07月29日 16:08    来源:中国新闻网 今天上午8时30分,"中国光学之父"."两弹一星元勋"王大珩院士的追悼会在八宝山殡仪馆大礼堂举行.近 ...

  9. 【大数据千人会微信群20140827期交流纪要】傅志华-大数据如何在企业落地

    [大数据千人会微信群分享]20140827期:傅志华-大数据如何在企业落地 中国互联网协会大数据工作委员会(筹)推出"大数据千人会"论坛,每周三晚8点30分开始,在"中国 ...

  10. DevOps《凤凰项目》实战沙盘演练将亮相光环中国·2017敏捷千人峰会

    中国敏捷行业规模最大的高端盛会--"光环中国·2017敏捷千人峰会"将于11月25日在北京世纪金源大饭店隆重举行.由欧洲著名沙盘游戏研发机构Gaming Works的创始人Jan ...

最新文章

  1. 2015/4/24~GET方式和POST方式传值大小的限制
  2. python list超出范围_使用lxmldjango/python-list索引超出范围
  3. Centos6.5搭建bugzilla
  4. 教徒计划出品:升级ESXI41-ESXI5
  5. java修改默认字符编码_设置默认的Java字符编码?
  6. 招聘贴---这个很重要嘛
  7. 直接拿来用!GitHub 标星 5000+,学生党学编程有这份资料就够了
  8. Linux系统 UDP 丢包问题分析思路和修改网卡缓存
  9. 地震matlab频域分析,基于matlab的地震数据的分析.doc
  10. vmware 中安装chrome os操作系统
  11. 【马克思主义基本原理】--第二章--实践与认识及其发展规律
  12. 微信小程序 Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded(二)
  13. java正则表达式匹配单引号_java - 正则表达式,用于在未被单引号或双引号括起时使用空格分割字符串...
  14. 案例实践:用SPSS做K均值聚类分析
  15. 2021年危险化学品生产单位安全生产管理人员最新解析及危险化学品生产单位安全生产管理人员作业模拟考试
  16. iframe标签(页面嵌套)
  17. 孙源面试题试解(更新完毕)
  18. jfs jfs2_故障诊断过程因JFS2 inode带有空扩展属性条目而挂起
  19. python条件语句多条件_Python简介,第3章-条件语句
  20. 深入理解JVM - ZGC垃圾收集器

热门文章

  1. MATLAB地图工具箱学习总结(二)大圆和恒向线
  2. 《企业大数据系统构建实战:技术、架构、实施与应用》——2.3 大数据制度和流程规范...
  3. js 通过图片链接获取file对象
  4. 【细小碎的oi小知识点总结贴】不定时更新(显然也没人看qwq)
  5. pdo_mysql扩展库_MySQL数据库之PDO扩展
  6. 文档型漏洞攻击研究报告
  7. 揭秘摄像头黑产链:暴露在外的80端口
  8. 【思特奇杯·云上蓝桥-算法集训营】第1周----真题汇总+思路分析
  9. 170402网摘题目
  10. 基于Mono.Cecil的静态注入