2019独角兽企业重金招聘Python工程师标准>>>

一向认为软件开发就像是在搭房子或者说是在构建一座宏伟的大厦,当然这根据工程的大小而定。其实细细想来软件工程的很多地方都是借助于建筑方面的知识,就从“工程”这个词来说就是从建筑学引进的,类似的还有等概念也是来源于建筑学。如此说来软件的开发和建造房屋一样,一般是多人合作完成的。如果您非要自己动手盖一个小平房也不是不可以,但请注意那一定是一个足够小的小平房。

其实要说起团队开发让人最头疼的不是什么技术问题,而是队员之间的合作问题。尤其是遇到矛盾重重的团队,那项目的进度一拖再拖将是家常便饭。团队开发绝不是架个SVN拉几个有水平的程序员就可以开始的事情!需要注意很多方面才有可能出色的合作完成一项工程。

l  给力的项目经理(项目组长)

首先,项目经理(项目组长)必须全面的了解项目的需求,根据需求和组员们商讨出一套合理的解决方案来。在这个过程中遇到不同的解决方案项目经理(项目组长)要敢于拍板,敢于承担责任。无论选择的对错都要比不选择要强,选择时畏首畏尾只会令项目延期,而选择错误大不了下次升级版本。一般说来在能实现功能的前提下,用户更加关心完成的日期而不是性能。因为每拖一分钟用户对软件能否实现的信心就减小一分。

其次,项目经理(项目组长)要有霸气。相信每个团队都可能会遇到不配合的队员,对于这样的队员尽量为他分配一些灵活性小的工作。如果队员严重影响合作那么就需要项目组长(项目经理)出面了,让你干嘛就干嘛,不要废话,出了事我担着!毕竟在一个项目中项目经理最大,项目如果出了问题客户或老板不会去责怪一个程序员,他会直接劈头盖脸的骂项目经理(项目组长)。所以在项目中队员有义务也有责任听项目经理(项目组长)的安排。这也是为什么项目经理(项目组长)在招人的时候格外注重队员的合作能力的原因(是否听从安排也属于合作能力的一种),招个不听话的人是多么郁闷的事情。

l  敢于否定自己

在项目的设计阶段,大家一起商讨具体的解决方案。很多时候大家是为了面子而不愿意否定自己的解决方案。其实这很容易理解,大家都是从程序员走过来的,程序员的通病就是常常盲目欣赏自己的代码,在软件设计的时候依旧“本性”难易,对于自己的设计不忍抛弃。一旦别人说自己的设计的有问题,恨不得马上和其大吵三百回合。争论,对于软件的设计绝对是好事,越争论对软件的需求、设计越清晰,“辩则明”就是这个道理。但是必要的时候(大多数人不肯定自己的时候)就应该好好的想一想:争论是因为面子还是因为自己的想法真的是完美的、无懈可击的?难道别人的想法真的是不可就要的、烂到不行的?如果是前者,无论你是谁(普通组员也好项目组长也罢)为了整个项目、为了团队,请放下自己的面子,否定自己!!!

l  不要正面否定他人的意见

无论什么时候都不要正面否定组员的意见,就算你是项目组长(或者项目经理)也不行!

在项目设计阶段,当组员为系统提出其他的见解的时候,如果你觉得合理那自不必说表示赞同即可。如果觉得不合理,你要做的仅仅是把你的观点摆出来和他的观点对比,让团队所有人进行讨论、选择,到底哪个更有利于软件的实现。

一旦项目设计完成,无论组员有任何好的方案都不应该采用!!!这时候要做的只是记下来为以后升级系统做准备,这也是为什么大公司的软件(例如windows系统)往往在上一个版本还未发行的时候下一个版本就已经开始准备了。很多时候开发人员就是在开发的过程中产生了更好的解决方案。好的解决方案——记录下来下次系统升级就从些方面做起。

为什么设计完成后不能“完善”?

如果在项目设计完成后再去修改设计,那么很有可能对项目其他部分造成影响。整个系统经过了长时间的设计可以说很少再有前后矛盾的地方。如果突然改变某一方面的设计,很大几率会造成牵一发而动全身的结果,甚至因为沿着这一处小小的改动走下去而使得整个软件前后矛盾,最终导致推倒从头再来的恶果。(还有什么比重头再来更糟糕?!!)

