原文链接: https://dsx2016.com/?p=661

单兵作战只能胜任分发到自己的模块,团队协作才能让产品快速而高质量上线.

有正必有反

想要提升团队协作的效率,先分析哪些事物阻碍了开发进度.

一般情况下,项目预估的时间相对的紧凑,如果发挥正常,则上线时间不会相差太远,中途有什么变化,也会根据反馈实时调整进度.

但有时候,代码能够稳定的发挥其固定的作用,人就不一定了,不同的行为会导致差别极大的影响.

负面作用

全局干扰

最近的一个项目中,进入到提测阶段的时候,一些新版的功能都已经通过第一轮测试.

但是在代码没有改动的情况下,测试忽然提出了一堆的bug,一些以前的功能部分都不能正常使用了.

请注意,一旦遇到类似的情况,几乎没有改动主要功能代码的前提下,忽然发生大面积的bug,于前端而言,不是后台挂了,就是某个兼容性问题,特定手机机型或者系统版本等.

还有一种不应该发生的错误,就是团队的其他分支代码影响到整个项目的全局,从而导致你的功能异常,如css样式覆盖,js变量覆盖等操作.

现在回顾一下,当时我的操作是先排查功能异常的原因,发现是vuexvue-router传参parmas失效,但是为什么莫名失效,google了好久,定位到怀疑人生.

由于之前已经有过协作导致错误类似的经验,加上对自己代码机制还残留一点点信心(技术的熟练度决定排查问题的思维和方式),转而开始查看gitlab的日志记录

在查看同事的日志中,发现一段才提交不久的代码,这段代码的定义就是在全局路由做了一些操作.

在这里,我也犯了一个错误,看到对方的注释写的是仅在第一次登录xxx,然后就没有往下看代码的作用了,然后又开始怀疑人生.

当时间耗时超过半小时后,就应该想办法解决当下无法解决的问题,和同事交流或者稍稍放松,换个思维方式等,当排查超过一个小时,于是去问了同事.

同事说前不久是在ios上进行了全局操作,因为需要开发一个新功能,所以在ios上每次页面切换时,把vuexvue-router传参parmas给重置了.

在这里,先不提排查和定位问题的能力,只能提醒在座的各位,如果明知道自己的代码会对全局有着影响甚至是颠覆的作用,请一定要在群里声明,或者至少和同事口头声明.

当然,尽可能不要产生对全局不可控的代码,没有谁能保证自己的代码不会对以前的功能或者同事的模块造成影响,解耦是一种能力,声明是一种态度,也是协作的方式.

tips:

有一些团队会进行codeReview,一个是提交时review,一个是提交后review.

不论哪一种,都是对代码的质量负责,像上述这种错误,如果进行了review,在发布测试前就会被发现和拦截,这种错误不应当出现.

团队没有review的流程,也没关系,大多数时候不要养成别人定了规则才会去执行的习惯,一定要有自己的独立思维,要有自己的优秀习惯,团队没有,但是不妨碍自己定期的review.

前几期讲了提升效率的方法和技巧还可以加上一条,加班时或者定期review,及时看看自己的代码和同事的代码,查漏补缺.

协作时间

前一段时间,测试在没有任何告知的情况下,周六加班冒烟测试,前后端的都不加班,也不知道要测试.

于是产生了几个严重的影响,同样也是人为的不该犯的问题.

一是由于没有邮件或者群里正式声明周六提测,导致前端没有发布最新的测试版本,周六测试的是上上个不知道什么时候打包的版本.

这种情况几乎可以说测试是白测了,所幸测试的版本恰好功能上都符合,只有一些样式没有跟上进度,所以没有造成极大的时间浪费,影响不大.

二是正常工作期间,前后端每次发版的时候,很少有人会主动在群里提起或者正式邮件声明(虽然有时候不需要太正式)

导致测试测着侧着就提示网络错误,或者用旧的标准在测试新的代码(如忽然改一个新需求和ui,但是测试不知道),导致提出bug或者被中断测试流程(如下单)

其实在发版前群里告知一下是基本的沟通义务,也是最起码的工作态度,就效率而言,能避免很多不应该出现的问题,仅仅是一句话的事情.

