郑重声明:本文纯属Fans同学的个人见解,仅供参考,欢迎拍砖。

不带任何感情色彩,无论是讽刺、褒扬,还是抱怨、感叹,纯属读者的个人感觉,与Fans无关。

软林至尊,Fans同盟。号令天下,莫敢不从。 @Fans.Lei


问题背景

1.在学校,做一个项目,从需求设计到编码测试,基本上都由自己一个人完成,不存在团队合作和分工,也不存在和其他人冲突的问题。

2.需求中遇到了问题,自己可以决断,想怎么做就怎么做。

3.大多不需要和其他人沟通。


总之,在学校基本上是一个人单干,到了公司要团队开发,需要一个转变和适应的过程。

5大问题及解决方案

 1.团队合作

1.1如何分工

分工和合作是辩证统一的。
划分每个人的职责和任务是合作的基础。

项目前期,“一个任务”被划分给了别人,后来又“划分给了我”。经过解释,发现这个任务“本来就是我的”,出现这种问题,主要是前期相关人员都理解错了。今后还会出现这种情况么?如何避免?

1.2如何合作
模块之间既相对独立,又相互依赖。
接口提供者想改变接口,接口依赖方该怎么做呢。不让他改变,还是他变了,我去修改相关代码?

解决方案
模块之间的依赖,应该由双方共同探讨和制定,不能随意修改,一旦修改,要及时通知对方。

分工,一定要及时确认职责。


2.需求问题

2.1需求不明确

项目前期,需求不够明确,很多时候都根据自己的理解去做,结果与需求不完全一致了。

2.2需求和开发的关系

开发人员要严格按照需求来做,如果需求不合理,开发人员应该提出来。

问题:如何去判断?

解决方案

和需求分析师及团队领导沟通;积累经验。

3.沟通不畅

3.1沟通意识
在学校"单干"惯了,遇到问题习惯独自去想,而没有去和相关人员沟通。



3.2沟通对象
遇到问题,不知道应该和谁沟通,项目前期有此困惑。


3.3距离
项目前期,团队成员分在3个地方,使用在线沟通工具不够方便,说不清。

3.4工作中有情绪
有时比较急躁,不够耐心,主要集中在项目中期,模块整合过程中。


3.5沟通技巧
用词不当,引起他人不快。

解决方案
沟通遇到问题,应当及时自我反省,并和团队领导沟通,而不是置之不理。

 

4.代码重复


4.1界面重复
比如,分页栏那一块完全一致。


4.2代码重复
类似的功能大量出现,比如事务,获取数据库连接,分页算法。

4.3思想和架构重复
不同模块的架构尤其是Java这块,几乎完全一致。

解决方案

不同模块之间的重复,多人共同制定一个标准,然后按照标准去做。

同一模块之间的重复,可以使用类的继承,提取工具类,设计模式减少冗余代码,也可以使用Hibernate等框架。

 


5.个人思想在某些方面比较保守,追求稳定,不想改变


5.1传递数字活动

沟通培训那个传递数字的活动,最开始小组成员已经确定了一个方案,后来小路提出了另外一种方案,我当时并没有赞成。其他人大多也没有赞成,因为短时间内完全改变一种方案,有难度,也不想改变。


5.2 SVN和Maven

项目最开始开发时,并没有采用SVN管理源代码,也没有采用Maven管理项目依赖和打包部署。

后来,为了方便集成和部署,迅速学习和使用SVN及Maven。


解决方案

如果可能,积极参与和推动团队意见和方案的形成。如果自己观点和团队观点冲突较大,保留自己的意见。

感言:在团队合作开发的情况下,树立沟通意识,及时沟通并且通过沟通形成一个 结论,两者即沟通过程和形成结论都非常重要。 遇到问题不可怕,关键在于解决问题的方法。