l  善于利用第三人避免“踢皮球”

不得不说的是任何详细设计文档,任何UML图都不会把系统的各个细节照顾到。毕竟文档以及UML仅仅是建模,一个大概的样子而已。这样一来难免会有细节部分没有涉及到如果非常不幸,这些细节恰恰是在两个开发者任务之间那就麻烦了。相互推诿责任,相互“踢皮球”是不可避免的,类似下面的话就会变成团队的主要语言。

A:“你的方法中怎么没有……的数据处理啊,这样传给我的我还得再处理!”

B:“处理这个数据不应该是你做的么?”

A:……

可能无论谁处理一下这个数据仅仅需要1个小时,但是争论到底是谁的责任却会花费数小时,这也是导致团队开发进度缓慢的原因之一。但是如果有另一个人在场(要是项目经理最佳),无论第三人到底向着谁,这场“战争”双方人员比例肯定是2:1。这样一来对于整个项目来说会大大缩短不必要的争论时间。

整个预期对话如下:

A:“你的***方法是不是没有处理……数据呀?”

B:“这个数据处理应该在你哪吧,C你说对么?”

C:“按道理来说,这应该是B的责任,你看啊我是这么认为的……”

A:“我也是这么认为的,还有就是……,B你说呢?”

B:“好吧,我这就去加”(虽有一千个不愿意,虽有一万个骂娘,但是……你懂得!)

l  沟通的方式无比重要:Change your words,change your world(点我呀)

要注意自己的说话方式,同样的意思不同的表达,效果不同。不用或少用第二人称,要多用“我们”、 “咱们”、“您”或者直接用昵称(*哥、*姐等等)之类的代词开头。试比较下面的句子

方式一:“你为什么不这么写这个方法?”

方式二:“咱们为什么不这么写这个方法?”

毫无疑问第一句带有责怪的语气,尽管你说的时候可能没有这个意思,但是听者会很容易这么认为。如果再加上任务繁重、心情烦躁,那么这势必会造成团队内部的不和谐。

无论自己的心情是多么的不好,请使用礼貌用语!试比较如下不同的对话。

对话一:

A:“你的那个方法写完了没有啊,快一点啊!哥等着测试呢!”

B:“哦”(TMD跟谁充哥呢,慌你妹,赶死啊!就不给你写!)

对话二:

A:“*哥(*姐)咱们的那个**方法实现了没有呀,拜托稍微快一点啊,你那一搞定我这就基本可以完工了,完事儿咱一起去喝茶啊。”

B:“好的呀,马上啊~~”

一样的意思两种不同的表达方式,感受就截然不同。第一种很难让人接受,正常的人听了多少会不好受,虽然括号里面的话并没有说出口,但是那已经影响到了团队内部的和谐氛围。要尽量多用第二种那沁人心脾的话语才能使团队更有战斗力!

其实关于礼貌用语方面中国人普遍做的不好,很多人认为大家都是自己人,那样说话未免太虚假,恰恰相反正因为是自己人所以才更加需要尊重彼此!从接触的外国信息(例如外文、美剧)来看,在国外无论是不认识的人之间,还是亲的不能再亲的亲人之间都是非常尊敬对方的。虽说中国是什么“礼仪之邦”但是国内外对中国人礼貌方面评价普遍不高。我想这也可能是为什么中国造不出大型软件(操作系统、数据库等等)的原因之一吧。缺乏友好的沟通,组员之间彼此不服气、整个团队矛盾重重、相互使绊,那这个团队还合作个磷啊!!!

以上几方面是自己在合作时候的感受,希望可以帮助您的团队更好的合作,请牢记:没有凝聚力的团队最终的结果必是“食尽鸟投林,落了片白茫茫大地真干净!”

注:食尽鸟投林,落了片白茫茫大地真干净——(《红楼梦》 第五回)

转载于:https://my.oschina.net/kaixindewo/blog/17406