其次,与人方便也是为自己方便,发版时也可以注明当前版本,发布内容(更新了哪些功能等),以及一些其他说明,让事物有据可查,有别人更容易理解.

但是在好几家公司发现,不论是刚入职的小白,还是混久的老油条,都不会去过多的关注一些团队和沟通的细节,或者说懒得操作,宁愿事后甩锅也不愿事前留心.

tips:

国内没有倾向于使用邮件的习惯,即使是重度有工作属性的职场.

如果不强制要求,别说邮件了,连聊天软件都懒得回复,如非需要,甚至口头内容都不会有.

建议大家多使用邮件,最少也应该使用有聊天记录的群或者沟通工具.

其实说到底,首先是一个工作态度的问题,愿不愿意协作和配合,其次才是工具的使用.

其次,要注意的事,最好的工作时间是全员都在的时候,有问题一定要及时处理.

不可能等到别人下班再去解决,这样也解决不了,事情要分轻重疾缓.(很重要,思维方式)

建议上班的时候解决要和人协作的问题,个人不太紧急和重要的问题可以留到临近下班或者加班或者解决合作问题之后.

权限问题

测试的过程常常需要反复去操作一个流程.

但是一个流程往往操作后就固定了数据状态,再次操作不可能再创建一个账户或者每次叫后台清空数据(仅前端).

虽然假数据也可以,但是有些逻辑仍然需要真实的反馈,如登录,短信验证,身份识别,提交订单等等等.

一般开发,有本地环境,测试环境,正式环境,至少在本地环境和测试环境,数据是可以临时操作的.

如果有管理后台建议获取操作测试环境后台面板,针对自己开发的模块做一些流程设定操作,如更改用户状态等.

如果没有管理后台,使用sql等直接操作数据库也行(前提是要会一点点数据库和对表结构了解~具体可以问后端)

前提是避免一个功能测试需要很多遍,但每次都要找别人来重置数据,别人也可能一直在忙,没有时间帮忙或者留意到你的需要.

其次是,直接操作数据库是一个很大权限的事物,哪怕只是本地环境,一定要尽可能避免产生脏数据,影响其他流程.

有的时候需要去复现一个bug,必须走完一些流程,操作繁琐且很难定位,通过后台和修改数据库会快很多.

总的来说,就是测试有的权限,你尽量也要有,如管理后台,数据库等,没有,就只能让相关模块的人尽量配合.

避免有时间但是流程卡住无法操作的情况,这种现象是真正的极大浪费时间,而且一废就是大半天.

tips:

当然还会有一些其他权限,如代码合并的权限,发布测试和线上的权限.

这就涉及到技术和态度意外的因素,要留心那些你有时间有技术但是你无法操作的事物.

正面作用

正面的方法可以简单概括为

  • 分工合理,责任明确,模块化

  • 高效的沟通机制(聊天软件,任务面板,邮件等)

  • 定期检查,及时调整(codeReview,日报,周报,大小会议)

比起正面作用,更倾向于排除负面作用,哪怕正面作用不大,但至少不会影响效率和进度.

要知道吖,大大小小的公司,其实最混乱的,最致命的,也最为核心的.

从来不是技术和能力,而是团队管理和协作,是人与人之间的沟通和行为.

tips:

正面作用下一期文章再细说.

程序员如何提升开发团队的协作效率和质量?相关推荐

  1. 程序员之提升开发效率非常实用的十个工具网站分享

    一.regex101 强大的正则表达式工具,可以实时查看匹配信息,并且会用不同的颜色将 Group 标记出来,而且有 Quick Reference 来帮助记忆正则表达式的规则和 Explanatio ...

  2. 程序员谈敏捷开发团队里成员间的相互信任

    我所在的SAP成都研究院成都数字创新空间团队,虽然是成都CX成立最晚最年轻的团队,但却是一支非常有战斗力的团队,如果说产品开发团队是正规军,那我们就是特种部队,是<碟中谍>系列Ethan背 ...

  3. 程序员反思:为什么团队的产出效率那么低下?

    首先,要解释下标题的意思.人多,指的是同一个项目团队.同一个小组或者同一个部门的范围内:事少, 指的是做出的效果,真正的产出少:工作量大,指的是,工作时间长,工作忙,实际的投入大. 其实,人多事少工作 ...

  4. 《程序员》 -- 如何提高团队协作的效率

    自己非常喜欢<程序员>杂志,<程序员>杂志在一定程序上很能开阔我们的视野.因此,一直都想推荐给大家. 方便大家相互学习交流,本文转自<程序员>杂志 http://w ...

  5. 学python用什么软件开发-5款Python程序员高频使用开发工具推荐

    很多Python学习者想必都会有如下感悟:最开始学习Python的时候,因为没有去探索好用的工具,吃了很多苦头.后来工作中深刻体会到,合理使用开发的工具的便利和高效.今天,我就把Python程序员使用 ...

  6. 宝付分析程序员怎么提升自己

    宝付分析程序员怎么提升自己.相信我们做程序员的都听说"青春饭"这两个字,其实宝付认为程序员的职业生涯和年龄并没有太直接的原因,重要的还是个人的规划,今天宝付就给大家分享一下,程序员 ...

  7. fish工具_Python程序员使用哪些开发工具

    Python程序员使用哪些开发工具?很多Python学习者想必都会有如下感悟:最开始学习Python的时候,因为没有去探索好用的工具,吃了很多苦头.后来工作中深刻体会到,合理使用开发的工具的便利和高效 ...

  8. 详解程序员驻场开发服务的具体流程

    近年来,随着大数据.云计算等高科技技术的高速发展,越来越多的企业为了提高市场竞争力都会有软件开发的需求.有些企业会选择全部招聘自己的软件人才进行项目开发,而有的企业为了控制人力成本.灵活发展公司业务, ...

  9. 最适合python程序员用的笔记本-5款Python程序员高频使用开发工具推荐

    很多Python学习者想必都会有如下感悟:最开始学习Python的时候,因为没有去探索好用的工具,吃了很多苦头.后来工作中深刻体会到,合理使用开发的工具的便利和高效.今天,我就把Python程序员使用 ...

  10. 程序员如何提升个人的技术影响力

    " 公司组织了个内训师培训班,进入前需要面试审核,以下是我的面试分享课题,这里分享出来以作记录,不出意外这应该是一个系列. " 大家晚上好,我是 howie6879,目前主要负责的 ...

最新文章

  1. Unity从零开始构建能力体系 Unity Ability System
  2. fwm环境APP菜品数据加载失败的优化操作
  3. 【独立游戏】黎明之刃——3D硬核ARPG游戏
  4. Py之albumentations:albumentations库函数的简介、安装、使用方法之详细攻略
  5. java监听器用法(二):窗口监听器
  6. Zeal工具下载Elasticsearch离线文档
  7. 经典C语言程序100例之四二
  8. HDU 5950——Recursive sequence
  9. redis rdb aof区别_Redis(三):持久化RDB,fork.copyonwrite,AOF,RDBamp;AOF混合使用
  10. Ubuntu18.04运行QQ音乐
  11. PP实施经验分享(17)——S4 PP与ME标准接口报工函数“CO_MES_PRODORDCONF_CREATE_TT”
  12. JavaScript XMLHttpRequest向Flask发送和接收请求
  13. 【新手入门必看】MaixPy 图像基础知识
  14. 工作中常见的开会问题
  15. 东南大学计算机学院程茜雅,东南大学教务处[018](16页)-原创力文档
  16. 罗永浩:我对3月27日那场锤子发布会非常懊悔
  17. 中国社会追踪调查数据CGSS区县码(最全版本)
  18. CAD制图初学入门:CAD选项配置的使用技巧
  19. dBm与dB,如何来求和?
  20. 你真的明白斯卡布罗集市歌词的真正含义吗?

热门文章

  1. Python求解最大子列和
  2. python实用案例教程第四章答案_python 入门到实践第四章案例
  3. 世界首富马斯克的编程水平怎么样?
  4. sonic云真机linux分布式部署
  5. 非科班生的Android秋招求职经历
  6. android有道翻译api,有道智云自然翻译服务API
  7. 文档多人协同编辑底层算法是如何实现的?
  8. 2022年四大流行Android手机自动化测试工具,全在这里了
  9. 马歇尔·卢森堡《非暴力沟通》——备忘
  10. 微信终于要对聊天记录动手了?