拿什么拯救你,我的团队相关推荐

  1. 对标 PyTorch,清华团队推出自研 AI 框架“计图” | AI 技术生态论

    「AI技术生态论」 人物访谈栏目是CSDN发起的百万人学AI倡议下的重要组成部分.通过对AI生态专家.创业者.行业KOL的访谈,反映其对于行业的思考.未来趋势的判断.技术的实践,以及成长的经历. 20 ...

  2. 如何在团队中做好Code Review

    一.Code Review的好处 想要做好Code Review,必须让参与的工程师充分认识到Code Review的好处 1.互相学习,彼此成就 无论是高手云集的架构师团队,还是以CURD为主的业务 ...

  3. 斯坦福大学李飞飞团队图像分类课程笔记

    斯坦福大学李飞飞团队图像分类课程笔记 Stanford image classification course notes 这是斯坦福CS231n课程图像分类基础知识. 目标:这一节先介绍图像分类基本 ...

  4. 《小团团团队》第五次作业:项目需求分析改进与系统设计

    项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 实验九 团队作业5-团队项目需求改进与系统设计 团队名称 小团团团队 作业学习目标 (1)掌握面向对象需求分析方法:(2) ...

  5. 7号团队:团队任务3-每日任务(2018-11-26)

    1.为了对项目进度.项目完成情况进行了解,是项目更好的完成,我们团队进行了每日例会 2.团队信息 团队序号:7号团队 团队任务:教师个人题库系统 团队成员:产品经理:刘璐璐 UI设计师:苏雅欣 软件工 ...

  6. “睡眠猴子”团队项目及成员介绍

    "睡眠猴子"团队项目及成员介绍 咳咳--软件工程这门课最终还是来到了团队开发的部分,我们宿舍三只经过一下午的讨论和需求分析决定做一款名叫"睡眠猴子"的安卓版手机 ...

  7. 挨踢项目求生法则-团队建设篇

    摘要: 知道什么是挨踢项目吧?什么!不知道?那IT项目知道了吧?为了不让客户踢.不让老板踢.项目组成员之间不互相踢,俺为大家分享一些减少被踢机会的心得体会.就算不能让项目成功,也至少不会死得那么惨吧! ...

  8. git 打tag_图文讲解,团队开发中的 Git 最佳实践

    私信我,回复:学习,获取免费学习资源包. 在 2005 年的某一天,Linux 之父 Linus Torvalds 发布了他的又一个里程碑作品--Git.它的出现改变了软件开发流程,大大地提高了开发流 ...

  9. Echo团队Alpha冲刺随笔 - 第九天

    项目冲刺情况 进展 已经进入测试阶段,正在消除系统的bug 问题 通过测试,找出了系统中存在的较多bug...... 体会 测试太重要了,很多原本以为没什么bug,一测就能找到好几个,而且改个bug真 ...

最新文章

  1. 北京赛区总结,以及。。。
  2. liunx 上传 代码到github
  3. AI影响将远超互联网 不在乎与AT市值差距
  4. Go 还是需要泛型的
  5. EF Core 数据库 Provider 一览
  6. redis在php上使用教程,Redis在PHP的一些使用方法
  7. LeetCode Encode and Decode TinyURL
  8. php如何判断是否为json格式,php如何判断是否为json数据(格式)
  9. AcWing 2. 01背包问题(01背包模板)
  10. 随机变量的原点矩、中心距、变异系数
  11. 游戏服务端加密如何解密
  12. 目标检测tricks(基于detectron2)
  13. 小编教你如何打印出一张好看的思维导图
  14. wechat微信聊天记录两台电脑转移
  15. UserAgent和获取手机内安装的所有app列表
  16. HTML俄罗斯方块小游戏
  17. ubuntu在编译opencv3.4.1遇到[modules/calib3d/CMakeFiles/opencv_calib3d.dir/src/dls.cpp.o]错误
  18. Discuz中常用数据库操作
  19. 读取Assets中的数据库 .db文件
  20. 协同办公工具:在线白板初起步,在线设计已红海

热门文章

  1. Java校招笔试题-Java基础部分(四)
  2. localhost 就一定是 localhost 么?
  3. Laravel测试驱动开发 -- 正向单元测试
  4. 吉林大学计算机高级程序设计笔记
  5. 从BIO、NIO到Netty
  6. swagger的使用方式
  7. 关于webservlet 请求异步处理,链接未关闭出现的bug
  8. 在一个由 'L' , 'R' 和 'X' 三个字符组成的字符串(例如RXXLRXRXL)中进行移动操作。一次移动操作指用一个LX替换一个XL,或者用一个XR替换一个RX。现给定起始...
  9. 紫书 习题 8-15 UVa 1617 (贪心)
  10. 最快配置本地Yum仓库